General Information - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

General Information

White-papers and high-level FAQs

Introducing RTSC | Learning about Real-Time Software Components
The RTSC Flow | From component production to component consumption
High-Level FAQs | General questions about Real-Time Software Components

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Introducing RTSC - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Introducing RTSC

Learning about Real-Time Software Components

Welcome to the world of RTSC.... To help you learn more, this document provides an important introduction to the what, why, and how of RTSC. Once grounded in concepts and terminology fundamental to RTSC, we'll explore two complementary roles which you may find yourself playing as you work with RTSC—that of producer and consumer of Real-Time Software Components.

This introductory document also contains links to a handful of other technical documents and support resources which together serve as "next-steps" as you further explore the world of RTSC.

In April 2008, our proposed RTSC Project passed its creation review at eclipse.org, joining this growing open-source community. Moving forward, we plan to re-license the RTSC technology outlined in this document—initially developed by Texas Instruments and currently used in a number of its flagship products—for broader use by embedded software developers targeting any hardware platform.

Contents

  • 1 Bringing component technology to embedded C
  • 2 From producer to consumer under RTSC
  • 3 A quick tour of the XDCtools product
  • 4 Additional RTSC resources
  • 5 See also

Bringing component technology to embedded C

The producer/consumer dilemma. As C programmers developing embedded applications, we'll generally play the role of producer and consumer of target software content:

  • we'll produce libraries of callable functions, often with an eye towards re-use from one application program to the next; but then at the same time,

  • we'll consume these sorts of libraries by calling their functions, perhaps to produce other libraries but ultimately for use within an executable program targeted for a particular hardware platform.

As embedded systems and software become ever more sophisticated and complex, a natural tension that already exists between these two roles becomes ever more pronounced. As content producers—always looking to minimize non-recurring engineering costs through greater re-use—we'll favor making our software as portable, as flexible, and as general-purpose as possible. As producers, our challenge becomes one of managing content fan-out—leveraging a single code base across multiple instruction-sets, multiple tool-chains, and multiple application settings.

Playing the role of content consumer, however, our values can reverse rather rapidly. Always looking to minimize recurring end-equipment costs—less MIPs, less memory, less power—we'll give up a measure of software portability, flexibility, and generality in exchange for code that has been optimized, tailored, and specialized for the particular application at hand. Needless to say, priorities like these often thwart any efforts aimed at broad software re-use.

But software re-use is important—especially as engineering schedules and resources remain inversely proportional to the growing list of software-based features demanded in next-generation end-equipments. With today's software producers truly distributed in time/space, often working independently from one another in different parts of the world, the traditional role of content consumer will further expand to one of software integrator—combining and assembling these elements in novel ways that their original producers had not necessarily anticipated or even imagined.

Beyond concerns about trading system performance for software re-use, our challenge as consumers becomes one of managing content fan-in—reconciling a diverse array of tools, formats, and techniques used by different producers to describe, deliver, and deploy individual software elements. The naive view that content producers can simply ship C headers/libraries to content consumers belittles the problem here. Lacking any common ground on matters ranging from portable types and function names to directory structure and version compatibility, interoperability amongst different software elements becomes intractable as the number of content producers grows to even a handful. Once again, concerted attempts at broad software re-use will come up short.

The promise of software components. Components have become a pillar of modern software engineering practices. Beginning with COM and CORBA in the 1990s, contemporary programming languages like Java or C# innately support the design, delivery, and deployment of software components. Thanks to component frameworks aligned with these languages, present-day applications are more modular, more scalable, and more flexible than ever before; software components also promote greater levels of re-use from one application to the next. Equally important, thriving ecosystems of component producers/consumers working in contemporary programming languages validate how establishing some common ground can successfully overcome the fan-out/fan-in challenges mentioned earlier.

While overwhelmingly successful in the mainstream, component technology has had very little impact on the development of embedded applications where C (still!) remains the programming language of choice. Given the constraints of time, space, and power under which most embedded systems must operate, the run-time overhead typically incurred by mainstream languages and frameworks is simply too high a price to pay. And yet, given the rising complexity of embedded applications coupled with a desire to field portable (and re-usable) software across a range of systems, we continually struggle with trade-offs between flexible, generic—yet inefficient—building-blocks versus more specialized elements optimized for one particular application setting or hardware platform.

With RTSC (pronounced rit-see), however, we can finally resolve this dilemma between producers/consumers in the world of embedded C programming. Requiring no more than an ANSI C compiler, RTSC effectively takes the C language to new heights by introducing supplementary tooling and infrastructure aligned with modern programming practices, yet responsive to the unique challenges of producing/consuming embedded software. Simply a better way to leverage C, RTSC enables a higher-level form of programming—one that encourages producing more modular, more scalable, and more flexible target-content—without necessarily impacting system performance through additional run-time overhead.

We believe that taking RTSC open-source can accelerate adoption across an otherwise fragmented community of nearly a half-million embedded C programmers.

From producer to consumer under RTSC

RTSC introduces tooling and infrastructure that articulates a five-phase flow spanning the life-cycle of embedded software components implemented in C—from component production to component consumption.

As we touch upon each phase of the RTSC flow, bear in mind that the familiar steps of compiling and linking C libraries and programs remain unchanged—RTSC strives to leverage and enhance C, not replace it.

1 Specification

Like any component-based flow, RTSC begins with well-specified components—a necessary requirement to enable downstream consumers to mix-and-match components sourced from different producers, freely substituting one component for another based upon common specifications. Acknowledging the limits of C in this regard, RTSC introduces a special C-like specification language used to formally define programmatic boundaries between producer and consumer in a more expressive and robust manner than possible with C headers; in fact, RTSC generates C .h files used by producers and consumers alike from specifications sourced in this (higher-level) language.

The RTSC specification language promotes three important programming constructs not directly supported in C, but necessary when using C to implement components participating in ever larger and more complex applications:

module
a cohesive set of constants, types, and functions with a public specification and a private implementation
interface
an abstract module (spec only) that other interfaces may inherit and that modules will ultimately implement
package
a higher-level programmatic namespace that in turn contains modules/interfaces within its scope

Not surprising, modern programming languages like Java and C#—which already support higher-level constructs very similar to these—do not necessarily require a companion specification language as does C.

2 Implementation

As a producer, you'll typically implement spec'd RTSC modules in C (though you can use C++ or assembly code where desired or appropriate) using a very clean, crisp, and portable style of programming that is both easy-to-read and fun-to-write. In general, though, RTSC modules will carry two implementations that nicely complement one another:

target-implementation
C-based content for later consumption within target programs executing on embedded hardware platforms
meta-implementation
higher-level meta-content that guides downstream configuration and analysis of these target programs

Whereas C-based target-content typically executes on a resource-constrained platform, meta-content invariably executes on your resource-rich host computer and enjoys access to virtually unlimited resources; skillful partitioning of functionality between these two complementary domains helps fulfill RTSC's promise of higher-level programming and higher-levels of performance. Again recognizing the limitations of C, RTSC introduces a dedicated meta-language based on industry-standard JavaScript.

3 Packaging

RTSC packages serve as both logical and physical containers. Besides providing a programmatic namespace that scopes spec'd RTSC modules/interfaces, each RTSC package has a concrete manifestation as a file-system directory that follows a prescribed set of conventions, but otherwise can house virtually any sort of software artifact originating with the component producer—specs, headers, libraries, scripts, docs, even other packages. To help maintain its internal integrity, each RTSC package is built, released, and ultimately deployed as an indivisible element—that is to say, all of its content remains in place throughout the component life-cycle.

To help manage the producer's fan-out challenge, RTSC packaging streamlines the process of building multiple libraries using multiple C compilers by leveraging instances of a basic abstraction termed a target—a recipe that prescribes the steps necessary to compile C source files for a particular instruction-set and memory-model using a particular compiler tool-chain. Additional mechanisms enables producers to fabricate side-by-side releases of a particular package, to specify dependencies of one package on other RTSC packages, and to characterize compatibility with earlier versions of the same package.

On the consumer's side, standardizing upon RTSC packages as the unit of delivery goes a long way towards mitigating the fan-in challenge. RTSC packages also standardize content deployment by leveraging a proven physical design (patterned after Java) that builds upon three basic concepts:

package directory
a directory whose relative path-name matches the package-name and which houses the package's contents
package repository
an arbitrarily-named directory that in turn contains canonically-named package directories
package path
an ordered list of package repositories used to locate packages and their contents using relative path-names

By finding some common ground here, automated tooling can easily validate the completeness and consistency of a set of deployed RTSC packages—enabling a more friction-free flow of content from producers to consumers.

4 Configuration

From the consumer's perspective, RTSC configuration serves as the focal point for component integration—combining and assembling uniformly packaged target-content elements delivered by multiple producers for ultimate use within an application program executing on some hardware platform. Here again, uniformity becomes the operative word as we strive to streamline the passage of content from producers to consumers.

The process begins with a dedicated configuration script—sourced in the RTSC meta-language—which identifies each software element required within a corresponding target-program. The configuration process eventually yields additional target-content artifacts that in turn become inputs to your compiler/linker during final program build. To coordinate these latter steps, content consumers will designate a RTSC target and platform as additional configuration inputs—recipes for compiling and linking target-content that help shape configuration outputs.

Within the configuration script—consider it the application's meta-program—the content consumer identifies each spec'd module included within the corresponding target-program. While the target-program ultimately uses the module by calling its public functions, its meta-program will typically tailor the module's run-time behavior by altering its public configuration parameters. A unique feature of the RTSC specification language, module configuration parameters transition from read-write variables in the meta-program to read-only constants in the target-program, and play a central role in "specializing" otherwise generic software elements for the application at hand.

Once the consumer's configuration script has finished execution, all RTSC packages contributing target-content to this application become active contributors to the configuration process through corresponding meta-content supplied by the producer. Systematically invoked during the tail-end of configuration, RTSC meta-content enables component producers to programmatically participate at this all-important juncture in several ways:

  • by importing other RTSC modules and assigning their configuration parameters;
  • by issuing errors or warnings if anything seems "wrong" with the current configuration;
  • by guiding generation of linker-commands customized for this program and its platform; and
  • by automatically synthesizing C code using knowledge gained throughout the configuration process.

As a final point, we can't stress enough that RTSC configuration is an automated process, supplanting past practices whereby content consumers would hand-edit producer-supplied files of linker commands or C code/data. By leveraging the virtually unlimited resources of your host computer—to execute meta-content before consuming corresponding target-content—the net result becomes early detection of serious problems that (at best) may yield obscure downstream compiler/linker errors or else (at worst) may trigger run-time behavior with fatal consequences.

5 Analysis

Besides guiding the integration-time consumption of RTSC modules into executable programs, producer-supplied meta-content can also actively partake in the run-time analysis of module behavior once execution has commenced (or even terminated). Given the ability to read the program's data memory—via a host-based debugger, an embedded program monitor, or even a snapshot of program state saved to disk—RTSC analysis tooling first decodes a module's target-implementation state-structures into equivalent JavaScript objects before calling upon the same module's meta-implementation to transform these objects into a more meaningful view of the underlying state.

Complementing this state-oriented perspective, another dimension of RTSC analysis involves merging, filtering, and interpreting streams of time-stamped events sourced during program execution; events can be retained in target-side memory or else uploaded in real-time using an appropriate output device on the underlying hardware platform. By calling upon a special Log module furnished by RTSC, producers and consumers alike can emit meaningful events from anywhere within their C code. Furthermore, configuration parameters exist on a per-module and program-wide basis to enable/disable different levels of event logging—either permanently or else through run-time flags.

A quick tour of the XDCtools product

You'll find all of the tooling and infrastructure needed to support each phase of the RTSC flow—from component production to component consumption—within a single product known as XDCtools. After a quick tour, we'll direct you to other resources that in turn will guide you through installing the product as well as working with its many elements.

This product—freely available from Texas Instruments from the outset—will nevertheless transition to eclipse.org, where the embedded software community at large can not only openly leverage the capabilities of XDCtools but can contribute to them as well.

Language support. At its most rudimentary level, XDCtools supports the RTSC specification language as well as the RTSC meta-language—respectively named XDCspec and XDCscript. Working hand-in-hand with standard C—supplementing the language in ways we've already described—the net result forges an alliance of higher-level programming capabilities for specifying and implementing components which we've termed eXpanDed C.

As for C itself, the XDCtools product does not bundle any particular compiler tool-chain(s); indeed, the XDCtools can work with any ANSI C compiler. At the same time, the product does maintain full knowledge of literally dozens of different C compilers from multiple vendors through standardized recipes known as RTSC targets—which, as it turns out, leverage XDCspec and XDCscript for their specification and meta-implementation. Using the XDCtools product itself, anyone can add support for a compiler tool-chain with only modest effort by creating a new RTSC target.

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

package life-cycle
packages that support the general build/release/deploy life-cycle of other RTSC packages; just as many contemporary programming environments bootstrap themselves, all RTSC packages are ultimately managed through other well-known packages that lie at the core of XDCtools.

program life-cycle
packages that support the general configure/execute/analyze life-cycle of RTSC programs; here again, XDCtools builds upon itself through stock meta-content that in turn drives integration-time synthesis and run-time analysis of target-content elements in executable programs.

program run-time
packages that provide basic run-time support for executable C programs using other RTSC modules; this target-content offers improved embedded C support for pluggable memory allocators, event logging and error handling, entry/exit of critical sections, as well as overall program startup/shutdown.

Focusing on the latter for a moment, the XDCtools product ships a special RTSC package named xdc.runtime whose constituent RTSC modules—implemented in portable ANSI C with sources available—facilitate migration to a variety of targets, hardware platforms, and embedded operating environments.

Essential utilities. Finally, the XDCtools product incorporates a number of basic commands and utilities used by producers and consumers alike throughout the component life-cycle:

xdc
command for building/releasing packages for multiple targets
xdc.tools.cdoc
utility for generating documentation from XDCspec sources
xdc.tools.repoman
utility for managing package repositories
xdc.tools.path
utility for managing the package path
xdc.tools.configuro
utility for integrating configuration into existing build flows
xs
command for invoking other tools written in XDCscript

In general, you can use these tools directly from the command-line or else invoke them through extension points within your development environment. And if you haven't already guessed from their canonical names, each of these utilities is a full-fledged RTSC package whose meta-content leverages XDCspec and XDCscript for its specification and implementation. This suggests, of course, that anyone can contribute additional tooling to the RTSC ecosystem by simply producing and delivering a package!

Additional RTSC resources

Visit the RTSC-Pedia, a centralized wiki devoted to all-things RTSC. Besides holding the most up-to-date versions of all RTSC documents, the RTSC-Pedia maintains active discussion pages for each document where you can comment on the material as well as ask directed questions.

If you have technical issues—general or specific—not addressed by material in the RTSC-Pedia, we've established a dedicated public newsgroup where you can search for answers as well as contribute new questions.

And finally, there's the RTSC Project itself at rtsc.eclipse.org, where you can track the migration of the current XDCtools product into the open-source community.

See also

FAQ-080713-9 | How is the RTSC-Pedia organized, and what sorts of documents exist
FAQ-080713-7 | If I'm only consuming RTSC content, what should I read next
FAQ-080713-8 | I also want to produce RTSC content, what should I read next
FAQ-080713-4 | Can I leverage RTSC with legacy content, or am I starting from scratch
FAQ-080713-6 | Who's using RTSC today, and what's the roadmap going forward

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


FAQ-080713-9 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

FAQ-080713-9

How is the RTSC-Pedia organized, and what sorts of documents exist

Contents

  • 1 See also

At its top-most level, the RTSC-Pedia comprises four major document binders which in turn hold the multiple dozens of documents and sub-documents available at this site:

General Information

The documents in this binder address many of the why's, what's, and how's of RTSC—but from a "10,000 foot" perspective that does not necessarily expose many of the low-level details involved in using the XDCtools product for day-to-day RTSC programming tasks. Use these documents for overall orientation within the world of RTSC.

RTSC Programming

The documents in this binder teach the core aspects of the RTSC programming model—but from an "on-the-ground" perspective where programmer's can, if they wish, use the XDCtools product to build and execute live examples. Use these documents to systematically learn (new) programming idioms introduced within the world of RTSC.

XDCtools User's Guide

The documents in this binder pragmatically describe all facets of the XDCtools product—from installation and getting-started to programming and trouble-shooting. Use these documents once you've downloaded XDCtools and have begun working with the product on a day-to-day basis.

XDCtools Reference Manual

The documents in this binder systematically define each element bundled with the XDCtools product—from basic commands to the most advanced aspect of the programming model. Use these documents as definitive references for programming capabilities introduced elsewhere.

See also

FAQ-080713-7 | If I'm only consuming RTSC content, what should I read next
FAQ-080713-8 | I also want to produce RTSC content, what should I read next

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


FAQ-080713-7 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

FAQ-080713-7

If I'm only consuming RTSC content, what should I read next

Contents

  • 1 See also

By way of review, the role of component consumer within the overall RTSC flow essentially entails managing inbound packages, configuring target programs, and analyzing these programs during execution. As you'll soon come to appreciate, every component producer will simultaneously play the role of component consumer—for instance, by writing test programs for their own content or else by using content produced by others.

On the flip side, many of you will start your journey into the world of RTSC as pure consumers of content produced by others, and only later will explore the many benefits that can accrue by producing your own components. Either way, learning more about RTSC from the consumer's perspective by following these links becomes your next step from here:

RTSC Module Primer

Organized as a graduated series of lessons—starting with the requisite "Hello World" program—the first-half of this document examines RTSC modules contained within RTSC packages from the consumer's perspective. Live examples throughout these lessons illustrate common idioms found in target-programs as well as meta-programs sourced by clients of any RTSC module.

This document also introduces xdc.tools.configuro—a utility invoked with the xs command and embeddable within any client-side build-flow—which in turn launches RTSC configuration using a target, platform, and meta-program designated by the client. The xdc.tools.cdoc utility—along with the consumer-centric reference pages it generates from producer-supplied XDCspec sources—receives attention as well.

RTSC Packaging Primer

Also organized as a graduated series of lessons, this document focuses more narrowly on RTSC packages as pure containers—independent of what these packages may actually contain. Here again, the first-half of this document stresses the consumer's perspective of RTSC packages, seen as a uniform set of package directories that adhere to a common physical design.

This document then introduces a suite of utilities—xdc.tools.repoman, xdc.tools.path, and others—which assist the recipient of RTSC packages in managing package repositories as well as their package path. The document also illustrates techniques for organizing inbound product bundles—a package containing a repository of other packages—as well as deploying multiple versions of the same package.

Using xdc.runtime

This document begins comprehensive treatment of the xdc.runtime package from a client's perspective, systematically covering the dozen or so RTSC modules contained within this package and available for your consumption. Further decomposed into a series of sub-documents—addressing related subsets of the xdc.runtime modules—each document includes live programming examples illustrating specific C-callable functions provided by these modules.

These documents also address the all-important task of tailoring and optimizing the xdc.runtime package for your system needs through configuration parameters provided by constituent modules. In many situations, these parameters will enable you to mix-and-match alternate modules—contained within this or other packages—implementing common functions for memory allocation, event logging, critical sections, and program termination.

RTSC+CCStudio v4 QuickStart

This document provides a starting point for consumers of RTSC packages and modules who work within an integrated development environment (IDE) based upon the Eclipse/CDT tooling platform—such as Texas Instruments' new Code Composer Studio v4 product. Though fundamentally command-line based, the XDCtools product also contains a set of Eclipse/CDT "plug-ins" that integrate elements of the RTSC flow into this popular C/C++ development environment.

From composing the package-path to analyzing target-programs during execution, this document touches upon each point of integration within the Eclipse/CDT environment. This document also introduces an especially rich plug-in named xgconf—usable outside of the Eclipse environment as well—which enables graphical viewing/editing of module configuration parameters otherwise assigned in textual meta-programs.

Out of necessity, these documents present their material in the most generic way possible—independent of any specific application setting. Complementing these documents, you'll also find more focused "Getting Started Guides" available with RTSC-based products (such as DSP/BIOS 6.00 and CodecEngine) that likewise present a consumer-first perspective—but now with material and examples more closely aligned with the packages bundled with these products.

See also

FAQ-080713-9 | How is the RTSC-Pedia organized, and what sorts of documents exist
FAQ-080713-8 | I also want to produce RTSC content, what should I read next

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


FAQ-080713-8 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

FAQ-080713-8

I also want to produce RTSC content, what should I read next

Contents

  • 1 See also

Though entirely optional, those of you electing to produce as well as consume RTSC target-content would receive immediate benefit—for one, your own modules and packages automatically become peers to products like DSP/BIOS 6.00 and CodecEngine, and would consequently enjoy an equal presence within all of the consumer-centric packaging, configuration, and analysis tools introduced above.

As a content producer, you'd also leverage the same higher-level eXpanDed C capabilities for specification and implementation already used by others to develop modular, flexible components built for multiple RTSC targets from common, portable sources—without sacrificing system performance for broader goals of software re-use.

RTSC Module Primer

The graduated lessons comprising the second-half of this document introduce the XDCspec language, used by content producers to specify RTSC modules along with the packages in which they reside; use of XDCspec fundamentally distinguishes producers from consumers. Live examples throughout these lessons illustrate common programming idioms used in the meta-implementation as well as the target-implementation of any RTSC module.

At the same time, this document introduces the all-important xdc command, used here to build RTSC packages containing portable module implementations for multiple RTSC targets. Guided by a special build-script found in the package directory—and written in XDCscript, using familiar idioms—package producers can express what to build with the same degree of portability already enjoyed by their module sources.

RTSC Interface Primer

Picking up where the Module Primer leaves off, this document brings abstract RTSC interfaces into the picture as a way of specifying common client-visible behavior across an open-ended family of concrete RTSC modules that each would inherit and implement this same interface. The lessons in this document successively re-work example modules developed earlier in the Module Primer, rendering them more flexible and scalable than before.

This document also explores proxy-delegate, a design pattern for composing concrete modules via abstract interfaces which appears throughout the xdc.runtime package as well as products like DSP/BIOS 6.00. Used here in tandem with whole-program optimization—a compiler technique for optimizing code across module boundaries—benchmarked example output will conclusively demonstrate our claim of higher-level programming and higher-level performance.

RTSC Packaging Primer

Structured like the Module Primer, the lessons comprising the second-half of this document explore a variety of idioms used when producing a RTSC package—everything from naming the package and populating its contents through creating multiple releases of the same package. As in the first-half of this document, the emphasis here lies with the container and not necessarily its contents—nicely complementing the approach taken by the Module Primer.

The second-half of this document also illustrates different techniques for delivering legacy content within a RTSC package—existing content not specified using XDCspec, and ranging from arbitrary data files to C library sources. Regarding the latter—code not necessarily implementing any spec'd RTSC module—the same process for building C libraries for multiple RTSC targets using the xdc command and package build scripts applies here as well.

Extending xdc.runtime

This document examines various RTSC interfaces published within the xdc.runtime package and then used by other modules within the package in a proxy-delegate pattern. Much of the consumer's ability to mix-and-match alternate modules through configuration parameters—illustrated within companion material on Using xdc.runtime—results from this particular design approach.

For each of these xdc.runtime interfaces—which cover memory allocation, event logging, critical sections, and more—dedicated sub-documents present sample RTSC modules that inherit and implement these interfaces in a variety of ways. A stock set of portable modules (sources available) contained in the xdc.runtime package that already implement these interfaces receive treatment as well.

In the broadest sense, the role of component producer entails developing and delivering RTSC packages—whether these packages contain legacy-content, target-content, or meta-content. In the latter scenario, the component producer would specify meta-only modules that in turn might inherit meta-only interfaces; unlike ordinary RTSC modules, a meta-only module has a meta-implementation but no target-implementation.

As it turns out, creating a new RTSC target or platform involves developing meta-only modules that inherit and implement well-known meta-only interfaces, and then delivering the resulting meta-content in a standard RTSC package. The various xdc.tools.* utilities enumerated earlier follow a similar pattern, suggesting that anyone might elect to produce host-based RTSC tooling in the same manner.

See also

FAQ-080713-9 | How is the RTSC-Pedia organized, and what sorts of documents exist
FAQ-080713-7 | If I'm only consuming RTSC content, what should I read next

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


FAQ-080713-4 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

FAQ-080713-4

Can I leverage RTSC with legacy content, or am I starting from scratch

The C programming language has been widely used for over a quarter-century; and without question, large bases of legacy C code delivered to clients as headers and libraries already exist. While flanking C with both a specification language (XDCspec) as well as a meta-language (XDCscript) may seem rather exotic at first, you can actually employ RTSC in a more incremental manner that allows content leveraging select aspects of the RTSC flow to ultimately co-exist with legacy headers/libraries in embedded application programs. RTSC is revolutionary and evolutionary.

Creating managed content. Without changing a line of legacy source code, you can leverage RTSC packages for their ability to manage software content from production through consumption; with only modest effort, existing libraries and headers could now flow from supplier to client via a standardized container that is built, released, and deployed using widely-available command-line and GUI tools.

The RTSC packaging mechanism is actually quite general: anything can be delivered within a package, including other RTSC packages.

From the client's perspective, all packages exhibit a common "look-and-feel" that streamlines the installation and integration of their contents—independent of whether this content further leverages other elements of RTSC or else remains in its legacy form. From the supplier's perspective, RTSC packages afford new opportunities to explicitly codify dependencies upon other named packages as well as to automate (say) the inclusion of specific versions of legacy libraries during program configuration via special XDCscript meta-functions; content suppliers may also employ RTSC package build scripts to better insulate themselves from underlying compiler details as well as to better manage the compilation of common (legacy) source code for multiple targets.

RTSC package build support is also quite general, with build scripts ultimately transformed in a standard GNU makefile that is robust and portable while readily extensible and customizable for the supplier's own production flow.

Creating spec'd content. As general-purpose containers, RTSC packages need not further define any RTSC modules within their logical scope; but when they do, these packages can participate more actively in downstream program configuration as well as present a more uniform face to client C programmers via generated headers. By wrapping legacy libraries with spec'd RTSC modules whose bodies trivially defer to existing implementations, this content becomes indistinguishable from newly developed modules in the eyes of the component consumer; at the end of the day, each RTSC module has an XDCspec source that draws a programmatic boundary between clients and suppliers using a mixture of formal declarations and informal commentary, regardless of the implementation strategy chosen by the module supplier. Wrapper modules become an ideal locale for "adding value" atop existing libraries, through:

  • clarity of XDCspec sources over .h header files
  • configuration parameters for greater flexibility during integration
  • XDCscript meta-functions to support program synthesis and analysis
  • run-time parameter validation and event logging across function boundaries
  • and so forth, as an exercise for the legacy content supplier

Complementing the wrapper module approach—which typically requires no changes to legacy code—content suppliers can also introduce RTSC modules specifying just config parameters, replacing #define symbols, static constants, or readonly extern data in the existing code base. Straightforward to implement on the supplier's side, benefit accrues when downstream clients can robustly assign these configs in XDCscript meta-programs in lieu of more ad hoc and error-prone editing of C source files. And thanks to whole-program optimization technology available in many contemporary C compilers, module configs can become as efficient as #define symbols used in conjunction with #if directives; and wrapper modules can become as efficient as #define macros or inline functions.

Finally, RTSC enables content suppliers to define so-called metaonly modules in XDCspec—a module whose implementation is limited to host-based XDCscript meta-functions—used to otherwise facade legacy content when even wrapper modules are inappropriate. Though lacking an automatically generated C header from its XDCspec source, a metaonly facade module becomes indistinguishable from others during design-time configuration (and even during run-time analysis). Leveraging some of the more sophisticated back-end generation capabilities of RTSC configuration (e.g., synthesis of C code via parameterized templates), metaonly facade modules can achieve some of the benefits of target modules containing configs—but without any modification of legacy code, a possible constraint. Erecting software facades itself emerges as a general design pattern employed to encapsulate a myriad of underlying details—whether configuring legacy libraries or even calling other spec'd modules—through a simpler, more focused programmatic contract; what's important here is that RTSC modules defined in XDCspec can broadly subsume a virtually unlimited continuum of techniques for layering new functionality atop existing content.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


FAQ-080713-6 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

FAQ-080713-6

Who's using RTSC today, and what's the roadmap going forward

Internal teams within TI have used XDCtools for several years now, beginning with a 1.00 product first released in 2004; for reference, XDCtools 3.00 became available in mid-2007. The XDCtools product has broadly maintained the same functionality throughout its lifetime, though (referring back to the earlier figure) has generally solidified from left-to-right:

  • first-generation users began migrating legacy content into managed packages with minimal impact to existing development flow, as we described earlier;

  • second-generation users began leveraging the power of RTSC configuration, albeit through metaonly facade modules layered atop legacy content; and now

  • third-generation users are enjoying full entitlement to target-domain modules supported by a robust yet extensible set of core run-time services.

Because of its maturity, XDCtools 3.00 also establishes a firm baseline for backward compatibility. Through some rather novel code-generation techniques coupled with whole-program optimization, we believe that binary compatibility for deployed packages containing spec'd target modules is now possible going forward.

A premier user of the most recent XDCtools product, System/BIOS 6.00 represents a complete top-to-bottom "RTSC-ization" of the legacy DSP/BIOS code base:

  • about a dozen discrete packages containing spec'd target modules with clean, portable C-based implementations of functionality already familiar to DSP/BIOS users;

  • a number of low-level target interfaces used to abstract differences from one HW family to the next, also contributing to greater flexibility as well as portability;

  • robust XDCscript meta-content accompanying each target module which supports design-time configuration as well as run-time analysis; and

  • a set of supplementary target modules that inherit and implement several of the open target interfaces included in the XDCtools run-time, yielding full entitlement to the latter.

But even more noteworthy: despite all of the higher-level programmatic structure introduced through RTSC, the run-time performance of System/BIOS 6.00 exceeds that of its predecessor, both in terms of time and space.

TI's recent CodecEngine product represents another leading user of XDCtools, with the emphasis here more on packaging and facading legacy content rather than re-working existing code. Because CodecEngine amalgamates a rather diverse set of elements—DSP/BIOS and Linux, I/O and communication drivers, DSP algorithms plus framework middleware, etc.—fielding this sort of product demands a common delivery format (RTSC packages) as well as a standard integration process (RTSC configuration) for these various sub-elements.

As a consequence of CodecEngine and its recent proliferation, a growing number of content suppliers have already embraced RTSC packaging as a de-facto standard; others have also begun facading existing xDAIS algorithms with metaonly modules whose configs guide integration of legacy code into CodecEngine program images. As part of its own roadmap, CodecEngine looks to drive use of RTSC's XDCspec language more aggressively when publishing target-domain C interfaces that codify different classes of algorithms—what might well become a RTSC-ization of the long-standing xDAIS algorithm standard along with its derivatives.

More information about CodecEngine and xDAIS can be found here.

As for RTSC itself, broad dissemination of the latest generation of XDCtools becomes an ever-higher priority moving forward. And while System/BIOS and CodecEngine will themselves continue to draw other producers and consumers of real-time software components into the RTSC circle, we plan a number of independent initiatives—such as the RTSC-Pedia—to make the XDCtools product and its underlying technology available and accessible to the broader community of embedded C programmers.

To that end, we've already launched an open-source initiative—RTSC.Eclipse.org—that would make XDCtools openly and freely available to all. Besides encouraging third-parties to field higher-level tooling that integrates with the Eclipse/CDT programming environment (popular among embedded developers), a de-facto standard component model addressing specific needs of embedded software can breath some necessary life back into the C programming community as a whole. Recognizing an opportunity to provide much-needed leadership within an otherwise fragmented population of almost a half-million embedded C programmers, RTSC is quite simply: a better way to leverage C.

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


The RTSC Flow - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

The RTSC Flow

From component production to component consumption

RTSC overlays new capabilities for specifying, delivering, and assembling real-time software components atop the familiar steps of compiling and linking C libraries and programs. This resulting RTSC flow—spanning the full component life-cycle, from production to consumption—comprises five major phases described in detail below.

Contents

  • 1 Phase 1 — Specification
  • 2 Phase 2 — Implementation
  • 3 Phase 3 — Packaging
  • 4 Phase 4 — Configuration
  • 5 Phase 5 — Analysis

Phase 1 — Specification

Acknowledging the limitations of C, RTSC introduces a special-purpose language for specifying programmatic contracts in a more expressive and robust manner than otherwise possible with .h header files. Designated XDCspec in the figure above, RTSC's specification language has its roots in the IDLs (interface definition languages) first introduced with COM and CORBA in conjunction with C++ several decades ago. As you will eventually learn, XDCspec source files serve as a higher-level, more evolved form of the familiar C header; and underlying tools will automatically translate XDCspec sources into corresponding .h client documentation in a variety of formats.

You might find it interesting that contemporary languages like Java and C# favor a single source-file approach, suggesting a single notation can cover specification as well as implementation of software components.

But XDCspec sources are more than "cleaned-up" header files that define and document APIs in terms of client-visible constants, types, and functions. The underlying language also elevates three fundamental constructs to keyword status, enabling better support in standard C for what others have termed programming-in-the-large:

module
a cohesive collection of constants, types, and functions; akin to a class in object-oriented languages like C++ or Java, a RTSC module maintains a crisp boundary between a public, client-visible spec (expressed in XDCspec) and a private, supplier-proprietary body (typically expressed in C); modules serve as the primary unit of implementation within RTSC.

interface
an abstract module; mirroring similarly-named constructs found in early IDLs as well as contemporary programming languages, a RTSC interface is effectively a module spec minus the module body; unlike modules, however, an interface is open in that others can extend it (XDCspec definitions can inherit from one another) and ultimately implement it through a concrete (and closed) module.

package
a namespace containing module and interface specs, each defining a scope populated with named constants, types, and functions; RTSC packages cap our two-tier programming-in-the-large hierarchy, enabling us to aggregate 1000s of functions into a more tractable number of named programmatic entities; packages also serve as the elemental unit of delivery between suppliers and clients.

Phase 2 — Implementation

Unlike other component frameworks which (practically speaking) demand use of an object-oriented programming language, we recognize that C remains the language of choice for embedded programming and have tailored RTSC accordingly. Having said that, you can implement RTSC modules using C++ (which meshes well with C) as well as using assembly code that respects the underlying C compiler's runtime conventions; and even the use of C can range from a highly-portable implementation to one that leverages compiler-specific extensions. In general, though, RTSC promotes a very clean, crisp, and portable style of C programming that you will find both easy-to-read and fun-to-write—a style that emphasizes correctness and robustness as the first order of business, and yet can yield highly optimized implementations using modern compiler technology.

But looking back at the figure, you may have also noticed a companion implementation language labeled XDCscript. In general, all RTSC modules maintain implementations in two complementary programming domains:

  • a target-domain where C-based functions are eventually bound into application programs executing on specific hardware platforms; target-functions will typically respect the time/space/power constraints imposed by most embedded systems; and

  • a meta-domain, where corresponding XDCscript meta-functions play an active role in the design-time configuration as well as the run-time analysis of target programs; meta-functions execute on host computers with virtually unlimited resources, enabling module suppliers to factor-out critical functionality from more resource-constrained target implementations.

To fulfill the role of the XDCscript meta-language, RTSC leverages Mozilla's Rhino—an openly-available implementation of the ECMA-262 language standard, popularly known as JavaScript. Easy-to-learn because of its inherent simplicity plus its syntactic resemblance to C, Rhino/JavaScript already serves as the textual configuration language for the widely-deployed DSP/BIOS kernel; inclusion in RTSC as a general-purpose meta-language ensures continuity here.

Once again, were we working in Java or C# (which support on-the-fly reflection and introspection of executing code) the implementation language and the meta-language effectively become one in the same.

Phase 3 — Packaging

RTSC packages play a pivotal role in managing software content throughout its lifespan, from initial component production through final component consumption. More than a programmatic namespace for modules/interfaces declared in XDCspec sources, each RTSC package has a concrete manifestation as a directory that adheres to a prescribed set of organizational conventions: packages are physical as well as a logical containers. But above all, RTSC packages (logically and physically) remain indivisible entities from start to finish: packages are built as a unit; packages are released as a unit; and packages are deployed as a unit.

Building packages. From the supplier's perspective, a RTSC package directory will house source files in multiple languages that specify and implement the package's constituent modules/interfaces. Guided by a specialized build script—itself expressed in the XDCscript meta-language—underlying tools first translate XDCspec module/interface specs into corresponding .h files and then compile C-based module implementations into object-code libraries. In general, package build scripts may prescribe that a common set of (portable) C source-files be compiled multiple times:

  • using the same underlying compiler but with different options; or
  • using a different compiler for each generated library.

To help manage this flow, each library designated in the build script must be associated with a RTSC target—a formal XDCscript recipe for how to invoke a particular C compiler tool-chain. By separating "what to build" from "how to build it", package build scripts written in XDCscript achieve the same levels of clarity and portability that RTSC encourages with target-domain C code.

Releasing packages. Supplier-side build scripts can also prescribe the contents of a RTSC package in its released form(s), each being distinctly named compressed directory files ready for consumption by downstream clients:

  • one release of the package may contain buildable sources;
  • another release may only ship binaries;
  • one release of the package may contain libraries for all targets;
  • another release may only support a subset;
  • and so on, as an exercise for the package supplier.

Automatically-generated manifests delivered with each released package record dependencies of constituent modules/interfaces on other packaged content. The package manifest also records compiler versions used to build target libraries, important for downstream validation during program configuration. Finally, suppliers can explicitly tag their packages with a compatibility key that reflects whether a given package's content is binary-compatible, source-compatible, or incompatible with a previously released version.

Deploying packages. Other than de-compressing RTSC packages delivered (say) as .tar or .zip files, clients never alter the structure or contents of the original package directory; even the name of this directory is fixed, reflecting the original logical name of the package in an obvious way. Clients do, however, control, the ultimate deployment of each RTSC package within their own file-system:

  • clients create and manage arbitrary directories termed package repositories into which (de-compressed) RTSC packages are installed; and

  • clients define and manage their package path—an ordered list of repository directories—used to locate individual files named relative to their containing package.

Both command-line and GUI tools exist to streamline administration of package repositories as well as composition of the package path. These tools also validate the completeness and consistency of the current set of deployed packages, using the manifest and compatibility key associated with each.

Though new to many C programmers, RTSC's three-tier deployment hierarchy—package directory, package repository, package path—is virtually identical to a physical design first popularized by Java a decade ago for locating class files. Most contemporary programming and scripting languages now employ some variant of this scheme, which has amply proven itself to scale across millions of content suppliers. When in doubt, steal shamelessly from the success of others.

Phase 4 — Configuration

As illustrated in the figure, configuration plays a central role in meshing a set of deployed packages containing C headers and libraries with the traditional flow of compiling/linking embedded programs that execute on a particular hardware platform. Orchestrated as a "pre-build" step using the client's own build environment (anything from make to an graphical IDE), RTSC configuration starts with a meta-program—an XDCscript fragment that ultimately guides the integration of target content residing in a designated set of deployed packages. Leveraging the full resources of the client's host computer, RTSC configuration provides an integration-time staging-area in which we can robustly validate the specific combination of target-domain elements prescribed in the XDCscript meta-program as well as optimally generate downstream C compiler/linker inputs tailored for the application at hand.

Prescribing program needs. Besides explicitly identifying all modules required by the target-program, the corresponding XDCscript meta-program input to the process can selectively assign configuration parameters ("configs" for short) declared in the module's original XDCspec source file. One of RTSC's most distinctive features, configs are essentially integration-time variables in the meta-domain that eventually become run-time constants in the target-domain. Knowledge of these config values prior to downstream compiling/linking is also key to enabling new levels of application-specific optimization for embedded C programs.

Syntactically similar to a C variable definition, each config belongs to a specified type and optionally has a default value of that type. And like C, a config's value can range over built-in elementary types (such as numbers or strings) as well as over supplier-defined aggregate types involving arrays, structures, pointers, and even references to other modules. RTSC's XDCscript meta-language extends the underlying Rhino/JavaScript language here by automatically checking for type-compatibility whenever scripts assign new values to a config.

Once the client's XDCscript meta-program completes, RTSC configuration systematically invokes a series of special XDCscript meta-functions implemented by each module required by the client's target-program. One of these meta-functions enables individual modules to themselves designate other required modules as well as assign other configs—not unlike the top-level meta-program. This recursive process eventually converges upon a rich XDCscript dataset that serves as a program model—a blueprint for how independent modules from multiple suppliers will eventually co-exist within the target application program.

Validating program needs. With a top-to-bottom program model now in place, RTSC configuration enables each constituent module to validate the model's contents from its own vantage, by implementing a special XDCscript meta-function that can raise errors or emit warnings when it detects inconsistencies or incompatibilities. Automatic validation of overall package-to-package compatibility using accompanying manifests produced upon package release happens here as well.

The decision to move ahead and enable downstream compiling/linking at this stage in the configuration process must be unanimous across all participating packages and their modules. The net result becomes early detection of serious problems that (at best) may yield obscure downstream compiler/linker errors or else (at worst) may trigger run-time behavior with fatal consequences.

Generating program artifacts. Once validated, the program model's content drives generation of several files consumed by downstream tooling. And once again, RTSC configuration invites each constituent module to actively participate by implementing special XDCscript meta-functions. One such file contains linker commands that enumerate the correct set of target module libraries for this program configuration, as well as overlay the program's logical code/data sections onto the platform's physical memory map.

Just as we've already employed formal XDCscript recipes to abstract the use of different compilers when building different target libraries, RTSC platforms likewise help unify the process of linking/loading programs for diverse embedded hardware. Effectively another input to RTSC configuration (together with a compatible RTSC target used for downstream compilation), the platform's description becomes accessible to any XDCscript meta-function involved in creating or validating the program model. Applying a file-generation template coordinated between the prospective program's target and platform, RTSC configuration yields a linker command-file tailored to the specific requirements of the application at hand.

Last but not least, RTSC configuration generates a C source file comprising:

  • statically initialized constants reflecting each config's final value in the program model;

  • internal state-structures for each module, initialized with help from special XDCscript meta-functions implemented by the module supplier;

  • small code trampolines that bind client-side calls of spec'd module functions to the supplier's corresponding internal implementation (with additional run-time code for parameter validation, event logging, or statistics accumulation inserted under the control of special per-module configs); and

  • miscellaneous fragments of C code/data synthesized through optional module-specific templates which otherwise enjoy full access to the XDCscript program model.

Optimizing program performance. Automatic compilation of this generated C file followed by linking against the appropriate module libraries then occurs, guided by the RTSC target associated with this configuration. With a growing number of contemporary C compilers now supporting whole-program optimization—enabling the compiler to look across multiple source files when generating object code—the initialized constants and small code fragments in our generated C file will typically "melt-away" in the final executable image by applying classic optimizations such as constant folding and function inlining across independent module boundaries.

Supported in all TI compilers as well as the latest GCC and Microsoft offerings, whole-program optimization plays an important role in enabling a higher-level breed of C programming without compromising overall system performance.

Automating program integration. As a final point, we can't stress enough that the RTSC configuration process is an automated one, supplanting past practices in which customers were expected to hand-edit files of linker commands or C code/data in an ad hoc manner. Put another way, RTSC configuration effectively automates many of the manual steps otherwise described in (unread!) README files accompanying legacy C libraries.

RTSC configuration gives component consumers the ability to prescribe their intent in a higher-level format—an XDCscript meta-program—without sweating the low-level (and potentially error-prone) details of consolidating back-end artifacts. Component producers also benefit here, since each module they supply can encapsulate knowledge of optimal parameter settings and code selection through accompanying XDCscript meta-functions invoked in a standardized manner throughout the configuration process.

Phase 5 — Analysis

Each RTSC module is effectively a black-box that publicizes a spec to its clients while hiding the implementation choices of its supplier—a "good thing" for clients architecting richly layered software that is resiliant to change, but potentially a bad thing for clients when something goes awry during execution. To help with program debug in the lab, with system test in the factory, or even with product diagnostics in the field, each RTSC module has the opportunity to support several distinct modes of run-time analysis that again leverage a skillful partitioning between a resource-constrained target-domain and a host-based, resource-rich host-domain.

Analyzing program/module state. Just as modules can actively participate in the design-time synthesis of application programs through RTSC configuration, XDCscript meta-functions flanking a module's target-domain C implementation can play an vital role in the run-time analysis of these programs once execution has commenced (and perhaps even terminated). Given the ability to read the program's data memory—via a host-based debugger, an embedded program monitor, or even a snapshot of program state saved to disk—RTSC analysis first decodes target-domain module state-structures into equivalent meta-domain objects and then calls special XDCscript meta-functions on a per-module basis to optionally transform these objects into a more meaningful view of the underlying state.

While code involved in formulating the client's ultimate view of module state may have migrated from the resource-constrained target-domain to the richer world of host-based XDCscript programming, internal implementation details (e.g., the organization of state structures) continue to remain hidden from a module's client; the integrity of the module supplier's contract with the client remains intact.

Analyzing program/module events. Complementing this state-oriented perspective, another dimension of RTSC analysis involves merging, filtering, and interpreting streams of time-stamped events sourced during the course of program execution. The events themselves could be retained in target-side memory or else transmitted to another processor at run-time using an appropriate output device on the underlying hardware platform.

Whereas state-oriented analysis involves no additional run-time code (except, perhaps, when using an embedded monitor to read module state-structures), event-oriented analysis presumes module suppliers have peppered their target-side C code with what amounts to a very lightweight form of printf—one that can efficiently initialize and queue a time-stamped data packet in fractions of a microsecond. Decode of this packet into something more meaningful happens elsewhere.

Using special Trace functions called at run-time, module suppliers can emit meaningful events anywhere in their C code. More important, special configuration parameters exist on a per-module basis to enable/disable different levels of event logging either permanently or else through run-time flags. Here again, configuration-time flexibility coupled with whole-program optimization enables module suppliers to field one implementation that downstream clients can effectively tailor for a particular set of application requirements or platform constraints.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


High-Level FAQs - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

High-Level FAQs

General questions about Real-Time Software Components

FAQ-080713-1 | I'm an embedded C programmer, so why should I care about RTSC
FAQ-080713-2 | What are the essential features/benefits of components in general
FAQ-080713-3 | How does RTSC expand standard C to embrace software components
FAQ-080713-5 | What's the relationship between RTSC and the XDCtools product
FAQ-080713-4 | Can I leverage RTSC with legacy content, or am I starting from scratch
FAQ-080713-6 | Who's using RTSC today, and what's the roadmap going forward
FAQ-080713-9 | How is the RTSC-Pedia organized, and what sorts of documents exist
FAQ-080713-7 | If I'm only consuming RTSC content, what should I read next
FAQ-080713-8 | I also want to produce RTSC content, what should I read next

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


FAQ-080713-1 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

FAQ-080713-1

I'm an embedded C programmer, so why should I care about RTSC

Because components have become a pillar of modern software engineering practices.... Starting with COM and CORBA in the 1990s—used with C++ in desktop and enterprise applications—contemporary programming languages like Java or C# innately support the design, delivery, and deployment of software components. Thanks to component frameworks aligned with these languages, present-day applications are more modular, more scalable, and more flexible than ever before; software components also promote greater levels of re-use from one application to the next.

While overwhelmingly successful in the mainstream, component technology has had minimal impact on the development of embedded applications where C (still!) remains the programming language of choice. Given the constraints of time, space, and power under which most embedded systems must operate, the run-time overhead typically incurred by mainstream component frameworks is simply too high a price to pay. And yet, given the rising complexity of embedded applications coupled with a desire to field portable (and re-usable) program elements across a range of embedded processors and platforms, we C programmers continually struggle with trade-offs between developing flexible, generic—yet inefficient—building-blocks versus more specialized software optimized for one particular application domain or hardware platform.

With RTSC (pronounced rit-see), however, you can "have your cake and eat it too": requiring no more than ANSI-standard C, we effectively take the language to new heights through component tooling and infrastructure aligned with modern programming practices, and yet responsive to the unique challenges of embedded software development. Simply a better way to program in C, you can enjoy higher-level programming and higher-levels of performance with RTSC.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


FAQ-080713-2 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

FAQ-080713-2

What are the essential features/benefits of components in general

Whether we're talking about software, hardware, cars, or home-entertainment, the rationale for engineering these systems using a component-oriented approach remains the same—managing change. And while re-using existing components in novel ways is certainly an upside benefit, our ability to simply swap-out component S for an alternate (and perhaps new-and-improved) component S′ with minimal impact on the overall system remains fundamental. This level of extreme modularity becomes critical throughout the system life-cycle, from when requirements change during initial development to when products must evolve once in the customer's hands.

To achieve this highly-desirable property of interchangeability, the experts teach us that any component-oriented methodology requires three fundamental capabilities: 1) the ability to specify components; 2) the ability to deliver components; and 3) the ability to assemble components.

Specifying components. Simply put, you can't replace S with S′ if you don't know what S is. Through an appropriate mixture of formal language and informal commentary, we must explicitly specify the boundaries of each component—its inputs, outputs, and operating characteristics captured as a formal contract between a component's supplier and its clients.

Delivering components. Component-based systems encourage highly distributed modes of development, with suppliers and clients often separated by time and distance. To efficiently reach their clients, suppliers must rely on some form of standardized container into which they can deposit and deliver components. From the client's perspective, receiving components from different suppliers that are uniformly "boxed-and-labeled" streamlines inventory management and system integration.

Assembling components. At the end of the day, components exist to be composed with one another. We simply expect components to easily "snap-together" using only basic tools, whether replacing elements of an existing system or else assembling a new system using existing components. Here too, standardization plays a key role in streamlining the overall process.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


FAQ-080713-3 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

FAQ-080713-3

How does RTSC expand standard C to embrace software components

Contents

  • 1 See also

The greatest challenge here lies with the C programming language—it simply lacks the essential expressive power of contemporary (component-friendly) languages like Java and C#, which significantly complicates the job of specifying, delivering, and assembling software components using C alone. At the same time, C has emerged over the past few decades as the ideal "medium-level" language for implementing embedded software, blending portable structured programming with efficient access to underlying hardware resources; replacing C with a more modern alternative is just not viable today, given the performance constraints faced by most embedded programmers.

RTSC addresses this dilemma by introducing two special-purpose languages that both supplement and complement standard C, granting embedded programmers entitlement to a new set of features needed to produce and consume software components without compromising the vital qualities of C. Termed eXpanDed C, the net result becomes a synergistic alliance of programming capabilities which, working hand-in-hand with standard C, elevates the language to an entirely new level:

Briefly, XDCspec serves as RTSC's specification language—used to formally define programmatic contracts (often termed APIs) between producers and consumers of software components in a higher-level manner than otherwise possible using C alone. XDCspec has its roots in the C-like IDLs (interface definition languages) first introduced with COM and CORBA in conjunction with C++ several decades ago, and embodies one of the fundamental principles of modern software engineering—clean separation of public, client-visible specifications from internal, supplier-proprietary implementations.

Along the implementation axis, we also mitigate some limitations of embedded C programming by introducing XDCscript as RTSC's meta-language—used by component producers and consumers alike to streamline delivery and assembly of real-time software components through (meta-)functions that execute on a resource-rich, general-purpose host computer. Complementing the more resource-constrained target-domain of embedded hardware executing embedded applications, RTSC's meta-domain opens up a world of possibilities for selectively migrating C-based target content to a higher-level language that operates in an implementation environment with virtually unlimited resources. XDCscript itself leverages industry-standard JavaScript for its foundation, extending this popular language through tighter coupling back to XDCspec and indirectly through to C itself.

See also

The RTSC Flow From component production to component consumption

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


FAQ-080713-5 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

FAQ-080713-5

What's the relationship between RTSC and the XDCtools product

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


RTSC Programming - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

RTSC Programming

From primers to advanced topics

Contents

  • 1 Primers
  • 2 Advanced Topics

Primers

RTSC Module Primer | Producing and consuming spec'd modules
RTSC Interface Primer | Working with spec'd target modules in the abstract
RTSC Packaging Primer | Producing and consuming packaged content
RTSC Scripting Primer | Working with content in the meta-domain

Advanced Topics

Embedded Instances When (and when not) to use the type Object

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


RTSC Module Primer - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

RTSC Module Primer

Producing and consuming spec'd modules

This Primer puts RTSC modules front-and-center. Initially focusing on how you (playing the role of "client") would consume RTSC modules within C programs, we'll eventually explain how you (playing the role of "supplier") could just as easily produce C-based modules of your own—consumed in turn by others as part of a larger RTSC application.

Along the way, the Primer will introduce two special-purpose languages which (working hand-in-hand with standard C) forge a symbiotic alliance of programming capabilities that RTSC names eXpanDed C:

  • XDCspec serves as RTSC's specification language—used here to define a module's programmatic boundary (what others term its API) as a formal contract between client and supplier; and

  • XDCscript serves as RTSC's meta-language—used here by suppliers and clients alike to streamline host-based production/consumption of spec'd modules targeted for a range of execution platforms.

Acknowledging general industry trends towards employing flexible, re-usable software components—but also recognizing the challenges of achieving these ideals with C alone—the eXpanDed C model exemplified throughout the Primer effectively takes the ever-familiar C programming language to entirely new heights.

As an overarching objective, RTSC promises a higher-level form of C programming—one suitable for developing, delivering, and deploying real-time software components—but without sacrificing overall system performance through additional runtime overhead.

Contents

  • 1 Who's the audience
  • 2 What we'll cover
  • 3 How to proceed
  • 4 See also

Who's the audience

Needless to say, we assume you know C. But we also assume you're a software practitioner quite comfortable with the overall flow of building and running C programs—especially on embedded hardware platforms. At the end of the day, RTSC starts with concepts and processes already familiar to C programmers—and then takes these to an entirely new level.

We don't, however, expect you've had any prior experience (or even exposure) to object-oriented programming using languages such as C++ or Java; and we certainly don't presume any knowledge of software components from an academic perspective. By the same token, those of you with some general background in modern software design techniques should find many of the premises underlying RTSC modules familiar, natural, and almost obvious.

But as we already said, RTSC starts and ends with C. For embedded C programmers who often ask "what's next" as applications grow ever larger and more complex—and who harbor concerns about the steep learning curve and the potential performance pitfalls of moving (say) to C++—RTSC may fill an important void for you.

What we'll cover

We've structured the Primer as a series of lessons that successively build upon one another, constantly reiterating and reinforcing concepts and idioms fundamental to producing and consuming RTSC modules.

Lesson 0 | Getting started — installing examples and tools
Lesson 1 | Basic concepts — constructing "Hello World"
Lesson 2 | Configuration parameters — using the Bench module
Lesson 3 | Instance objects — using the RandGen module
Lesson 4 | Instance object life-cycle — using the RandGen module
Lesson 5 | Packages — revisiting "Hello World"
Lesson 6 | Modules — generalizing "Hello World"
Lesson 7 | Modules — implementing acme.utils.Bench
Lesson 8 | Instance modules — implementing bravo.math.RandGen
Lesson 9 | Modules, packages, and testing — bringing it all together
Lesson 10 | Next steps — learning more about RTSC

Except for the first and last lesson, the remaining lessons each center around a small self-contained example that illustrates common programming idioms used when either producing or consuming any RTSC module. Lessons 1-4 initially focus on the client perspective of a module, illustrating general programming patterns for using arbitrary RTSC modules within a standard C program; we'll also examine a generalized build-flow for such programs that you can easily instantiate with existing tools such as make.

As a bridge to the supplier's perspective of RTSC modules, Lesson 5 first introduces select aspects of the all-important RTSC package—essential for building as well as delivering modules to the client. Lessons 6-9 then proceed to specify and implement a graduated series of modules—some already used from the client's perspective in earlier lessons.

How to proceed

Iteratively.... This Primer actually packs quite a bit of (new) information inside each successive lesson, warranting several passes through the material. Start by simply navigating from one lesson to the next, picking up what you can by quickly skimming the content. And even when you circle back for a more thorough reading of each lesson, don't feel compelled to run any of the programming examples at that time—you can always operate in "read-only" mode and still learn quite a bit about RTSC modules.

You might also find it helpful to break the Primer in half, first tackling the material in Lessons 1-4 on the client's view of RTSC modules before advancing to the supplier's perspective in Lessons 5-9. Having said that, we do not recommend skipping the latter half of the Primer: producing a flexible yet efficient RTSC module is simply too important—and too easy—for you not to master.

Though we have made the examples available as a separate download, you can generally just "copy-and-paste" source code fragments directly off the page:

prog.c
1

2

#include <stdio.h>

int main()
{
    printf("Hello World\n");
    return 0;
}

Throughout the lessons, we'll refer to individual lines in these examples using symbols like 1 or 2. Besides matching the corresponding labels tagging the example code, these symbols serve as live links that will return you to the original example should it have already scrolled off the screen.

FYI.... We'll occasionally interject some additional commentary on the material at hand in this format, usually providing deeper insights into a particular aspect of RTSC. In some cases, these inline comments provide a glimpse into the larger world of RTSC programming for which this Primer will prepare you.

And finally, other than resources listed in a See also section at end of each Lesson, you'll find virtually no links to other RTSC-Pedia documents until the final Lesson; we just want you to stay focused on the material at hand before jumping off elsewhere. If you are, however, looking for an overview of RTSC from 10,000 feet—something to read before hitting the ground—our Introducing RTSC white-paper should satisfy you. Else, if you're a C programmer ready to read some code, proceed onward.

See also

Introducing RTSC | Learning about Real-Time Software Components
High-Level FAQs | General questions about Real-Time Software Components

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


RTSC Module Primer/Lesson 0 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

RTSC Module Primer/Lesson 0

Getting started — installing examples and tools

The steps outlined here will enable you to "play-along" as we work through a series of RTSC programming examples introduced in the lessons that follow. If you'd prefer to just read through the lessons right now, no problem—we've designed the material with that in mind. You might, however, consider quickly unpacking the examples for easy reference, even if you don't plan to build and run any programs at this time.

Contents

  • 1 Unpacking the examples
  • 2 Downloading the XDCtools product
  • 3 Assigning environment variables
  • 4 Locating some C compilers
  • 5 Configuring for build
  • 6 See also

Unpacking the examples

You'll find the examples here, distributed as a single .zip file which you should extract into a (new) directory of your choice—a directory we'll logically refer to as «examples» in the material that follows. If you're operating in "read-only" mode for now, proceed onward to Lesson 1.

Downloading the XDCtools product

To build and run the examples, you'll need to download and install the XDCtools product found here; or, if you've already installed XDCtools on your system, verify that you're working with version 3.15 or higher. Either way, we'll logically refer to the installation directory for the XDCtools product as «xdcroot» in the material that follows.

Assigning environment variables

Next, you'll need to assign the actual name of the «examples» directory chosen earlier to an environment variable named XDCPATH. For convenience, you might also add a reference to the «xdcroot» installation directory to the beginning of your standard search PATH; or, since we'll only be using a few commands found here, feel free to setup an alias to «xdcroot» instead.

To verify these steps, enter xs xdc.tools.path -p from the command-line. If you've correctly added «xdcroot» to your search path and you've correctly assigned «examples» to the XDCPATH environment variable, the following output should appear:

>> xs xdc.tools.path -p
«examples»;«xdcroot»/packages;

The first absolute-path in this list corresponds to the actual name of your «examples» directory; the second absolute-path references a well-known sub-directory named packages beneath your «xdctools» installation.

Locating some C compilers

For instructional purposes, we'll be working with two different C compiler tool-chains:

Texas Instruments C6000 Code Generation Tools — version 6.0.15

  • Windows-hosted developers can download this version of the compiler from here; Linux-hosted developers can download this version of the compiler from here. Either way, «c6xtools» will refer to the installation directory for this compiler in the material that follows.

If you haven't already done so, you'll need to register for a free account with Texas Instruments.

GCC — version 3.4.5 for Windows, version 4.1 for Linux

  • For Windows-hosted developers, we'll be using MinGW—a Minimal port of the GNU tool-chain for Windows— which contains GCC (the GNU Compiler Collection) and which you can download using the MinGW installer found here; «gcctools» will refer to the installation directory for MinGW in the material that follows. Be sure to check the g++ box on the installer's optional components menu; otherwise, you can simply accept the defaults given.

  • For Linux-hosted developers, you already have GCC installed on your system and «gcctools» will refer to its base directory; just verify that you have version GCC 4.1 (or later).

Configuring for build

Finally, you'll need to edit two files found in the «examples» directory:

  • common.mak, used when building client examples in Lessons 1-4; and
  • config.bld, used when building all examples in Lessons 1-9.

common.mak. Starting with the first file, edit the following pair of lines at the top of common.mak and substitute the actual directory names corresponding to «xdcroot» and «c6xtools»:

common.mak

XDCROOT = «xdcroot»
C6XTOOLS = «c6xtools»
   ...

Windows-hosted developers should surround «xdcroot» or «c6xtools» with double-quotes "..." if these directory paths contain any spaces in their names.

Linux-hosted developers should also edit the definition of the RMCMD symbol per instructions found in common.mak.

config.bld. The second file should look something like this if you are a Windows-hosted developer:

config.bld

1

2

3

var Build = xdc.useModule('xdc.bld.BuildEnvironment');

var C64P = xdc.useModule('ti.targets.C64P');
var GCC = xdc.useModule('gnu.targets.Mingw');

C64P.rootDir = "«c6xtools»";
C64P.platform = 'ti.platforms.sim64Pxx';

GCC.rootDir = "«gcctools»";

Build.targets = [C64P, GCC];

You'll need to alter the double-quoted strings "..." on lines 2 and 3 to respectively reference the installation directories for the C6000 and GCC tools established earlier.

Linux-hosted developers should also substitute the string 'gnu.targets.Linux86' on the line labeled 1.

See also

XDCtools Installation Guide | How to install the XDCtools product
Using XDCtools Commands | Setting up your development environment

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCtools Installation Guide - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCtools Installation Guide

How to install the XDCtools product

Contents

  • 1 Installing XDCtools
    • 1.1 About Network Installations
  • 2 Adding XDCtools to Your PATH
  • 3 Setting your XDCPATH
  • 4 Setting an Environment Variable in Microsoft Windows
  • 5 Testing your XDCtools Installation
  • 6 Upgrading XDCtools in Code Composer Studio v4
  • 7 Uninstalling XDCtools
  • 8 See also

Installing XDCtools

Some software products install a version of XDCtools automatically. If you haven’t already installed XDCtools as standalone software or as part of another application, follow these steps. (If you have already installed XDCtools, skip to the next section.)

  • Download — Place the distribution file into a temporary location. The distribution file for Windows is called xdctools_setupwin32_n_nn.exe, where n is a digit in the version number. The distribution file for Linux is called xdctools_setuplinux_n_nn.bin. Additional digits are added to the version number for patch releases.

  • Check privileges — If you are installing on a Windows PC, you should install from an account that has administrator privileges. (The Linux installer does not require root privileges.)

  • Run — The distribution file contains a standard installer.
    • Windows: Double-click on the file to start the installer.
    • Linux: Run the Linux installer on the command line or by double-clicking the file.

  • Customize — You can accept all defaults to install a full system on your local machine, or customize your installation:
    • You can choose an installation directory XDCROOT anywhere on your system. The installer automatically adds a subdirectory that includes the version number (for example, xdctools_3_10) to the location you select. The default installation directory for Windows is C:\Program Files\Texas Instruments.
    • On Windows systems, you can choose either a Typical installation or a Network installation. The difference is that Network installations do not modify the Windows registry to provide support for Code Composer Studio and uninstalling. See below for more details. Most single-user systems should choose a Typical install.

If you are upgrading to a new version of XDCtools, be sure to change any hard coded references in your application files to the old XDCtools directory.

For release information about the version you install, see the xdctools_n_nn_release_notes.html file in the top-level directory.

About Network Installations

The Network installation option allows a single installation of XDCtools to be shared by multiple developers over a network file system. If you select the network installation, the Windows registry is not modified to provide support for Code Composer Studio v3.3 and uninstalling. However, since no files or directories outside the installation directory are modified, you can uninstall a Network installation simply by removing the installation directory.

Currently, the only package of XDCtools that requires Windows registry modification in order to be fully functional is xdc.tools.configuro.ccs. You can make this registry modification after a Network installation, if you wish. To update the required registry entries, follow the instructions in the documentation for the xdc.tools.configuro.ccs package.

Adding XDCtools to Your PATH

On Windows the XDCtools installer automatically adds XDCtools to the PATH environment variable. The following procedure is useful on Linux, or if you want to change to a different XDCtools version on Windows.

Setting the PATH definition makes it easy to run the XDCtools commands. After installing XDCtools, you can add the top-level install directory to your existing PATH definition. See below for how to change your PATH definition on Windows. Only the top-level install directory should be added to the PATH definition.

If you do not want to add the XDCtools directory to your PATH, you can use one of the following alternate ways of running the XDCtools commands:

  • You can invoke the command from the command line by using the full path; e.g., <xdctools install dir>/xs.
  • You can make an alias for the command. See the Creating command aliases section of Using XDCtools Commands, for more information.

Setting your XDCPATH

If you have other software that is delivered in the form of RTSC packages (such as DSP/BIOS), you may also want to set the XDCPATH environment variable to reference the repository containing those packages. The XDCPATH definition allows XDCtools to find all the RTSC packages that have been installed. Its value is a semicolon-separated list of RTSC repository directories.

See below for how to change your XDCPATH definition on Windows. See Managing the Package Path in the XDCtools User's Guide for more information about the package path and how packages are located.

If you don't want to specify environment variables, you can use the --xdcpath command line option to pass the XDCPATH value to all tools that require a package path. This is commonly done when XDCtools is integrated into any build system, such as make or Code Composer Studio, where it may be undesirable to have the build output depend on the possibly transient value of an environment variable.

All directories referenced in XDCPATH, whether in an environment variable or a command line, must use forward slashes (/) as separators instead of the Windows-standard backslash (\). For example, use "c:/os;c:/drivers;c:/framework".

Setting an Environment Variable in Microsoft Windows

Your Microsoft Windows PATH environment variable defines where to look for command-line programs. The PATH is managed by Windows itself (in Windows 2000 and Windows XP) rather than by the autoexec.bat or autoexec.nt files used in previous versions of Windows.

To change the PATH or XDCPATH (and other system environment variables), follow these steps:

  1. Right-click My Computer icon and choose Properties.
  2. In the System Properties window, choose the Advanced tab.
  3. At the bottom of the Advanced tab, click the Environment Variables button.
  4. Highlight Path or XDCPATH in the Systems variables section and click Edit. If the XDCPATH variable does not yet exist, click New.
  5. Add the directory in which you installed XDCtools to the end of the current Path definition. Use a semicolon to separate the locations in the list. For example, you might add the following to your existing Path definition:

    ;c:\Program Files\Texas Instruments\xdctools_3_10
  6. Click OK in the Environment Variables window and in the System Properties window.

Testing your XDCtools Installation

To test the XDCtools installation, in a command window type xs --version. You should see a message similar to this:

xs (XDCscript Interpreter) xdcutils-d20, Jul 29 2008

As a second test, to use one of XDCtools commands, type xs xdc.tools.echo hello world. You should see "hello world" echoed back.

Upgrading XDCtools in Code Composer Studio v4

The XDCtools product bundled in Code Composer Studio v4 can be upgraded by downloading and installing a new version of XDCtools, separately from CCS. There are two distinct uses for XDCtools within CCSv4:

  • IDE Support — Eclipse-based host-side tooling that enables the presentation of RTSC content in the CCSv4 IDE. The version of XDCtools used is a global property of your CCSv4 installation, and should be chosen to be the most recent version of XDCtools that you intend to work with. To change the version of XDCtools that contributes IDE Support, please follow FAQ-080730-2.
  • Target Runtime Support — C source code, libraries, object files and associated RTSC metaonly content that directly contributes to the bits in your embedded application. The version of XDCtools used is a separate property of each C/C++ project. To change the version of XDCtools that contributes Target Runtime Support for:
  • an existing C/C++ project, please follow FAQ-080729-1
  • new C/C++ projects, please follow FAQ-080729-2

Uninstalling XDCtools

To uninstall XDCtools, you can use the uninstaller executable provided in the top-level directory. Double-clicking on this file will remove all files created by the XDCtools installer, leaving behind any that have been modified or added after installation. Any Windows registry entries or environment variables that the installer added automatically during installation will also be removed.

You can uninstall a Network installation simply by removing the installation directory. Of course, if you've updated your Windows registry to enable the xdc.tools.configuro.ccs package, you can remove the required registry entries by following the instructions in the documentation for the xdc.tools.configuro.ccs package.

See also

RTSC+CCStudio v4 QuickStart Using CCStudio v4 to create, build, and debug RTSC projects

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Using XDCtools Commands - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Using XDCtools Commands

Setting up your development environment

Contents

  • 1 Running XDCtools commands
    • 1.1 Creating command aliases
    • 1.2 Setting your PATH definition
  • 2 Getting more information
    • 2.1 Using the CDOC reference help system

Running XDCtools commands

XDCtools has just two "core" commands:

xdc - which is used to produce packages, and
xs - which is used to run commands delivered in packages.

Although you may find it convenient to do so, neither of these tools requires that you redefine your workstation's command path. Both of these commands use their location in the file system to locate all shared libraries or utilities necessary for their proper operation. So, it is important that you never move any files contained in or under XDCROOT; you may move the entire directory folder to a new location, but never move any files or directories within XDCROOT.

To simplify running xdc and xs, you can either

  • define an alias for these commands (see Creating command aliases), or
  • set you command path environment variable PATH (see Setting your PATH definition).

Whether you choose to set your PATH or define command aliases, all examples in the documentation assume that the xdc and xs tools can be invoked directly on the command line using just xdc or xs respectively.

Creating command aliases

If you prefer to avoid polluting your path with additional directories, you can define a command aliases that simply expand to the absolute path of the appropriate command. This technique also makes it easy to use multiple versions of the XDCtools product within single command shell environment.

On Windows hosts, you can create aliases using the doskey command from the cmd.exe shell as shown in this example:

set XDCROOT=c:\xdctools_3_10

doskey xdc=%XDCROOT%\xdc.exe $*

doskey xs=%XDCROOT%\xs.exe $*

To avoid retyping these commands they can be placed in a file, say c:/my/init.bat, which can be run from a shortcut used to invoke cmd.exe

cmd.exe /k c:\my\init.bat

If you use a Unix ksh compatible command shell, aliases are set as follows:

set XDCROOT=/home/tools/xdctools_3_10

alias xdc=$XDCROOT/xdc

alias xs=$XDCROOT/xs

These commands can, of course, be placed in your shell's startup file and you should change the definition of XDCROOT to match the installation directory of the XDCtools.

 Setting your PATH definition

The XDCtools product does not use the PATH environment variable. However, your operating system and command shell does—PATH defines where the operating system looks for command line programs.  To simplify invoking the product's command-line tools, you may want to include the top-level XDCtools directory in your PATH.

To change the Windows PATH (and other Windows environment variables), follow these steps:

  1.  Right-click My Computer and choose Properties.

  2.  In the System Properties window, choose the Advanced tab.

  3.  In the Advanced tab, click the Environment Variables button.

  4.  Highlight the Path variable in the "Systems variables" area and click Edit.

  5.   Add the directory in which you installed XDCtools to the end of the current Path definition. Use a semicolon to separate the locations in the list. For example, you might add the following to your existing Path definition:

     ;c:\xdc_3_10

  6.  Click OK in the Environment Variables window and OK in the System Properties window.

  7.  Reopen any Command Prompt you want to use with XDC.

To change PATH on Unix systems such as Linux, you need to follow the instructions specific to the command shell you're using.  For example, if you are using a ksh compatible shell

export PATH=$PATH:/home/tools/xdc_3_10

  Getting more information

You can read the following additional documents to learn more about XDC:

  •  XDCtools Release Notes (XDCROOT/release_notes.html). Includes information about software version, upgrades and compatibility, host and target device support, validation, and known issues.

  •  XDCtools Installation Guide (XDCROOT/doc/XDC_Installation_Guide.pdf). Includes steps for installing and validating the installation.

  •  "CDOC" reference documentation. Contains full reference information about all installed packages and their modules, APIs, configuration options, data structures, etc. See Using the CDOC reference help system for how to use this online system.

  •  RTSC Module Primer. Provides information about creating and using RTSC Modules.

  •  RTSC Interface Primer. Provides information about creating and using RTSC Interfaces.

  •  The XDCscript Language. Provides brief summary of the RTSC meta language used to configure modules and create new commands.

  Using the CDOC reference help system

To open the CDOC reference help system, you can choose CDOC from the XDCtools group in the All Programs section of the Windows Start menu.

Alternatively, run the xdc.tools.cdoc.sg tool from any command prompt—including a Linux bash shell.

xs xdc.tools.cdoc.sg

You see the "cdoc" window with a tree view of the RTSC packages available to you. All of these packages provide documentation that can be displayed by the CDOC viewer.

Click "+" next to a directory to expand its list of packages. Click "+" next to a package name to see the list of modules it provides. Double-click on a package or module to see its reference information or simply hover over an item in the tree for a brief summary.

For each topic you view, there is a tab across the top of the page area. You can use these to quickly return to other pages you have viewed. You can also use the arrows next to "Views" to move backward and forward in your history of page views.

To close a page and remove its tab, click the X on the tab.

To directly view a package's documentation without having to navigate through the tree list, simply pass the name of the package (or module) on the command line.  For example, to view the xdc.tools.cdoc.sg tool's reference documentation (using itself!), type the following command:

xs xdc.tools.cdoc.sg xdc.tools.cdoc.sg

   [printable version]  [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"

Views

  • Special
    •

Personal tools

  • Log in / create account
    •

Navigation

  • RTSC-pedia home
    •

  • RTSC project home
    •

  • News & support
    •

  • Help
    •

binders

  • General Information
    •

  • RTSC Programming
    •

  • User's Guide
    •

  • Reference Manual
    •

package reference

  • XDCtools packages
    •

lists

  • Master doc-map
    •

  • Category query
    •

  • Redirected pages
    •

tools

  • Find+Replace (grep)
    •

  • RSS feed
    •

more tools

  • Upload file
    •

  • Special pages
    •

  Powered by MediaWiki

  • Privacy policy
    •

  • About RTSC-Pedia
    •

  • Disclaimers
    •


RTSC Module Primer/Lesson 1 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

RTSC Module Primer/Lesson 1

Basic concepts — constructing "Hello World"

Like every other programming text on the planet, we'll begin with a minimal "Hello World" program to illustrate some basic concepts of RTSC. While fundamentally rooted in the C programming language, RTSC introduces new capabilities for configuring and building embedded applications which augment more familiar processes of constructing C programs. Pay careful attention to these differences, however subtle they may appear—these are the essence of RTSC.

Contents

  • 1 Reading the program
  • 2 Configuring RTSC programs
  • 3 Building and running the program
  • 4 See also

Reading the program

The code for this simplest of applications resides in two source files, and not just one as you might have expected. The first file (prog.c) should seem "obvious" to anyone fluent in C (though our use of the C language may seem a little stylized). But the second file (prog.cfg) is truly something new and different—a RTSC meta-program that serves to configure the corresponding target-program.

lesson1/prog.c
1

2

#include <xdc/runtime/System.h>

int main()
{
    System_printf("Hello World\n");
    return 0;
}
lesson1/prog.cfg
3

var System = xdc.useModule('xdc.runtime.System');

Before examining the three labeled lines in these source files, suffice it to say that this RTSC program uses—is a client of—a RTSC module whose canonical, fully-qualified ("long") name is xdc.runtime.System. Briefly, a RTSC module defines a programmatic boundary between client and supplier characterized by:

  • a public specification featuring a cohesive and stable collection of constants, types, and functions (what others might term an "API") visible to and used by the module's clients; and

  • an internal implementation known to the module's supplier but whose code/data otherwise remain hidden from any clients and are potentially subject to change.

Each RTSC module in turn must reside within some RTSC package, where a package simultaneously serves as a logical as well as a physical container for a set of modules:

  • logically, a package provides a globally-unique programmatic namespace that scopes the definition of any its constituent modules, much as a C struct scopes the definition of its fields; and

  • physically, a package represents a similarly named directory that houses all public/internal files associated with the specification/implementation of its modules.

In our example at hand, the module canonically referred to as xdc.runtime.System resides in a package whose (canonical) name is xdc.runtime. Besides System, this package houses other modules such as Memory, Error, and Startup which we will use in later examples.

The System module itself specifies a minimal set of basic functions whose names—printf, atexit, abort—suggest kinship with identically named functions found in the standard C library. In reality, the internal implementation of the System module may not necessarily leverage the general-purpose libraries supplied with most C compilers, choosing instead to employ more scalable renderings of these functions optimized for resource-constrained embedded platforms. How this actually works is an advanced topic in RTSC programming, beyond the scope of this Primer. For now, just think of System_printf as doing what printf normally does.

From the C programmer's perspective, using a RTSC module is not unlike working with most legacy libraries—you first #include some .h header files and then you use the constants, types, and functions declared therein; lines 1 and 2 in the code above apply this pattern for the xdc.runtime.System module. As a rule, the #include directive for any RTSC module will always designate its corresponding .h file through a directory path that derives from the module's fully-qualified name in an obvious way. On the other hand, references to any constants, types, or functions spec'd by a module (such as the call to System_printf at line 2 above) will generally occur through C language identifiers of the form ModuleName_elementName, reinforcing the fact that RTSC modules themselves serve as a namespace that further scopes the definition of other programmatic elements.

Yes, you can also use long C identifiers like xdc_runtime_System_printf, but readability suggests otherwise. Sometimes, though, this is unavoidable—say, when another package containing a module named System is used in the same client program. Fortunately, these sorts of collisions happen much less frequently than you might imagine.

Turning to the second file in our example, the statement at line 3 says it all—even though you're not necessarily sure what role prog.cfg plays in the overall flow, let alone what language we're speaking here. By design, all RTSC target-programs—C programs with a main() entry-point—conceptually begin life within a corresponding RTSC meta-program that executes on your host-computer before the final compile/link of your application. In the example at hand, the prog.cfg meta-program simply prescribes that the prog.c target-program will be using the xdc.runtime.System module during its own execution; as a rule, xdc.useModule calls in the meta-program will mirror #include directives in the target-program. In the lessons that follow, the role of prog.cfg will expand to incorporate other aspects of RTSC program configuration.

And as for the meta-language used to express meta-programs, RTSC introduces a special-purpose language known as XDCscript—a superset of industry-standard JavaScript that builds upon Mozilla's openly available Rhino implementation. Already a mainstay in DSP/BIOS as its textual configuration language (tconf), we have in fact extended Rhino/JavaScript to better integrate with other elements in the overall RTSC development flow—for sure, you won't find xdc.useModule described in any current textbooks about JavaScript.

Recall that XDCscript is one of two special-purpose languages introduced by RTSC under the banner of eXpanDed C—suggesting that C alone is not enough. The latter half of this Primer introduces the other special-purpose eXpanDed C language—the higher-level XDCspec specification language—used by suppliers of RTSC modules looking to deliver flexible yet efficient software components targeted for a variety of embedded platforms.

Configuring RTSC programs

RTSC configuration, as we've already hinted, occurs before the final compile/link of your application: executing the prog.cfg meta-program serves as a "pre-build" step that ultimately affects the compiling and linking of the prog.c target-program. To ease integration into existing program build flows—whether driven by command-line tools or a graphical IDE—we'll initially rely on another tool known as configuro to orchestrate the RTSC configuration process:

Included as part of the XDCtools product you've already installed in Lesson 0, configuro generates two output files that in turn become inputs to the compiler and linker when building your target-program:

  • compiler.opt, which sets all -D and -I flags needed to locate any RTSC module headers included by this program (such as xdc/runtime/System.h); and

  • linker.cmd, which enumerates the appropriate pre-compiled libraries containing implementations of any RTSC modules used by this program (such as xdc.runtime.System).

Besides the prog.cfg meta-program, input to configuro will typically designate a RTSC target as well as a RTSC platform—pre-defined XDCscript recipes that respectively guide the compiling and linking of prog.c in our example at hand:

  • a RTSC target knows how to compile C sources into an object-code library for a particular CPU instruction set and memory model using a specific vendor tool-chain; and

  • a RTSC platform knows how to link and execute a C program for a particular hardware board (real or simulated) featuring a specific complement of processors, memory, and peripherals.

While clearly impacting the contents of compiler.opt and linker.cmd, the wealth of information encapsulated within a RTSC target and RTSC platform is generally available throughout the XDCscript environment—during execution of the prog.cfg meta-program as well as from within special back-end meta-functions we'll encounter later on.

Building and running the program

As a concrete illustration of the build flow, the directory «examples»/lesson1 in your installation contains a makefile along with copies of prog.c and prog.cfg. The makefile itself simply includes the «examples»/common.mak file which you edited in Lesson 0.

Using a version of gmake bundled with XDCtools (and assuming you've added «xdcroot» to your PATH), invoking the command gmake all from within the «examples»/lesson1 directory should yield the following messages:

1

2
3

>> gmake all
«xdcroot»/xs xdc.tools.configuro -c «c6xtools» -t ti.targets.C64P -p ti.platforms.sim64Pxx -o cfgsite prog.cfg
making package.mak (because of package.bld) ...
generating interfaces for package cfgsite (because package/package.xdc.xml is older than package.xdc) ...
configuring prog.x64P from package/cfg/prog_x64P.cfg ...
cl64P package/cfg/prog_x64P.c ...
«c6xtools»/bin/cl6x -q -@cfgsite/compiler.opt -c prog.c
«c6xtools»/bin/lnk6x -q -z -c prog.obj cfgsite/linker.cmd -o prog.out -l «c6xtools»/lib/rts64plus.lib

The actual output would replace the symbols «xdcroot» and «c6xtools» with full paths to the directories where you've installed the XDCtools product and the Texas Instruments C6000 Code Generation Tools back in Lesson 0.

Lines 1, 2, and 3 respectively follow the flow outlined in the earlier figure, but now with all the details of invoking these tools made explicit. We'll revisit these messages in the next lesson and explain a little more about what you're seeing here.

And last but not least, you can run the example by invoking gmake test from the command-line—the output should be obvious!

See also

Consuming Configurable Content | Introduction to the RTSC configuration process
Overview of xdc.runtime | Introduction to the xdc.runtime package
xdc.runtime.System.printf | Client documentation for xdc.runtime.System.printf

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Consuming Configurable Content - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Consuming Configurable Content

Introduction to the RTSC configuration process

Contents

  • 1 Introduction
  • 2 A configuration example
    • 2.1 The C code
    • 2.2 The configuration code
  • 3 Integrating configuration into your build flow
    • 3.1 Choosing a target
    • 3.2 Choosing a platform
    • 3.3 Running xdc.tools.configuro
  • 4 Example build integrations

Introduction

Any application that uses a RTSC package needs a configuration file. This file contains statements that configure the contents of the packages used by the application and is read by a hosted configuration tool, xdc.tools.configuro, which generates static C data structures that must be linked into your application. Your C/C++ program code can do additional dynamic configuration, but this generated static data defines the starting point.

The configuration file uses simple JavaScript (EcmaScript) syntax to set properties and call methods provided by objects provided by XDCtools. The combination of JavaScript and the script objects provided by XDCtools is referred to as XDCscript. For more information about the language used for configuration, see The XDCscript Language.

RTSC configuration serves the following purposes:

  • Specifies the modules and packages to use and static objects to create.
  • Performs integrity checks between specified and dependent packages; see Compatibility Keys for a description of these checks.
  • Sets configuration variables (options) for modules and objects to change their default runtime behavior.

The RTSC configuration framework enables packages to customize their content based on your hardware platform and your application's requirements. Configuration scripts specify your application's requirements, and the RTSC configuration framework uses these scripts to generate files that must be integrated into your normal application build: The following figure shows how these files fit into the typical build process. RTSC provides tools to simplify the integration of these files into your build environment.

The RTSC configuration file is a .cfg file. When you process the .cfg file, the files shown in the "Config Output" block are generated. This is a simplified diagram. Actually, processing the .cfg file generates several other files that, while useful, are not required for the examples shown in this document.

As a consumer of RTSC-based content, you don't need to know about all of the generated files. Two files of particular interest are:

  • appcfg.obj—An object file created by compiling a generated appcfg.c file that contains static data structures and functions referenced by the packages named (directly or indirectly) by the configuration script. During single-step debugging of your application, you may step into appcfg.c.
  • appcfg.cmd—A linker command file, also generated by the configuration process, that contains the list of libraries supplied by the packages referenced by the configuration script as well as platform-specific memory definition and placement information.

When you are learning to use XDC, you will likely use the xdc.tools.configuro utility described later in this article to process your configuration file. That utility generates the following additional important files from your configuration file:

  • compiler.opt—Contains compiler command-line options for your target and platform. This file allows you to easily compile your application's sources using the same options used to create appcfg.obj. You can thus avoid bugs that would result from linking together files compiled with mismatched runtime assumptions.
  • linker.cmd—Corresponds to the appcfg.cmd file. Contains the linker options required to use the content from the packages required by the application.

It is these two files that are commonly integrated into your build flow. As you develop and troubleshoot your application, you may want to review the figure earlier in this section to see which files need to use and reference others.

A configuration example

In this section we illustrate configuration with a simple "Hello World" application that uses the xdc.runtime.System module from the xdc.runtime package.

The C code

The C code. The following statements comprise the entire "Hello World" application:

hello.c

#include <xdc/std.h>
#include <xdc/runtime/System.h>

int main() {
    System_printf("Hello World!\n");
    return (0);
}

The first #include statement is required in all C code that uses RTSC modules and defines a set of portable "base types" used by all modules. The second #include statement allows the C code to use the System_printf() function is provided by the xdc.runtime.System module. Notice how the package name "xdc.runtime" is part of the #include statement; the same pattern of using the package name, with dots replaced with slashes, is used for all modules. For more examples and information about using and creating modules, see the RTSC Module Primer.

The configuration code

The configuration code. In order to build and run the "Hello World" application above, you must first create a configuration file called, say, hello.cfg. For this example, the following JavaScript statement must be in this file:

hello.cfg

var System = xdc.useModule("xdc.runtime.System");

The xdc.useModule() method enables the application to use the xdc.runtime.System module. Notice that, like the #include statement in the C source, the xdc.useModule() statement names both the module and the package. As a general rule, if your application directly references a module, your application's configuration script should have a corresponding xdc.useModule() statement naming the module referenced.

If you don't explicitly request one of the xdc.runtime modules (via xdc.useModule()) and no other module requested uses any of the modules in this package, a direct reference to any of the xdc.runtime modules from your application's sources may result in link-time errors.

In more complex applications, you will add additional configuration statements to this file to use various modules, set properties of modules, and create and configure instances of the objects managed by these modules. Some modules of the xdc.runtime package, for example, support a rich set of configuration parameters that can have a significant affect on the performance and footprint of your application. In the case of the System module , for example, there is a configuration parameter named maxAtexitHandlers. This parameter sets the maximum number of "atexit handlers" that can be bound at runtime; a static table of size maxAtexitHandlers is statically allocated to hold these handlers. If your application never calls System_atexit(), you can save precious application data space by setting maxAtexitHandlers to zero.

var System = xdc.useModule("xdc.runtime.System");
System.maxAtexitHandlers = 0;    /* don't reserve any space for System_atexit() */

For a complete list of all configuration parameters supported by the modules you use, see the module's reference documentation. Beyond any supplied by the package containing these modules, a module's reference documentation is always available via the cdoc tool. See Using the CDOC reference help system.

As you develop applications, the configuration step is one you are likely to revisit as you add functionality to your C code or tune the performance of the modules it uses.

Integrating configuration into your build flow

In this section, you use the xdc.tools.configuro tool provided with XDCtools to process the hello.cfg configuration file above. Processing the file generates a compiler.opt file to be used when you compile the application and a linker.cmd file to be used when you link the application. The compiler.opt file allows you to easily compile your application's sources using the same options used to create hellocfg.obj. To simplify your link step, the linker.cmd file is the hellocfg.cmd file with an added reference to hellocfg.obj.

Before a configuration script can be processed, however, you need to specify the "target" compiler and the hardware "platform" required to run your application. In general terms:

  • A target identifies a specific compiler and an ISA and runtime model supported by the compiler. For example, the TI C6000 compiler for the C64+ ISA running in big endian mode.
  • A platform identifies the hardware execution environment as seen by your application. For example, a DM6446 EVM with 64 MB of DDR2 external memory.

The configuration tool uses simple string names to identify targets and platforms. For detailed information about targets and platforms see Introduction to Targets and Platforms.

Choosing a target

The "target" identifies a specific compiler, ISA, and runtime model supported by the compiler. It is used during the configuration process to compile the generated C file with the right compiler options. Some example target strings are:

  • ti.targets.C64, ti.targets.C64_big_endian, ti.targets.C64P, ti.targets.C64P_big_endian
  • gnu.targets.Linux86, gnu.targets.Mingw
  • microsoft.targets.Net32, microsoft.targets.Win32

To see the latest list of targets, open the CDOC online documentation (see Using the CDOC reference help system). You can expand the ti.targets, microsoft.targets, and gnu.targets packages to see a list of currently supported targets as well as details about compiler options required by these targets. For a snapshot of the targets available see Existing Targets.

Choosing a platform

The "platform" is a name that identifies a specific board and its settings. It specifies a particular device and memory map on which an application will run. It is used during the configuration process by packages that require platform-specific information, such as the memory map, the initial CPU clock speed, or the revision of the device running the application.

The full list of platform packages available is visible in the CDOC online documentation in the list of packages under ti.platforms. See Using the CDOC reference help system for information about using CDOC. Examples include:

  • ti.platforms.sim6xxx
  • ti.platforms.dsk5510
  • ti.platforms.evmDM6437

If you are developing for a platform that is not listed in the online documentation, you may be able to use the ti.platforms.generic platform. For more information about how to define a platform instance using this platform package, see the CDOC online documentation for the ti.platforms.generic package.

Running xdc.tools.configuro

The xdc.tools.configuro tool processes configuration files and produces output files that are required to link your application and compile sources that reference values defined by the configuration files. For example, to generate files from the hello.cfg configuration shown above, use the following command line:

xs xdc.tools.configuro -t <target> -p <platform> -c <compiler_location> hello.cfg
  • The -t option specifies the target.
  • The -p option specifies the platform.
  • The -c option specifies the location of the compiler you want to use.

For example:

xs xdc.tools.configuro -t ti.targets.C64 -p ti.platforms.sim6xxx -c c:/CCStudio_v3.3/C6000/cgtools hello.cfg

This command generates two output files, hello/compiler.opt and hello/linker.cmd, which must be integrated into the build of this application.

hello/linker.cmd
this linker command file names all libraries that must be passed to the linker to link your application
hello/compiler.opt
this text file contains compiler options required to build C source that reference values defined by hello.cfg

Since every build environment is different, it's best to look at specific examples of how these files are used to create a complete application. See Consuming Configurable Content/makefiles for simple makefile integration.

Example build integrations

You can integrate the step of running configuro into your makefile or Code Composer Studio project file as described in the following topics.

makefiles | RTSC configuration with makefiles
CCStudio | Using configuro within Code Composer Studio 3.x

The configuro tool is designed to allow you to create a single configuration that can be shred among more than one application. This allows you to cleanly separate the configuration process from the rest of your build process and allows you to avoid unnecessary runs of configuro when, for example, building a test suite where each test uses a common configuration. The following topics illustrate how this can be accomplished.

Sharing a Configuration via make Using make to build multiple applications that share a configuration
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Overview of xdc.runtime - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Overview of xdc.runtime

Introduction to the xdc.runtime package

Contents

  • 1 Introduction
  • 2 Architecture
  • 3 Using This Package
  • 4 Examples
  • 5 Extending This Package

Introduction

The xdc.runtime package contains many low-level modules that work together to provide "core" services appropriate for any embedded C/C++ application:

  • memory management: basic memory allocation and freeing from multiple heaps
  • concurrency support: low-level critical region protection mechanisms
  • real-time diagnostics: printf-like logging, error management, and assertion support
  • system services: system initialization and shutdown (exit(), atexit(), abort(), etc.) and basic character output (printf())

Architecture

The services provided by the xdc.runtime package are partition into numerous modules. The relationship between the modules in the xdc.runtime package and the services they provide is depicted in the figure below.

All of the modules and interfaces provided in the xdc.runtime package are supplied in portable C source code form. In addition, all of the modules are designed to be thread-safe and, where necessary, use the Gate module to serialize access to global data structures.

In order to ensure platform independence, those modules that require platform-specific services are designed to support one (or more) platform-specific "service providers". Each of these providers implements one of the interfaces supplied. Simple implementations of each service provider interface are also included in this package.

Using This Package

Only a subset of the xdc.runtime package's modules are directly referenced by an application. The other modules provided in the xdc.runtime package are simple implementations of "service provider" interfaces required by the application-level modules or are supporting modules that may be used in these implementations.

The table below summarizes the application-level modules and provides links to both the reference API documentation as well as user guide information for each category of service provided by the xdc.runtime package.

Category | Modules | User's Guide Documentation
memory management | Memory | Memory Management
concurrency support | Gate | Mutual Exclusion Gates
real-time diagnostics | Log, Assert, Error, Timestamp, Diags | Event Logging, Error Handling, Timestamp Services
system services | System, Startup | Basic Services

Like all packages, client applications must specify in a configuration script which modules of this package are to be included in the application. This configuration script is processed by the configuration tools to produce files that must be incorporated into your application. The configuration tool and how it is used is described in Configuration Basics.

Unlike other packages, however, the xdc.runtime package is treated specially within the XDCtools product.

  1. Unless explicitly disabled, every target implicitly adds a package containing a compiled version of the xdc.runtime modules to your configuration. See the Removing xdc.runtime From an Application section of Working with xdc.runtime to see how to disable the implicit include of this package.
  2. Every RTSC target module references "service provider" modules implementing IHeap and IGateProvider and, unless you specify otherwise, each RTSC target module will be "bound" to default implementations of these interfaces: HeapMin and GateNull.
  3. Every RTSC target module also allows the client to bind a "service provider" module implementing the ILogger interface.

There are several practical consequences of this special treatment:

  • by default, all applications link with a library containing the xdc.runtime modules.
  • since the xdc.runtime modules are used by most other modules (including service providers), xdc.runtime modules often become part of a configuration even if you omit the declaration within your configuration script; e.g., configuration scripts that do not explicitly call xdc.useModule("xdc.runtime.System") may coincidently work with applications that directly reference the System module.
  • if you do not specify a module that implements the ILogger interface, all Log methods will be disabled and no Log events will be generated. In addition, unlike all other modules, you can not use xdc.runtime.Defaults to enable logging for the modules in the xdc.runtime package; you must explicitly set the logger and diagnostics flags for any module in xdc.runtime that you want to trace.

This package includes a single C++ file that defines a single statically initialized variable - the return value of the Startup module's initialization function. Since the ANSI C++ Standard ensures that all static variables are initialized prior to main(), module initialization via Startup always occurs prior to main(). This technique of initialization, while portable, implies that applications must, by default, be linked as C++ applications. If you are using a target that does not support C++ or you need to build an application that must not include C++ startup initialization, see Using xdc.runtime Startup.

If you are using this package in a multi-threaded environment, you must supply at least one implementation of the IGateProvider interface; otherwise, some xdc.runtime operations — as well as any modules that rely on these operations — will have undefined behavior. For more information about how to use this package in a multi-threaded environment, see the Multi-Threading Support section of Working with xdc.runtime.

Examples

The best way to understand how to use and take advantage of the xdc.runtime package is to study some simple examples. In the table below, we provide examples that illustrate the use of the xdc.runtime package within different execution contexts.

Example | Description | Purpose
Example 1 | Using xdc.runtime in native workstation applications | illustrate how to configure xdc.runtime to use existing memory and I/O services provided by standard C runtime environments
Example 2 | Using xdc.runtime in deeply embedded applications | illustrate how to configure xdc.runtime to minimize external dependencies

Extending This Package

Every embedded system has a unique set of capabilities and resource constraints. In order to enable the APIs provided by the xdc.runtime package to be available in every application, many of the xdc.runtime package's modules can be customized or "extended" to operate in a manner consistent with the runtime requirements of the embedded application. For example, when diagnostic events are generated, these events must be transmitted or stored using capabilities unique to the embedded platform.

Many of the modules in the xdc.runtime package have a corresponding "provider" interface that can be implemented in a platform-specific manner without requiring any change to existing clients. In particular,

  • the Log module relies on an underlying module, that implements the xdc.runtime.ILogger interface, to "do something" with events logged; e.g., write to a local circular buffer, send to an adjoining processor, etc.
  • the Timestamp module relies on an underlying module, that implements the xdc.runtime.ITimestampProvider interface, to obtain a system-wide timestamp value with up to 64-bits of range. Some CPUs have a running instruction cycle counter, some have a separate real-time clock, while others simply use real-time data streams to provide a timebase.
  • the Gate module relies on an underlying module, that implements the xdc.runtime.IGateProvider interface, to obtain and release a system-wide thread-safe lock. In non-preemptive or single-threaded systems this lock doesn't need to do anything, in systems with a preemptive RTOS it needs to use the RTOS's primitives to create an appropriate mutex.
  • the System module relies in an underlying module, that implements the xdc.runtime.ISystemSupport interface, to manage the orderly termination of the application; e.g., does abort() create a "core" file to assist debugging, should exit() enter a low power state erasing local memory or simply idle the CPU, etc.
  • the Memory module relies on an underlying module, that implements the xdc.runtime.IHeap interface, to manage allocation and freeing of memory. Some systems require deterministic operation and are willing to accept sub-optimal space usage of a fixed length allocator, other systems never perform allocation in the real-time path and require the ability to use all memory even in the face of variable length allocations, and still others never free memory.

The table below summarizes interfaces defined by the xdc.runtime package, identifies simple implementations of these interfaces (provided in the xdc.runtime package itself), and provides a reference to an "extender's" document that describes how to create new implementations of each interface.

Interface | Implementations | Purpose | Extender's Guide
xdc.runtime.ILogger | LoggerBuf, LoggerSys | process Log events | ILogger
xdc.runtime.ITimestampProvider | TimestampNull (default), TimestampStd | provide current time with up to 64-bits of range | ITimeStampProvider
xdc.runtime.IGateProvider | GateNull (default) | thread-safe mutex | IGateProvider
xdc.runtime.ISystemSupport | SysMin (default), SysStd | handle application termination and basic character output | ISystemSupport
xdc.runtime.IHeap | HeapStd (default), HeapMin | allocate and free memory | IHeap

Although, there is just one module responsible for implementing the ISystemSupport and ITimestampProvider interfaces, every module in a system can have an independent ILogger, IGateProvider, and IHeap implementation.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


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 Wed, 08 Dec 2010 20:07:59 GMT


RTSC Module Primer/Lesson 2 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

RTSC Module Primer/Lesson 2

Configuration parameters — using the Bench module

Leveraging everything you've learned in the last lesson, we'll now extend our "Hello World" program by using a second module—canonically named acme.utils.Bench—which supports program benchmarking by measuring the execution time of one or more C language statements. Besides reinforcing general patterns of RTSC module usage from within the C language, the Bench module in particular features a RTSC configuration parameter (or "config", for short) that becomes assignable in a target-program's corresponding XDCscript meta-program.

Lesson 7 covers the internal implementation of Bench, looking at the module from its supplier's perspective. In this lesson, however, all we know about Bench comes from the module's public specification—which defines the client programmer's perspective seen here.

Contents

  • 1 Reading the program
  • 2 Assigning values to module configs
  • 3 Building the program
  • 4 Running and modifying the program
  • 5 See also

Reading the program

Once again, the application features a pair of interrelated source files—the target-program prog.c together with its corresponding meta-program prog.cfg.

lesson2/prog.c
1

2

3

#include <acme/utils/Bench.h>
#include <xdc/runtime/System.h>

int main()
{
    Bench_begin("System_printf timing");
    System_printf("Hello World\n");
    Bench_end();

    return 0;
}
lesson2/prog.cfg
4

5

var Bench = xdc.useModule('acme.utils.Bench');
var System = xdc.useModule('xdc.runtime.System');

Bench.enableFlag = true;

The Bench module—whose fully-qualified name is reflected in the #include directive at line 1—features two functions used to bracket the fragment of code we wish to benchmark:

  • Bench_begin, which accepts a string (output later) as its sole argument and initiates a new measurement; and

  • Bench_end, which terminates the current measurement and then prints the string passed earlier to Bench_begin followed by the measurement itself.

While this example only brackets one C statement with Bench_begin / Bench_end—albeit one statement that itself contains a call to System_printf which internally can execute a significant number of statements—the pattern applies to arbitrary blocks of code. As a constraint, nesting of Bench_begin / Bench_end pairs is not supported in the current implementation of this module.

Turning now to prog.cfg, line 5 explicitly enables time measurement inside the Bench module; without this assignment, the target functions Bench_begin and Bench_end effectively become no-ops. For C programmers unfamiliar with the "object-oriented" syntax of JavaScript—and hence XDCscript—the object.property idiom at line 5 is not unlike accessing a struct field in C. The object itself—held in a local variable that happens to be named Bench—results from a call to the useModule property of a special (global) object named xdc on line 4; the object.property idiom is in fact more general than a simple field access, and subsumes function calls as well.

Unlike C, JavaScript enables you to enclose characters strings of arbitrary length inside single-quotes ('xdc.runtime.System') as well as inside the more familiar double-quotes ("Hello World\n"). As a convention, we'll limit use of the first form to names of RTSC modules passed to xdc.useModule; similar color-coding between lines 1 and 4 in the example above reinforces an important relationship between a RTSC target-program and its corresponding meta-program.

Assigning values to module configs

Module configs play a very special role in the world of RTSC modules, in that they are initially assignable in XDCscript meta-programs but eventually become frozen constants in the corresponding C target-program. Like any C variable, each config belongs to a particular type that can range from standard elementary types (numbers, booleans, strings) to supplier-defined compound types built from structures, arrays, and pointer-like references; and like any C variable, each config can optionally have a initial value of the same type, which effectively becomes the config's default value if not explicitly assigned in the meta-program.

To underscore their inherent "assignability", configs by convention will have camelCase names beginning with lower-case letters—the prevailing practice in C for naming variables, arguments, and struct fields.

In the case of enableFlag in our example, the Bench module specifies this config as a boolean with a default value of false. Attempting to assign Bench.enableFlag a value of some other type (say, the integer value 1 or the string value "yes") will result in a fatal XDCscript type-error—not unlike what happens in C (which is a strongly-typed language), but quite different from standard JavaScript (which is rather "loosely-typed" and generally tolerant of just about any mixture of types and values).

Building the program

No different from Lesson 1, you can build «examples»/lesson2 by invoking gmake all within this directory; output will again reflect the configuration, compilation, and linking of the example at hand.

1

2
3

>> gmake all
«xdcroot»/xs xdc.tools.configuro -t ti.targets.C64P -p ti.platforms.sim64Pxx -o cfgsite prog1.cfg
making package.mak (because of package.bld) ...
generating interfaces for package cfgsite (because package/package.xdc.xml is older than package.xdc) ...
configuring prog.x64P from package/cfg/prog_x64P.cfg ...
cl64P package/cfg/prog_x64P.c ...
«c6xtools»/bin/cl6x -q -@cfgsite/compiler.opt -c prog.c
«c6xtools»/bin/lnk6x -q -z -c prog.obj cfgsite/linker.cmd -o prog.out -l «c6xtools»/lib/rts64plus.lib

Delving a little deeper into line 1, we rely here upon a special command named xs bundled with XDCtools (and already in your PATH if you're set-up correctly) to launch configuro with a particular set of arguments.

In general, the xs command invokes a host-based XDCscript application whose (fully-qualified) name actually designates a particular RTSC package that in turn contains the application's XDCscript sources; the application is the package, and vice versa. The xs command forwards any remaining arguments after the package name to the application's main function.

The -t option to configuro likewise uses a canonical name to identify a particular RTSC target embodied as an XDCscript recipe, though here the fully-qualified name designates a (special kind of) RTSC module corresponding to the target of choice; for this example, we have chosen the ti.targets.C64P module as our target. The -p option uses a similar technique for identifying a particular RTSC platform, only here the name designates a package rather than a module; our example relies upon ti.platforms.load6x (a fast load-and-go simulator) for its execution platform.

Perhaps you're sensing a pattern here—everything in RTSC resides in some package whose canonical name should be globally-unique, qualified in many cases with a (unique) vendor or organization name. By convention, package names should avoid introducing upper-case letters; modules, on the other hand, will typically have capitalized CamelCase names that standout when prefixed with lower-case package names.

Finally, the -o option to configuro names a directory that will ultimately contain the generated compiler.opt and linker.cmd files, referenced further down in the commands at lines 2 and 3 which respectively invoke the underlying compiler and linker.

The output messages between lines 1 and 2 originate with an underlying command used internally by configuro—a command that you'll use directly in later lessons; ignore these messages for now.

Running and modifying the program

Simply invoke gmake test from the command-line and you should see the following output:

>> gmake test
Hello World
System_printf timing [2159]

Feel free at this point to modify prog.c in any way you choose and observe the impact on timing—add a second call to System_printf, call System_printf repetitively from within a simple for loop, and so forth. Even more important, observe the messages that result when you rebuild the example by invoking gmake all from the command-line:

2
3

>> gmake all
«c6xtools»/bin/cl6x -q -@cfgsite/compiler.opt -c prog.c
«c6xtools»/bin/lnk6x -q -z -c prog.obj cfgsite/linker.cmd -o prog.out -l «c6xtools»/lib/rts64plus.lib

Note that only compilation of prog.c followed by linking of prog.out occurred; since we left prog.cfg unchanged, configuro didn't have to run at this time. Were you to now modify prog.cfg, however—say by assigning false to Bench.enableFlag—you would see messages related to configuration and linking, but not compilation:

1

3

>> gmake all
«xdcroot»/xs xdc.tools.configuro -t ti.targets.C64P -p ti.platforms.sim64Pxx -o cfgsite prog.cfg
configuring prog.x64P from package/cfg/prog_x64P.cfg ...
cl64P package/cfg/prog_x64P.c ...
«c6xtools»/bin/lnk6x -q -z -c prog.obj cfgsite/linker.cmd -o prog.out -l «c6xtools»/lib/rts64plus.lib

To forcibly rebuild the example entirely from scratch and see all of the build messages, first invoke gmake clean to remove all generated output files.

RTSC configuration generally dominates the time required to build a RTSC program (as you're starting to realize), but fortunately most build systems (not just gmake) will only perform this step when absolutely necessary. Furthermore, prog.cfg meta-programs will often stabilize much more rapidly than prog.c target-programs during application development, suggesting that you will spend far more build cycles compiling rather than configuring over an extended period of time. Finally, one invocation of configuro can actually serve an entire family of application programs—large test suites come to mind here—which further amortizes the cost of RTSC configuration.

See also

Consuming Configurable Content/makefiles | RTSC configuration with makefiles
Command - xs | XDCscript interpreter
Command - xdc.tools.configuro | Target content configuration tool

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Consuming Configurable Content/makefiles - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

Consuming Configurable Content/makefiles

RTSC configuration with makefiles

Contents

  • 1 Integrating with TI Code Gen Tools
  • 2 Integrating with Microsoft C/C++ Tools
  • 3 Integrating with GNU gcc Tools
  • 4 Integrating with make

Since the compile and link syntax you use to build a C/C++ application is toolchain-dependent, we show how to leverage the compiler.opt and linker.cmd files generated by configuro using the C/C++ compilers and linkers supplied with three very different toolchains: the toolchains from TI, GNU, and Microsoft. For details about the compiler options placed in compiler.opt for various targets supporting these toolchains, see Existing Targets.

The example make files in the following sections all use GNU make, which is delivered with the XDCtools product as XDCROOT/gmake. Each of these make files builds the "Hello World" application shown in Consuming Configurable Content and defines a build goal named "test". To build the application type "gmake all" and to build and run the application type "gmake test". When you run "gmake test", the last line displayed is the output of the application:

Hello World!

When the configuro tool runs, you see messages similar to the following:

making package.mak (because of package.bld) ...
generating interfaces for package hello (because ...
configuring hello.x64 from package/cfg/hello_x64.cfg ...
cl64 package/cfg/hello_x64.c ...

Although the make files shown below are short and serve to illustrate the use of configuro in virtually any command line build environment, there are a number of subtleties that you should be aware of when integrating the configuro tool into a production GNU make based development environment. The Integrating with make section provides additional details about integration within make-based environments.

Integrating with TI Code Gen Tools

The following example makefile illustrates how to integrate RTSC configuration with the TI Code Gen Tools compiler and linker. The makefile runs configuro and uses the compiler.opt and linker.cmd files generated by configuro as part of the compile and link steps.

>
>

CGTOOLS = C:/CCStudio_v3.3/C6000/cgtools
CC = $(CGTOOLS)/bin/cl6x
LNK = $(CGTOOLS)/bin/lnk6x
RTS = $(CGTOOLS)/lib/rts6400.lib
CONFIG = hello
XDCTARGET = ti.targets.C64
XDCPLATFORM = ti.platforms.sim6xxx:TMS320C6416

.PRECIOUS: %/compiler.opt %/linker.cmd

%/linker.cmd %/compiler.opt : %.cfg
        xs xdc.tools.configuro -c $(CGTOOLS) -t $(XDCTARGET) -p $(XDCPLATFORM) $<

%.obj : %.c $(CONFIG)/compiler.opt
        $(CC) -@$(CONFIG)/compiler.opt -c $<

hello.out : hello.obj $(CONFIG)/linker.cmd
        $(LNK) -o hello.out -c hello.obj $(CONFIG)/linker.cmd $(RTS)

test: hello.out
        @$(CGTOOLS)/bin/load6x $<

The lines marked with > above show how to run configuro and how to use its output with the compiler and linker to build an application. In this example, we could have omitted the platform specification because the default platform for the ti.targets.C64 target is already ti.platforms.sim6xxx:TMS320C6416. You can check this by looking at the C64.platform configuration parameter. While this would have simplified the makefile above, we explicitly set it here to illustrate how to build for a particular device.

Integrating with Microsoft C/C++ Tools

The following example makefile illustrates how to integrate RTSC configuration with the Microsoft Visual Studio compiler and linker. The makefile runs configuro and uses the compiler.opt and linker.cmd files generated by configuro as part of the compile and link steps.

>
>

CGTOOLS = "C:/Program Files/Microsoft Visual Studio 8"
CC = $(CGTOOLS)/vc/bin/cl
LNK = $(CGTOOLS)/vc/bin/link
RTS = -nodefaultlib -libpath:$(CGTOOLS)/vc/lib kernel32.lib msvcrt.lib
CONFIG = hello
XDCTARGET = microsoft.targets.Win32

.PRECIOUS: %/compiler.opt %/linker.cmd

%/linker.cmd %/compiler.opt : %.cfg
        xs xdc.tools.configuro -c $(CGTOOLS) -t $(XDCTARGET) $<

%.obj : %.c $(CONFIG)/compiler.opt
        $(CC) @$(CONFIG)/compiler.opt -c $<

hello.exe : hello.obj $(CONFIG)/linker.cmd
        $(LNK) -out:$@ hello.obj @$(CONFIG)/linker.cmd $(RTS)

test: hello.exe
        @$<

The lines marked with > above show how to run configuro and how to use its output with the compiler and linker to build an application. No platform specification is needed because the default platform for each target in microsoft.targets is the one required for native execution on an x86 PC (host.platforms.PC).

Integrating with GNU gcc Tools

The following example illustrates how to integrate RTSC configuration with the GNU gcc compiler and linker. The makefile runs configuro and uses the compiler.opt and linker.cmd files generated by configuro as part of the compile and link steps.

>
>

*

CGTOOLS = $(TOOLS)/gcc/3.2.1/Linux
CC = $(CGTOOLS)/bin/gcc
LNK = $(CGTOOLS)/bin/gcc
RTS = -lstdc++
CONFIG = hello
XDCTARGET = gnu.targets.Linux86

.PRECIOUS: %/compiler.opt %/linker.cmd
%.o : %.c # forget built-in rule to create .o files from .c sources

%/linker.cmd %/compiler.opt : %.cfg
        xs xdc.tools.configuro -c $(CGTOOLS) -t $(XDCTARGET) $<

%.o : %.c $(CONFIG)/compiler.opt
        $(CC) $(shell cat $(CONFIG)/compiler.opt) -c $<

hello.exe: hello.o $(CONFIG)/linker.cmd
        $(LNK) -o $@ hello.o $(CONFIG)/linker.cmd $(RTS)

test: hello.exe
        @$<

The lines marked with > above highlight how to run configuro and how to use its output with the compiler and linker to build an application. No platform specification is needed because the default platform for the gnu.targets.Linux86 target is the one required for native execution on an x86 PC (host.platforms.PC).

Prior to version 4.2.4, the gcc compiler does not support an option to include other command line options from a file. However, this example accomplishes this by using GNU make's $(shell ...) function and the Linux cat command to copy the options to the compiler's command line before calling gcc; see the line marked by *.

Integrating with make

When integrating the configuration process into a make-based development environment there are a number of issues to be aware of. These issues fall into roughly three categories:

  • make file syntax,
  • rule definitions and proper dependency definitions, and
  • GNU make specifics

Make file syntax. In GNU make files, you must always use a tab character to indent commands, not spaces. Much to the chagrin of every new makefile author, the tab character is how make determines the difference between commands to run and other makefile statements (variable definitions, goal dependencies, etc.) Also, you can split a command across two lines by terminating each line with the '\' character but you must be certain to not have any white space characters after the '\'.

Variable definitions that contain spaces (for example, product installation directories on Windows hosts) must be surrounded by quotes when passed to commands; otherwise, the command will see two arguments rather than a single argument with an embedded space. For more information about the syntax of makefiles and the operation of GNU make, see the online GNU make manual http://www.gnu.org/software/make/manual/make.html.

Rule definitions. When designing a make file, it's important to carefully specify when to run each command; otherwise, commands may be unnecessarily run or worse they may not run when they should be. In the case of configuro, you should re-run it whenever you do any of the following:

  • Change the CFG file
  • Change the target or platform
  • Update a package used by your application

The configuro command uses specially generated make files to avoid running any unnecessary steps when you make the changes above. So, if you are not sure whether to run configuro, go ahead and run it; if nothing needs to be done, configuro quickly detects this and does nothing.

GNU make specifics. Over the years GNU make has evolved a number of capabilities that enable it to robustly manage even the most complex build requirements with minimal syntax. The short, seemly simple, makefile shown below belies several subtitles that can make the difference between a toy example and a robust integration with your build environment. In the remainder of this section, we review the subtitles embedded in this makefile.

1
2

3

4

CGTOOLS = $(TOOLS)/gcc/3.2.1/Linux
CC = $(CGTOOLS)/bin/gcc
LNK = $(CGTOOLS)/bin/gcc
RTS = -lstdc++
CONFIG = hello
XDCTARGET = gnu.targets.Linux86

.PRECIOUS: %/compiler.opt %/linker.cmd
%.o : %.c # forget built-in rule to create .o files from .c sources

%/linker.cmd %/compiler.opt : %.cfg
        xs xdc.tools.configuro -c $(CGTOOLS) -t $(XDCTARGET) $<

%.o : %.c $(CONFIG)/compiler.opt
        $(CC) $(shell cat $(CONFIG)/compiler.opt) -c $<

hello.exe: hello.o $(CONFIG)/linker.cmd
        $(LNK) -o $@ hello.o $(CONFIG)/linker.cmd $(RTS)

test: hello.exe
        @$<

Line 1 tells GNU make that, even though GNU make considers them to be intermediate files, compiler.opt and linker.cmd files should not be automatically deleted after they are no longer needed. When you start from a clean project, GNU make knows that to build hello.exe it must first build hello.o and, since no explicit rule is defined for hello.o, it infers that if it builds compiler.opt then it can apply the implicit rule on line 4. This "inference" causes GNU make to consider compiler.opt to be an intermediate file which it normally deletes when it is no longer needed; i.e., after hello.o is created. Without line 1, compiler.opt will not exist after hello.o is created and GNU make will re-run configuro every time you change hello.c!

Line 2 tells GNU make to ignore its built-in rules for converting C source (.c) files to object (.o) files. If you don't add this line GNU make will use its built-in rule in lieu of the rule defined on line 4 whenever compiler.opt does not exist. By removing the recipe for converting .c files into .o files without any prerequisites, GNU make is forced to ensure that $(CONFIG)/compiler.opt exists before any compilation of .c files to .o files.

Line 3 is a pattern rule that tells GNU make that configururo generates two output files from the one input .cfg file. This is critically important if you want to want to use GNU make's parallel build feature (e.g., --jobs=4). If, for example, you did not specify a pattern rule for configuro and you use parallel build, GNU make will spawn two separate configuro jobs to create both linker.cmd and compiler.opt. Not only will this waste valuable CPU cycles but the two jobs will overwrite each other's files and undoubtedly fail to produce valid output.

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Command - xs - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Command - xs

XDCscript interpreter

Contents

  • 1 Synopsis
  • 2 Description
  • 3 Options
  • 4 Usage
  • 5 Controlling the xs Context/Environment
  • 6 Taking Options and Arguments from a File
  • 7 Examples
    • 7.1 "Hello World"
    • 7.2 Passing arguments
    • 7.3 Interactive session
    • 7.4 Setting and retrieving an environment variable
    • 7.5 Running a script contained in a capsule
    • 7.6 Running a script contained in a module
    • 7.7 Running a script contained in a package
  • 8 Environment Variables
  • 9 Exit Status
  • 10 See Also

Synopsis

xs [options] xdc-package [script-arg1 script-arg2 …]

xs [options] -c xdc-capsule [script-arg1 script-arg2 …]

xs [options] -f xs-script-file [script-arg1 script-arg2 …]

xs [options] -m xdc-module [script-arg1 script-arg2 …]

xs [options] -i

Description

The xs command is used to execute XDCscript programs. XDCscript is a general-purpose programming language based upon the ECMA-262 Edition 3 standard – popularly known as JavaScript 1.5. A central element of XDC, this language primarily serves as an implementation vehicle for hosted meta-content used to automate integration of companion target-content within executable programs tailored for a specific hardware platform and optimized for a specific application environment. XDCtools also leverages the language to manage the flow of packages – standardized containers holding re-usable target content plus its attendant meta-content – between producers and consumers. And of course, the language is readily suited for standalone scripting tasks. For a brief overview of XDCscript, see The XDCscript Language.

The xs command runs a JavaScript interpreter which is implemented using the Java programming language. The actual JavaScript interpreter is based on the Mozilla Rhino package. Consult the documentation for Rhino to learn more about the particular features of this implementation of JavaScript. In particular, look for material on LiveConnect, which enables scripts to transparently invoke Java APIs. This powerful feature provides a mechanism to tap into vast amount of functionality in the Java ecosystem. Some simple examples are shown in The java object section of The XDCscript Language overview.

Options

@<opts-file>
read the specified options file, <opts-file>, and include its contents as arguments to xs. Each line in the file corresponds to exactly on argument passed to to xs. No interpretation of the line is done unless the line is another @<file>; in this case, the line is (recursively) replaced with the lines from <file>.
-D<name>=<val>
define the (Java) environment variable <name> to have the value <val>
--help
display usage help and exit
--xdcpath <xdc-path>
specify a list of repositories (directories) to be used as part of the package path. The <xdc-path> argument should be a semi-colon separated list of directories. This setting overrides any value contained in the XDCPATH environment variable.
-i
start an interactive session. A prompt is issued to the console where JavaScript statements can be entered for immediate execution. The session can be terminated by typing quit
-c <capsule> arg1 arg2 …
execute the script in the function main() of the specified capsule, passing any remaining arguments to the script
-f <file> arg1 arg2 …
execute the script in the contained in the specified file, passing any remaining arguments to the script
-m <module> arg1 arg2 …
execute the script in the function main() of the specified module, passing any remaining arguments to the script
<package> arg1 arg2 …
execute the script in the function main() in the file Main.xs of the specified package, passing any remaining arguments to the script

Usage

The basic model for using the xs command is to specify a script to be executed along with any (optional) arguments to be passed to the script:

xs [options-to-xs] script arg1 arg2

The variations in invocation are due to how the "script" is located by xs. The four choices are:

  • Script file located anywhere on the filesystem (-f option)
  • Script code contained in an XDCscript Capsule (-c option)
  • Script code is part of a module (-m option)
  • Script code is part of a package (default: no option required)

See the Examples section below for sample invocations.

An interactive session can be started by using the –i option. In this mode of operation, the xs command displays a prompt - js> - and reads lines of script entered by the user. This can be useful for exploring the XDCscript environment. To exit an interactive session, enter quit. For an example, see the Interactive session example.

Arguments supplied to scripts can be retrieved using the standard JavaScript arguments object. This is an array-like object containing the arguments passed to the function, indexed beginning at 0. The length property of the object can be used to determine the number of arguments actually passed. This is true even for scripts that do not have a function defined, but rather just start execution with the first line in the file. For an example, see the Passing arguments example.

Controlling the xs Context/Environment

It can be useful to set, what is in effect, a "global" variable when running an XDCscript program. This can be done using the –D option to xs and then retrieving that value from the "environment" in the script being run. The environment is a hash table indexed by the name of the environment variable. Note that these values are not the same as the command shell’s environment variables.

As an example, the following will set an environment variable called "junk" to the value "car".

xs –Djunk=car –f envvar.xs

The environment could be accessed and printed as shown below:

print("Env var: " + environment["junk"]);

The --xdcpath option is used to set the user portion of the package path. See Managing the Package Path for more details on the package path.) To specify a directory to be used as a repository, add it to a list of semicolon-separated directories supplied with the --xdcpath option. See the following section for an example.

Taking Options and Arguments from a File

The @ option enables re-using common options and arguments captured in a file. One common scenario is the specification of the user part of package path. If several repositories (directories containing packages) are being used, the argument to the --xdcpath option can get quite long and tedious to re-enter each time xs is used. By creating a file named opts-file that contains two lines:

--xdcpath
dir-path1;dir-path2;dir-path3

and then starting xs as shown below,

xs @opts-file …

the xs command is effectively invoked as

xs --xdcpath dir-path1;dir-path2;dir-path3 …

In general, each line of the file supplied with the @, is added to the argument list of the xs command. The process is recursive so that if there is a line with an @ option, that file will be opened and added to the argument list, and so on.

Examples

"Hello World"

"Hello World". The following command will run the code in the file hello.xs.

xs –f hello.xs world

Assuming hello.xs contains the line:

print("hello" + arguments[0]);

the text "hello world" will be echoed to the standard output of the command shell.

Passing arguments

Passing arguments. The following command passes two arguments, "hello" and "world", to the script args.xs.

xs –f args.xs hello world

The argument array is used to access and print the arguments passed on the command line as shown below:

args.xs

for (var i = 0; i < arguments.length; i++) {
    print("argument[" + i + "] = " + argument[i]);
}
Interactive session

Interactive session. The following command will start the XDCscript interpreter and issue a prompt for an interactive session.

xs –i

The prompt used by xs is "js> " (the "$ " below is the command-line prompt from the shell being used):

$ xs -i
js> print("hello world")
hello world
js> quit
$
Setting and retrieving an environment variable

Setting and retrieving an environment variable. This example shows how to set and retrieve an environment variable. This approach works for any of the methods for finding and running a script.

$ xs -Djunk=car -i
js> print("Env var: " + environment["junk"]);</nowiki>
Env var: car
js> quit
$
Running a script contained in a capsule

Running a script contained in a capsule. An XDCscript capsule is simply a file in a package that contains XDCscript code that can be loaded and utilized via the xdc.loadCapsule() method. If the capsule contains a main() method, it can be run using xs by specifying the Capsule with the –c option.

xs –c sample/stuff/hello.xs world

The package is sample.stuff and will be located along the package path. Note that instead of using the Package name directly, the "." separator is replaced with "/". The script is contained in the file hello.xs. There are no requirements on the naming of the script file (different file extensions can be used) or the actual location of the file within the package (sub-directories can be used).

Running a script contained in a module

Running a script contained in a module. A meta-only module that contains a method named main can be run using xs by specifying the module with the –m option.

xs –m sample.stuff.Hello world

The Package is sample.stuff and will be located along the package path. The module Hello must contain a function named main, as specified in the corresponding XDCspec file, Hello.xdc, and implemented in Hello.xs.

Running a script contained in a package

Running a script contained in a package. A Package that contains a main() method in a module named Main can be invoked directly as shown below.

xs sample.stuff world

The package is sample.stuff and will be located along the package path. The script is contained in the file Main.xs. Note that this is equivalent to the following invocation using the module option:

xs –m sample.stuff.Main world

Environment Variables

XDCPATH See the description of this environment variable in the documentation for the xdc command.

Exit Status

The exit status of the xs command is one of the following values:

0
Successful completion.
Non-zero
An error occurred.

A script can indicate an error by throwing a JavaScript exception, which will cause xs to exit with a non-zero status.

See Also

XDCscript Overview: The XDCscript Language

XDCscript Reference: XDCscript Language Reference

Mozilla Rhino Project: http://www.mozilla.org/rhino

JavaScript Arguments: http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Functions:arguments

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Command - xdc.tools.configuro - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Command - xdc.tools.configuro

Target content configuration tool

Contents

  • 1 Synopsis
  • 2 Description
  • 3 Examples

Synopsis

xs xdc.tools.configuro [options ...] prog.cfg

For a complete description of this tool's options, see its reference documentation page xdc.tools.configuro.

Description

The xdc.tools.configuro tool processes configuration files and generates several files that must be integrated into the build of applications that use RTSC components. This tool is itself a RTSC component: the xdc.tools.configuro package. For details about using this tool, see Consuming Configurable Content.

Running the configuro command generates a subdirectory with the same name as your CFG file (for example, mycfg for the mycfg.cfg file). This subdirectory is in fact a RTSC package. The configuro command allows you to import RTSC content, in the form of reusable modules built using XDCtools, into your application.

This tool is the recommended method for integrating RTSC components into traditional command-line based build environments.

Configuro lets you identify and customize the RTSC components you want to use. It computes a set of libraries, command-line flags, and other artifacts to include in your application build. By changing values of configuration settings, you can trade off the functionality, memory footprint, and even performance of the RTSC components to best meet the needs of your application.

To generate files from a configuration, use this command line syntax:

xs xdc.tools.configuro [-v | --help] [-@ optionsfile]
                       [-b config_bld | -c codegen_dir | --cb]
                       [-t target] [-p platform[:instance]] [-r profile] [--linkTemplate template]
                       [-Dname=value] [-w | -x regexp] [--rtsName pkg_name] [--cfgArgs args_string]
                       [-o outdir] prog.cfg

The common configuro command line options available include:

-b
Specifies the name of the config.bld file.
-c
Specifies root directory of the code generation tools or compiler.
--cb
Use a config.bld found along the package path
--cfgArgs
Optional arguments passed to configuration script
-D
Set Java properties in the configuration environment
--linkTemplate
Linker command file template
-o
Specifies the name of the output directory.
-p
Specifies the platform to use.
-r
Specifies the build profile to use.
--rtsName
Specify RTSC runtime package name
-t
Specifies the target to use.
-v
Show details during build.
-w
Treat incompatibilities only as warnings.
-x
Exclude specified packages from compatibility checking.

For more information see the reference documentation for the xdc.tools.configuro package.

Examples

The following command configures a program compiled using the ti.targets.C64 target to run on the ti.platforms.sim6xxx platform with a compiler tool-chain installed in c:/CCStudio_v3.3/C6000/cgtools according to the configuration script mycfg.cfg.

xs xdc.tools.configuro -t ti.targets.C64 -p ti.platforms.sim6xxx \
                       -c c:/CCStudio_v3.3/C6000/cgtools mycfg.cfg
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


RTSC Module Primer/Lesson 3 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

RTSC Module Primer/Lesson 3

Instance objects — using the RandGen module

Another lesson, another module.... Here, we'll focus on bravo.math.RandGen which exemplifies a very common design pattern employed by many RTSC modules—support for instance objects. Suggestive of classes in object-oriented programming languages like C++ or Java, RTSC modules can play a similar role by providing special functions for instantiating objects that clients can then manipulate using other public functions of the same module.

Lesson 8 covers the internal implementation of RandGen, looking at the module from its supplier's perspective. In this lesson, however, all we know about RandGen comes from the module's public specification—which defines the client programmer's perspective seen here.

Contents

  • 1 Reading the program
  • 2 Running the program
  • 3 Creating instance objects
  • 4 See also

Reading the program

We've intentionally kept prog.cfg to a bare minimum for this example, so you focus exclusively on some new RTSC programming idioms illustrated within prog.c.

lesson3/prog.cfg

var RandGen = xdc.useModule('bravo.math.RandGen');
var System = xdc.useModule('xdc.runtime.System');
lesson3/prog.c

1
2

3

4

5

#include <bravo/math/RandGen.h>
#include <xdc/runtime/System.h>

#define COUNT 10

Int main()
{
    RandGen_Handle rgInst;
    RandGen_Params rgParams;
    Int i;

    RandGen_Params_init(&rgParams);

    rgParams.range = 15;
    rgParams.seed = 3;
    rgInst = RandGen_create(&rgParams, NULL);

    for (i = 0; i < COUNT; i++) {
        System_printf("%d ", RandGen_next(rgInst));
    }
    System_printf("\n");

    return 0;
}

The RandGen module manages instance objects that represent distinct random-numbers sequences generated on-demand, each object created with a potentially unique set of parameters. Working backwards through prog.c, the function RandGen_next called at line 5 returns the next integral value in the random-number generator instance object referenced through rgInst; the function System_printf then outputs the value returned as a decimal number.

The function RandGen_create called earlier at line 4 will internally allocate and initialize an instance object and then return a reference to this newly-created object—here assigned to the local variable rgInst. Note that the latter variable—declared of type RandGen_Handle at line 1—conceptually behaves like a C pointer, efficiently passed to other functions like RandGen_next.

If you're looking for a corresponding RandGen_delete function, we'll get to that in the next lesson.

To shape the characteristics of the underlying instance object, RandGen_create accepts a (pointer-to-a) parameter structure comprising fields that determine the range of values produced by this newly-created generator as well as an initial seed value used by an algorithm internal to RandGen. This parameter structure—declared of type RandGen_Params at line 2—is first initialized to a reasonable set of default values at line 3 and then selectively updated prior to calling RandGen_create.

Though subtle, you may have already noticed the use of Int (in lieu of C's lowercase int type) within our implementation of main beginning at line 1 of prog.c. Rest assured, Int is int; and like over two dozen other RTSC standard types with names like Void, ULong, and String, the special header file <xdc/std.h> contains typedef's that define each of these RTSC types in terms of standard C. Automatically brought in by all RTSC module headers, client programs can nevertheless explicitly #include <xdc/std.h> if appropriate.

More than just "aesthetic uniformity" with our convention of using capitalized CamelCase names for types (RandGen_Handle, RandGen_Params, Int, String), RTSC adds some standard scalar types whose definition will truly vary from one target to the next: for example, the standard type IArg—a signed integral type large enough to hold a data pointer or a function address; or the standard type Bits32—an unsigned integral type occupying exactly 32-bits of space; or the standard type Int16—a signed integral type containing at least 16-bits of arithmetic precision. Though no panacea, using the RTSC standard types dramatically simplifies the task of writing portable C code targeted for processors ranging from 32-bit GPPs or DSPs down to 16-bit MCUs.

Running the program

Before we talk about instance creation in general, go ahead and run the example by invoking gmake test; output should appear as:

>> gmake test
6 7 10 1 12 8 10 14 1 15

To explore a little more, try playing with the assignments between lines 3 and 4 in prog.c to vary the program's output. You can also try commenting-out both of these lines as well as passing NULL as the first argument to RandGen_create, either of which will yield the same results:

>> gmake test
908 11517 20227 2263 29335 11254 13253 14839 32425 8173

Creating instance objects

Other than RandGen_next appearing on line 5 above, the remaining RandGen types and functions introduced in prog.c actually track a more generic pattern seen in all RTSC modules that support instance objects—termed RTSC instance modules. As you'll see when we examine RandGen from the supplier's perspective in Lesson 7, a simple declaration of instance object support in the module's spec automatically yields a rich set of client-visible features—the types RandGen_Handle and RandGen_Params, the special functions RandGen_Params_init and RandGen_create, plus numerous other features that address different facets of instance objects from the client's perspective.

Using RandGen as an exemplar, clients of any RTSC instance module will follow a stock recipe when creating new instance objects:

  • declare a (scalar) variable of the module's Mod_Handle type;
  • declare a (structure) variable of the module's Mod_Params type;
  • call the module's Mod_Params_init function to set default values;
  • alter fields in the Mod_Params structure where appropriate; and then
  • call the module's Mod_create function to obtain the new instance's Mod_Handle.

Instance parameters. While all instance modules will implicitly define a Mod_Params type, the fields of this structure will naturally vary from one instance module to the next; range and seed were explicitly declared by the supplier of RandGen, for example. Conceptually, you can view these fields as playing a role analogous to the module configuration parameters seen in Lesson 2—in fact, module suppliers spec these parameters no differently than configs, declaring a type and default value for each. To avoid confusion, we'll start using the terms module(-wide) config versus (per-)instance config to distinguish configuration parameters that control the module as a whole—and are only assignable in the meta-domain—versus those parameters that shape an individual instance object during its run-time creation in the target-domain.

The Mod_Params_init function associated with a RTSC instance module initializes each field in the Mod_Params structure with the default value for a corresponding per-instance config spec'd by the module's supplier. Clients who plan to alter the values of certain instance configs by selectively updating the Mod_Params structure must call the Mod_Params_init function first.

With Mod_Params structures often allocated as local variables—whose initial values are undefined in C—failure to call Mod_Params_init can lead to erroneous program behavior. Even statically-defined Mod_Params structures—guaranteed by C to have 0 as the value of all scalar fields—require a call to Mod_Params_init prior to usage.

Creation inputs. The Mod_create function associated with a RTSC instance module accepts as input a reference to a Mod_Params structure—initialized and updated by the client prior to calling create. As a rule, the Mod_create function neither modifies the Mod_Params structure nor retains any pointers to its fields; clients can re-use the same (locally-allocated) structure across multiple Mod_create calls if they so choose. In cases where you want to create an instance object using default values for all instance configs, calling Mod_create with NULL instead of a valid Mod_Params structure reference does the job—and with less clutter in your code.

The last argument to the Mod_create function pertains to underlying error-handling support through the xdc.runtime.Error module. Since Mod_create at some level will dynamically allocate storage for a new instance object using the special xdc.runtime.Memory module—an internal operation that can potentially fail—some sort of prevailing error-handling strategy must be established by the client calling Mod_create. Passing NULL for this argument effectively enables a default strategy—typically, print an appropriate message and then abort execution whenever the program raises an error.

Though we will touch upon both Error and Memory in later lessons, our usage will remain rather elementary. Once you master the material in this Primer, however, we'll direct you to a series of User's Guides that delve into the several dozen concrete modules and abstract interfaces contained within the xdc.runtime package.

While many Mod_create functions will accept only two inputs, suppliers of instance modules can specify additional arguments to Mod_create; we will see an example of this in Lesson 9. Stated another way, the last two arguments to Mod_create will always correspond to the per-instance configs and the prevailing error-handling strategy used when creating this particular instance object—and again, with NULL passed as either argument signifying an appropriate default. Finally, Mod_create returns a (unique) value of type Mod_Handle that references the newly-created instance object or else NULL in the event of failure.

See also

RTSC Coding Conventions Coding conventions used in the XDCtools product

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


RTSC Coding Conventions - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

RTSC Coding Conventions

Coding conventions used in the XDCtools product

Contents

  • 1 Introduction
  • 2 Naming Conventions
  • 3 Data Types
  • 4 Physical Design
    • 4.1 Rationale
  • 5 Module and Interface Conventions
    • 5.1 Header Conventions
      • 5.1.1 Doxygen Conventions
    • 5.2 XDoc Comments
  • 6 Lexical Conventions
    • 6.1 Expressions
    • 6.2 Statements
    • 6.3 Declarations
    • 6.4 Function Definitions
    • 6.5 Macro Definitions
    • 6.6 Comments
  • 7 Spaces and Tabs
  • 8 Line Termination Format
  • 9 Language Specifics
    • 9.1 Java
  • 10 The Use of goto Statements

Introduction

This coding conventions document contains the standard conventions that are followed by the XDCtools development team and that we recommend that others follow. It covers naming conventions, physical design, declarations, and programming practices. Code conventions are important to programmers for a number of reasons:

  • 80% of the lifetime cost of a piece of software goes to maintenance.
  • Hardly any software is maintained for its whole life by the original author.
  • Code conventions improve the readability of the software, allowing engineers to understand new code more quickly and thoroughly.

Naming Conventions

All of the modules, interfaces, and packages in XDCtools follow a set of naming conventions that improve the readability of the sources and enable common questions about the source to be answered without the aid of a tool (e.g., etags). The benefits of these conventions are as follows:

  1. Package names can be distinguished from module names. For example, ti.bios.utils is a package, but ti.bios.Utils is a module in the ti.bios package.
  2. Modifiable entities can be distinguished from constants. For example, System.DONE is a constant, but System.maxPasses is a module configuration parameter.
  3. Interfaces can be distinguished from concrete modules. For example, xdc.IPlatform is an interface, but xdc.Platform is a module.
  4. Types can be distinguished from variables and functions. For example, String and Startup_InitFxn are types, but arg and Startup_firstFxns are parameters or variables.

Identifier Naming Conventions
Convention | Examples
Package names are all lowercase. | xdc.runtime
Packages that are expected to be referenced by content produced by other groups should have globally unique names. | ti.targets.arm
Module names begin with an uppercase letter. | xdc.runtime.Memory
Interface names begin with an uppercase "I". | IHeap and IGateProvider
Type names begin with an uppercase letter. The uppercase applies to the first letter after any package or module prefix; for example, "Handle" in Task_Handle and ti_sysbios_knl_Task_Handle. | IArg, String, and xdc_String
Multiple-word identifiers are separated by uppercase letters, not an underscore. | Mod_twoWords
Constants are in all uppercase after the module or package prefix. If multiple words are required, an underscore delimits the words. | Diags_INTERNAL and Types_STATIC_POLICY
Structure field names and configuration parameters begin with a lowercase letter. | attrs.count and System_maxAtexitHandlers
Functions, variables, and parameter names begin with a lowercase letter after any module prefix. Camel case is used where needed to delimit multiword names. | Diags_setMask() is a function and Log_system is a global variable

In order to ensure that packages can be created/developed/delivered independently (with no centralized control) it is important that no two packages have the same name; otherwise a client will be forced to use just one of the packages. This requirement may be relaxed in cases where there is no expectation that a package will be used with other packages (such as self-contained examples).

With the exception that we do not require package names to include the top-level domain names (e.g., com, edu, gov, org, ...) of the company's URL, the naming conventions are consistent with the Java naming conventions specified by SUN (http://java.sun.com/docs/codeconv/). However, using a company's URL followed by division, department, and project is a convenient way to ensure globally unique package names.

Data Types

XDCtools defines the following base datatypes for use in C code in xdc/std.h. You should use these types in application code that uses RTSC modules or is intended to be portable to multiple targets. Most datatypes have names that are similar to the corresponding C type, but with titleCase used for differentiation and abbreviation of unsigned and long. The underlying sizes may be different on various targets. For more information about these types as well as predefined macros that facilitate the creation of portable C modules see the reference documentations for the xdc package.

Portable Data Types
RTSC Type | C99 Type | Comments
Bits16 | uint16_t | not supported on some targets; e.g., TI's C30 and C40 targets
Bits32 | uint32_t | may not be supported on some targets
Bits8 | uint8_t | not supported on some targets; e.g., TI's C28, C30, C40, C54, and most C55 targets
Bool | unsigned short | 1 for true and 0 for false or use TRUE and FALSE
Char | char |
Double | double |
Float | float |
Fxn | int (*)() | generic function pointer
IArg | intptr_t | signed argument large enough to hold an int or any pointer type
Int | int |
Int16 | int_least16_t or int_fast16_t | the target may opt to use either the int_fast or the int_least types for these definitions.
Int32 | int_least32_t or int_fast32_t |
Int8 | int_least8_t or int_fast8_t |
LDouble | long double |
LLong | long long | may be supported only as long on some targets
Long | long |
Ptr | void* | data pointer
Short | short |
SizeT | size_t |
String | char* | null-terminated string
UArg | uintptr_t | unsigned argument large enough to hold an int or any pointer type
UChar | unsigned char |
UInt | unsigned int |
UInt16 | uint_least16_t or unint_fast_16_t | the target may opt to use either the uint_fast or the uint_least types.
UInt32 | uint_least32_t or unint_fast32_t |
UInt8 | uint_least8_t or unint_fast_8_t |
ULLong | unsigned long long | may be supported only as unsigned long on some targets
ULong | unsigned long |
UShort | unsigned short |
VaList | va_list |

Physical Design

  1. all package names must match the installation directory of the package; e.g., the package xdc.runtime must be in a directory that ends with xdc/runtime/.
  2. all module interface headers must be contained in the package's base.
  3. File names within a package must never have names that differ only in letter-case.
  4. Each "component" of a package name (i.e., sequence of characters between '.'s) must only contain characters allowable in C identifiers and must not be a C/C++ keyword ("if", "then", "switch", ...) or "package".
  5. All references to package and modules must match the case of the package and module names.

Rationale

The RTSC package physical design rule is the same as that imposed by Java for Java packages. While we may not be interested in supporting Java directly, it is clearly a scalable design that is well supported by tools; thousands of Java packages are developed, deployed, and reused by a similar number of separate development groups.

In addition, this simple physical design rule - that a package's name must match the installation directory - allows us to integrate virtually all existing command line tools (e.g., C/C++ compilers, linkers, GNU make, ...) without requiring any change on their part. Any command line tool that accepts a '-I' type of option for locating include files can be seamlessly integrated into a RTSC development environment by simply adding a -I option for each element of the RTSC package path to each command line tool. In this way, we ensure that all files for all tools are always found along the package path.

Constraining all top-level interface headers to be in the package's base enables the client to follow a single simple procedure for using a new module from a new package:

  1. add a #include in any referencing source of the form: #include <pkg_name/mod_name.h>
  2. call the module's functions

In addition, during reviews of source, it is easy for the client to quickly identify all external package dependencies and answer the question, "Where is the xyz function/constant/type defined?".

Keeping package names in lower-case together with the convention that all modules are title-case makes it easy for the developer to clearly see the difference between a package reference such as "xdc.services.utils" containing a module named "xdc.services.utils.Load" and a module reference such as "xdc.services.Utils".

Since package names are used in C/C++ source to reference include files and appear in module methods names, it is important that only valid C identifiers be used in each component of a package name. For the same reason, "components" of package names can not be C keywords; e.g., if, while, switch, ...

Although Windows file-systems do not distinguish file name references that differ on in case, Unix file-systems do and most languages do. To ensure host development system portability, it is important that all references strictly match the case of the referenced file. In addition, to ensure that packages are host OS independent, it is important that no two files have the same name except for letter-case. For example, it is not possible to have both "Makefile" and "makefile" in the same directory on a Windows host. So even though this can be supported on Linux hosts, the requirements above prohibit packages from having two such files.

Module and Interface Conventions

This section contains conventions followed when creating a module or an interface.

Header Conventions

This section covers conventions required by all "hand crafted" C/C++ header files.

Doxygen Conventions

NOTE: to be written

XDoc Comments

  • XDoc comments are introduced using /*! and should follow the banner comment conventions in this document

   /*!
     *  ====== getFoo ========
     *  Return the current foo
     */
    Foo getFoo();
  • All methods must provide summary XDoc documentation for all parameters, return values, and exceptions.
  • All summaries should be short and must never be more than one line.

    /*!
     *  ======== alloc ========
     *  A method summary
     *
     *  A long description goes here.
     *
     *  @param(heap)    summary comments without period at the end of the line
     *  @param(size)    summary comments
     *  @param(align)   summary comments
     *
     *                  Longer descriptions of parameters are placed here.  Notice
     *                  the blank line separating the summary and this longer
     *                  description.
     *
     *  @param(eb)      pointer to error block
     *
     *  @a(returns)
     *  The name of the return section is "returns" and the description consists of
     *  complete sentences.
     *
     *  No returns section is required for methods that do not return a value.
     *
     *  @a(throws)
     *  The name of the exceptions section is "throws" and all possible exceptions
     *  should be enumerated here with a brief description how what can cause the exception.
     *  @p(dlist)
     *  - CorruptHeap
     *    Underlying heap data structures have been corrupted.
     *  @p
     */
    Ptr alloc(IHeap.Handle heap, SizeT size, SizeT align, Error.Block *eb);
  • All methods, structures, types, must include a summary XDoc comment. Summary comments need not be complete sentences. However, all description sections should consist of complete sentences.
  • Summary XDoc comments must be less than one line (< 80 characters, including any banner comment prefix characters). Longer comments should be part of the optional description XDoc comments.
Wrong:

    /*!
     *  ======== foo ========
     *  This assert is thrown when a frabazfoo is not the same as the expected flabazfoo.  If
     *  this assert occurs call for help.
     */
    config Assert.Id foo = ...;

Right:

    /*!
     *  ======== foo ========
     *  Assert that the frabazfoo is the same as the flabazfoo
     *
     *  This assert is thrown when a frabazfoo is not the same as the expected flabazfoo.  If
     *  this assert occurs call for help.
    */
    config Assert.Id foo = ...;
  • All fields within a structure should have an in-line summary comment.

    /*!
     *  ======== MyStruct ========
     *  A useful structure
     */
    struct MyStruct{
        Int aField;  /*! a short summary comment */
    };
  • Fields within a structure that require longer descriptions should include @field tags in the structure's description.

    /*!
     *  ======== MyStruct ========
     *  A useful structure
     *
     *  @field(aField) This field is so rich that it requires a detailed description
     */
    struct MyStruct{
        Int aField;  /*! a short summary comment */
    };
  • When in doubt, follow corresponding JavaDoc guidelines described by SUN: doc comments.

Lexical Conventions

The lexical conventions in this section apply to C and C++ sources and (unless otherwise noted) all C-like source languages including Java and JavaScript.

Expressions

  • No space exists between unary operators or between the primary operators ->, ., [], and () and their operands. Note that sizeof is a unary operator.
Unary operator examples:

    i++
    !e
    (Char *)p
    -17
    sizeof(Int)

Primary operator examples:

    a[i]
    s.member
    p->member
    f(x, y)
  • There is exactly one space between other operators and their operands. For example, binary operators are used in the following examples:

    x = f(y) * (z + 2);
    p != NULL && (p->member == -1)
  • Parentheses are used for clarity, especially in expressions involving several precedence levels. For example:

    x < y & mask   /* WRONG! */
    (x < y) & mask /* RIGHT */
  • Unless explicitly defined by the C language, evaluation order is not relied upon.
  • Expressions with side effects are not used in function calls. This is because the function may be changed to a macro at some point.

    t = min(x++, y); /* WRONG! */
    t = min(x, y);   /* RIGHT */
    x++;
  • When breaking long expressions into more than one line (e.g., to satisfy the 80-character line length limit), the beginning of each new line should begin with an operator.

    /* WRONG! */
    if (xdc_runtime_TimestampStd_getFreq(&myVeryDescriptiveNameForFrequency) <
        32) {
           :
    }

    /* RIGHT! */
    if (xdc_runtime_TimestampStd_getFreq(&myVeryDescriptiveNameForFrequency)
        < 32) {
           :
    }

Statements

  • All subordinate statements are enclosed in braces and indented four (4) spaces.
  • There is exactly one statement per line.
  • Continuation lines are indented eight (8) spaces

The following examples show how certain types of statements should be formatted:

  • Do statement

    do {
        stmt(s);
    } while (expr);
  • For statement:

    for (expr; expr; expr) { /* note space after ';' */
        stmt(s);
    }
  • If statement:

    if (expr) {
        stmt(s);
    }
  • If-else statement:

    if (expr) {
        stmt(s);
    }
    else {
        stmt(s);
    }
  • If-else if statement:

    if (expr) {
        stmt(s);
    }
    else if (expr) {
        stmt(s);
    }
    else {
        stmt(s);
    }
  • Return statements

    return (value); /* note space and parens */
  • Switch statement:

    switch (expr) {
        case CONST: /* note indentation */
            break;

        case CONST: /* note space between case arms */
            break;

        default: {  /* always present, even if null */
            break;
        }
    }
  • While statement:

    while (expr) {
        stmt(s);
    }
  • try-catch blocks

    try {
        :
    }
    catch (...) { /* as with if statements, always use {}'s */
        :
    }

Declarations

  • Each variable or member is declared on a separate line.
  • All internal source-file variables and functions are declared as static.
  • Module-wide declarations appear in the following order:
    1. constants
    2. types
    3. variables
    4. functions

Function Definitions

  • Prototypes must always be specified.

    Int XXX_open(Char *name, Bool rmFlag) /* RIGHT */
    Int XXX_open(name, rmFlag)             /* WRONG! */
        Char * name;
        Bool rmFlag;
  • Functions should be defined in alphabetical order.
  • For functions with more than one parameter, there is a space between a comma and the type specifier for the next parameter. There is also a space between a comma and an argument in function calls.
  • There is one blank line between the last declaration in the function body and the first statement in the function.
  • Function body braces are aligned with left margin and the body is indented four (4) spaces. For example:

    Void foo(Int bar)
    {
        Int i;

        for(i = 0; i < 10; i++) { /* note the blank line before this */
            :
        }
    }

Macro Definitions

A macro definition must have one of the following forms:

  • A single token:

    #define QUE_enqueue QUE_put
  • A function or macro call:

    #define C62_enableGIE(mask) HWI_restore(mask)
  • Enclosed in parentheses:

    #define C62_mask(devid) ((Uns)(1 << (devid)-1))
  • Enclosed in curly braces:

    #define QUE_remove(elem) {\
        ((QUE_Elem *)(elem))->prev->next = ((QUE_Elem *)(elem))->next; \
        ((QUE_Elem *)(elem))->next->prev = ((QUE_Elem *)(elem))->prev; \
    }

In all cases, each use of a macro parameter must be enclosed in parentheses. For example, see the uses of "elem" and "devid" above.

Comments

  • Border comments begin at column 0 and introduce procedures and major sections. Text for a border comment is indented two spaces and starts on the second line. Border comments appear only between function definitions and never within a function body.

    /*
     *  This is a border comment.
     *  Note the two spaces in from the '*' character.
     */
  • A source file begins with a border comment. This comment should include a revision section with the format shown below. Note that the continuation of a long revision comment is indented by four (4) spaces.

     *! Revision History
     *! ================
     *! 23-Jan-2001 mf: The entire Revision History section must begin with tokens
     *!     that end in an exclamation point, so it can be stripped if necessary.
     *! 24-Dec-2000 mf: Revisions appear in reverse chronological order; that is,
     *!     newest first. The date format is dd-Mon-yyyy.
  • All functions have the following style of banner:

    /*
     * ======== foo ========
     * A one-line summary of the function is placed here.
     *
     * A more complete description optionally follows.  Note the
     * "empty" line separating the summary from this description.
     */
    static Void foo(Int param)
    {
        stmt(s);
    }

Note that the name of the function is placed between two strings of eight (8) consecutive "=" characters and a single space. This banner style makes it easy to find all functions declared in a module.

  • Multi-line comments are formatted as follows. Note that two (2) spaces follow the asterisk.

    /*
     * this is a multi-line indented
     * comment
     */
  • Indented comments introduce blocks of code.

    while (expr) {
        /* this is a simple indented comment */
        if (expr) {
            stmt(s);
        }
        else {
            stmt(s);
        }
        stmt(s); /* this is an in-line comment */
     }
  • In-line comments describe individual statements or declarations. All global variables (static or otherwise), configuration variables, #define constants, and structure members should have in-line or possibly multi-line comments giving their meaning.

    static Int curInit = FALSE; /* XXX_Init was called */
    #define OUTPORT 0xfc000002 /* output port address */
    struct TSK_Attrs {
        Int priority; /* task priority */
    };
  • C++ style comments must not be used in C sources. They may be used in C++, Java, or JavaScript sources.

    while (expr) {
        // this is a simple indented C++ comment
        if (expr) {
             stmt(s); // this is an in-line C++ comment
        }
    }
  • Following Sun's Java conventions, the // comment delimiter can comment out a complete line or only a partial line. It shouldn't be used on consecutive multiple lines for text comments; however, it can be used in consecutive multiple lines for commenting out sections of code. Examples of all three styles follow:

    if (foo > 1) {
        // Do a double-flip.
        ...
    }
    else {
        return false;          // Explain why here.
    }
    //if (bar > 1) {
    //
    //    // Do a triple-flip.
    //    ...
    //}
    //else {
    //    return false;
    //}

Spaces and Tabs

As described above, the standard indentation level is four (4) spaces. The tab character (\t) should be treated as eight (8) space indent. Source code may contain a mix of spaces and tabs, where a tab is equivalent to indent to the nearest eight spaces. Released source code should contain only spaces (no tabs).

Lines should not exceed eighty (80) characters in length. While current editors and UIs allow for much longer lines, most printed material is still eighty characters or less. For publication in manuals, the maximum line length is 74 characters.

Line Termination Format

Unix hosts, Windows hosts and MacOS hosts have differing line termination characters for text files. For consistency and improved portability of the text files that are intended to be used on all development platforms, all "portable" text files should be Unix file formatted.

In other words, unless a file is specifically for use only on a non-Unix host, the file should be Unix file format; each line should be terminated with a single '\n' character (ASCII 0x0a).

Language Specifics

This section describes language-specific conventions that are not covered by other sections of this document.

Java

Imported classes should always be listed explicitly.

    import java.util.List;       // NOT: import java.util.*;
    import java.util.ArrayList;
    import java.util.HashSet;

While the use of "*" can be useful when importing classes from a single package, as soon as you import classes from more than one package, it is difficult to know which package defines which class. Importing classes explicitly makes the class easier to comprehend and maintain.

Appropriate tools should be used in order to always keep the import list minimal and up to date.

The Use of goto Statements

Do not use the goto statement when it is possible to use a structured flow control statement to accomplish the same goal. For example, this function below uses a goto statement unnecessarily.

    foo()
    {
        ...
        if ((status = open("foo", 0)) < 0) {
            'clean up';
            goto exit;
        }
        doit(status);
    exit:
        return (status);
    }

This function can be rewritten as

    foo()
    {
        ...
        if ((status = open("foo", 0)) < 0) {
            'clean up';
        }
        else {
            doit(status);
        }
        return (status);
    }

This second form has the advantage that it makes it clear that doit() is only performed when the open() function returns a non-negative result. The undisciplined use of goto statements can result in code that is impossible to read or maintain. There are, however, situations when the goto statement is appropriate and its use actually improves the readability and efficiency of a function. These cases are rare, but the following code fragment shows an example where the use of a goto simplifies the structure.

    {
        /* acquire a lock that must be released before returning */
        seize(lock);
        while (expr) {
            if (open("foo", 0) < 0) {
                goto exit;
            }
            bar();
        }
        stmt(s);
    exit:
        release(lock); /* release acquired lock */
        return (status);
    }
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


RTSC Module Primer/Lesson 4 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

RTSC Module Primer/Lesson 4

Instance object life-cycle — using the RandGen module

Building upon the instance creation pattern you encountered in Lesson 3, we'll now expand the paradigm to include alternate ways of creating instance objects—in particular, static instances formed by basically moving Mod_create function calls from the target-program back upstream to its corresponding meta-program. We'll also illustrate the general programming pattern for deleting instances, thereby completing the life-cycle of RTSC instance objects.

Contents

  • 1 Running the program
  • 2 Reading the program
  • 3 Guidelines for usage
  • 4 See also

Running the program

Deviating a bit from the format of previous lessons, let's start by building and running the program before examining its source code. This example will make much more sense if you can first see its final output—a sequence of random-numbers extracted from three distinct RandGen instance objects, each formed in a slightly different fashion:

>> gmake test
dynamically-created instance:
    6 7 10 1 12 8 10 14 1 15

dynamically-constructed instance:
    13 2 1 22 12 5 10 19 17 12

statically-created instance:
    12 5 3 11 11 19 5 1 15 0

Reading the program

This example significantly expands prog.c from its counterpart back in Lesson 3, now illustrating several alternative idioms for creating (as well as deleting) RandGen instance objects. Moreover, creation of one particular RandGen instance has actually migrated into prog.cfg where an XDCscript rendition of a target-domain RandGen_create call now appears.

lesson4/prog.c

1

2

3a
3b

4a

4b

5a
5b
5c

6a
6b

#include <bravo/math/RandGen.h>
#include <xdc/runtime/System.h>

#include <xdc/cfg/global.h>

#define COUNT 10

Void printNums(RandGen_Handle rgInst, String label)
{
    Int i;

    System_printf("%s:\n\t", label);
    for (i = 0; i < COUNT; i++) {
        System_printf("%d ", RandGen_next(rgInst));
    }
    System_printf("\n\n");
}

Int main()
{
    RandGen_Handle rgInstHandle;
    RandGen_Struct rgInstStruct;
    RandGen_Params rgParams;

    RandGen_Params_init(&rgParams);

    rgParams.range = 15;
    rgParams.seed = 3;
    rgInstHandle = RandGen_create(&rgParams, NULL);

    rgParams.range = 25;
    rgParams.seed = 2;
    RandGen_construct(&rgInstStruct, &rgParams);

    printNums(rgInstHandle, "dynamically-created instance");
    printNums(RandGen_handle(&rgInstStruct), "dynamically-constructed instance");
    printNums(rgInstStatic, "statically-created instance");

    RandGen_delete(&rgInstHandle);
    RandGen_destruct(&rgInstStruct);

    return 0;
}
lesson4/prog.cfg
7

8

var Program = xdc.useModule('xdc.cfg.Program');

var RandGen = xdc.useModule('bravo.math.RandGen');
var System = xdc.useModule('xdc.runtime.System');

Program.global["rgInstStatic"] = RandGen.create({range: 20, seed: 4});

Working "middle-out" starting from lines 5a-5c in prog.c, these three successive calls to the printNums helper function (defined at line 2) each input a different RandGen_Handle value that in turn references a distinct instance object; the String label passed as the second argument to printNums suggests something about how we've created these particular instances. In the case of rgInstHandle (used at line 5a), its creation pattern (lines 3a and 4a) tracks identically with what you've already seen in Lesson 3.

Constructed instance. By contrast, the creation pattern for rgInstStruct—declared, initialized, and used at lines 3b, 4b, and 5b respectively—deviates from the model of Lesson 3 in several important ways:

  • Unlike rgInstHandle, which holds a reference (pointer) to some underlying object dynamically allocated by RandGen_create, line 3b effectively allocates the necessary memory for the instance object at the point of declaration. Variables of type RandGen_Struct are actually C structures of sufficient size to hold an individual RandGen instance object; variables of type RandGen_Handle, by contrast, hold only pointers. Either way, the client has no knowledge of the internal representation of these instance objects—that is to say, both RandGen_Handle and RandGen_Struct remain opaque types.

  • With the necessary memory already allocated in rgInstStruct, we simply pass a pointer to this (uninitialized) structure as the first argument to RandGen_construct at line 4b; this function's second argument is a pointer to a previously initialized RandGen_Params structure (or NULL, to select defaults). Since no internal memory allocation occurs within RandGen_construct—unlike RandGen_create—the caller need not establish an error-handling policy when dynamically-constructing (as opposed to dynamically-creating) new instance objects.

Put another way, RandGen_create allocates and initializes storage for a new instance object; RandGen_construct just initializes storage already allocated in a variable of type RandGen_Struct. Once initialized, you can obtain a corresponding RandGen_Handle that references a particular RandGen_Struct by calling the special conversion function RandGen_handle, as illustrated on line 5b.

Instance termination. Lines 6a and 6b introduce two more special functions respectively used to terminate the life-cycle of a dynamically-created and a dynamically-constructed instance object:

  • The function RandGen_delete, as you might expect, internally frees storage allocated for this instance object through a prior call to RandGen_create; somewhat unexpected, RandGen_delete takes the address of a RandGen_Handle as its sole argument and will actually overwrite the variable rgInstHandle with the value NULL upon return—a lightweight safety measure to minimize dangling references to inactive instance objects.

  • The function RandGen_destruct—the dual of RandGen_construct—receives the address of a RandGen_Struct as its sole argument and then "finalizes" the instance object; upon return, the variable rgInstStruct effectively returns to that same undefined (and unusable) status it had back at line 3.

Not unlike other resource management patterns involving pairs of functions already familiar to C programmers—such as malloc and free or fopen and fclose—clients of a RTSC instance module must ultimately assume responsibility for properly disposing previously created instance objects if/when necessary, as well as for ensuring that instance handles used in their code do not reference terminated objects.

Static instances. The third RandGen instance used in this example—referenced through the RandGen_Handle variable rgInstStatic at line 5c of prog.c—requires no prior call to RandGen_create during program execution. Not unlike a statically initialized global variable in C, rgInstStatic references a statically allocated and initialized instance object that is "ready-to-go" when program execution begins. An extern declaration for rgInstStatic appears in a special header file automatically associated with this program and always named xdc/cfg/global.h (see line 1); as the name of this header file suggests, global variables accessible within prog.c are first introduced and initialized within prog.cfg.

Line 8 of prog.cfg illustrates two different RTSC programming idioms that you can use independently or else in combination with one another, as is the case here:

  • The fragment Program.global["rgInstStatic"] names a new global variable whose type in the target-program (here, RandGen_Handle) is inferred from its initial value in the meta-program (here, the result of calling RandGen.create); alternatively, you can assign these globals an XDCscript string, number, or boolean in lieu of an instance object handle. Note that the Program object introduced at line 7 refers to a special module canonically named xdc.cfg.Program whose configs and functions help shape any number of "global" characteristics of the corresponding target-program—placement of memory, debugger integration, program stack size, as well as global variable definitions.

  • The fragment RandGen.create({range: 20, seed: 4}) calls the XDCscript equivalent of RandGen_create, which likewise returns the XDCscript equivalent of a RandGen_Handle. Leveraging the more compact syntax of standard JavaScript versus standard C, we can express the XDCscript equivalent of a RandGen_Params structure as an object literal comprising a comma-separated list of field:value pairs enclosed in curly braces. Any fields not explictly assigned will take on the default value of the corresponding per-instance config; RandGen.create uses all instance config defaults when passed an empty structure {} or else the value null. Unlike its target-domain counterpart, RandGen.create does not require any additional arguments to support error-handling.

Given their status as permanent objects, needless to say you cannot delete statically-created instances at any point during their life-cycle—neither in the prog.c target-program nor even in the prog.cfg meta-program.

Guidelines for usage

The example at hand illustrates three distinctive idioms for creating RTSC instance objects, each taking a somewhat different path to obtain the same result—a Mod_Handle that you can pass to other public functions of a RTSC instance module. Here, then, are some guidelines to help you choose which instance creation idiom to employ in a particular application setting.

Target-domain Mod_create (dynamically-created instances). You should consider this path as the norm, with the others representing variations that typically yield performance gains at the expense of some additional programming complexity. During the early phases of application development—when program correctness and robustness should always trump program speed and size—you should utilize target-domain Mod_create calls by default until proven otherwise.

In practice, most target-domain Mod_create calls occur soon after execution enters the program's main function, usually well before any time-critical processing begins. Since dynamically-created instances require runtime allocation as well as initialization of object storage—a potentially lengthy and non-deterministic operation that may impact real-time performance—limiting target-domain Mod_create calls to program startup often becomes mandatory. Along these lines, you may also find that (once created during startup) these instances can effectively live forever in many embedded applications.

Recognizing the prevalence of "create-only" target programs that never call any instance Mod_delete functions, RTSC enables you to configure simpler, more deterministic memory allocators used internally by Mod_create—resulting in non-trivial reductions in program footprint.

Target-domain Mod_construct (dynamically-constructed instances). With allocation of space for the instance object under explicit client control, target-domain Mod_construct calls certainly have a degree of flexibility not shared by Mod_create—you can declare the Mod_Struct passed to Mod_construct as a local or global variable, or even allocate the space by directly calling a memory allocator of your choice. The Mod_construct function simply initializes the object, and hence can potentially find use in situations where the internal memory allocation performed as part of Mod_create proves too costly.

One common scenario for preferring Mod_construct over Mod_create occurs when an instance object will have a very short lifetime—and the object itself needs to come and go with minimal impact on real-time performance. Local Mod_Struct variables coupled with matching calls to Mod_construct and Mod_destruct—all appearing within the scope of a single client function—serve this purpose nicely, essentially by eliminating the cost of memory allocation. While this approach certainly scales to (long-lived) global Mod_Struct variables, efficiency advantages over Mod_create begin to diminish in this scenario; statically-created instance objects (reviewed next) in fact represent a better choice for optimizing performance in these situations.

Though outside the scope of this Primer, suffice it to say that constructed instances may have less diagnostic support than created instances—another trade-off between robustness and performance. In particular, RTSC analysis tooling used to view the set of instance objects currently associated with an individual module may not account for any dynamically-constructed instances—only instances resulting from Mod_create calls, either dynamically in the target-domain or else statically in the meta-domain. This limitation reinforces our suggestion to restrict use of Mod_construct to short-lived, transient instance objects.

Meta-domain Mod.create (statically-created instances). This idiom can offer significant performance gains in time and (especially) space whenever your application uses instance objects that effectively remain live throughout program execution. Applications that follow the model of prog.c from Lesson 3—instance Mod_create calls in main, but no instance Mod_delete calls within prog.c. Starting with a working target program—functionally correct, but with a larger memory footprint than desired—you can better focus on translating Mod_create calls from standard C into the less familiar world of XDCscript; after a while, this translation process will seem almost mechanical to you.

By moving all target-domain Mod_create calls on a particular instance module upstream to the meta-domain, the target program need not carry runtime code supplied by that module for initializing (and finalizing) dynamically-created instances—often, a significant percentage of a module's internal implementation. And by moving all target-domain Mod_create calls on all instance modules into the meta-domain, the target program need not carry a runtime memory allocator—another significant portion of C code.

Besides a consequential reduction in target-program footprint, the virtually unlimited resources of the host-based meta-domain enable module suppliers to validate the correctness of each statically-created instance—starting with its per-instance configs and expanding to its interrelationship with other program elements. Though theoretically possible to implement equivalent runtime checks in the target-program, the practical constraints of embedded programming in C often suggest otherwise.

See also

xdc.cfg.Program.global Client documentation for xdc.cfg.Program.global

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


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 configuration settings are for the executable represented by this object. Program configuration scripts reference this module via the global variable Program; i.e., Program 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 configuration settings are for the executable represented by this object. Program configuration scripts reference this module via the global variable Program; i.e., Program implicitly initialized as follows:
      var Program = xdc.useModule('xdc.cfg.Program');
After a configuration script completes successfully, the XDC runtime generates the following files:
  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 used during this final link step. This linker command file is produced by expanding a template specified by xdc.cfg.Program.linkTemplate. Each template is responsible for expanding templates specified by each imported package's getSects method (see xdc.IPackage.getSects). This allows each package participating in the configuration of an executable to contribute a portion of the executable's 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).
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
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
NOTE
This parameter is ignored if the exec command is specified as part of the test; see xdc.bld.Test.Attrs. and <args> are the arguments specified in the test (if any).
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 section 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 relavent 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 platforms that support a separate "system stack", this parameter sets its initial size (in units of chars).
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 Wed, 08 Dec 2010 20:08:01 GMT


RTSC Module Primer/Lesson 5 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

RTSC Module Primer/Lesson 5

Packages — revisiting "Hello World"

At this juncture, we'll begin a transition from the client programmer's perspective of a RTSC module—a specified set of public constants, types, and functions—to the more internal perspective of the module supplier. As we mentioned from the outset, all RTSC modules ultimately reside within RTSC packages: the xdc.runtime package contains the System module; the acme.utils package contains the Bench module; the bravo.math package contains the RandGen module; and so forth.

Before turning to the internal implementation of the latter pair of modules, however, we'll start by building a rather minimal package—one that in fact contains no modules at all, but rather serves to introduce some important idioms for producing packages. And once again, we'll turn to "Hello World".

Contents

  • 1 Introducing the package
  • 2 Prescribing "what" to build
  • 3 Building the package
  • 4 See also

Introducing the package

We've chosen to name our minimal package simply lesson5—a bit unusual, since most packages will typically have longer (globally-unique) names of the form vendor.name1.name2.… . As a rule, all source files associated with a package named vendor.name1.name2.… must reside in a corresponding directory named vendor/name1/name2/… . Applying this rule to our minimal lesson5 package, its sources would reside in the directory «examples»/lesson5.

Beyond the prog.c and prog.cfg sources found in the lesson5 directory—absolutely identical to the target-program and meta-program we already examined back in Lesson 1—this example introduces two specially named source files found in all RTSC packages:

  • package.xdc, which first and foremost declares a canonical name for this package; and
  • package.bld, which prescribes a recipe for building the contents of this package.

Consider, then, the realization of these two special files for our lesson5 package:

lesson5/package.xdc
1

package lesson5 {
    /* module declarations normally go here */
};
lesson5/package.bld
2
3

4
5

var Build = xdc.useModule('xdc.bld.BuildEnvironment');
var Pkg = xdc.useModule('xdc.bld.PackageContents');

for each (var targ in Build.targets) {
    Pkg.addExecutable("prog", targ, targ.platform).addObjects(["prog.c"]);
}

Not unlike a struct declaration in standard C that in turn declares named fields within its scope, the package declaration at line 1 specifies the canonical name of this package (in this case, just lesson5) as well as the names of any modules contained within its programmatic scope (in this case, none). Needless to say, package.xdc is not written in standard C but rather in XDCspec—RTSC's C-like specification language which will play an even more prominent role once we begin developing modules in the lessons to come.

Consistent with the mapping between canonical module names and directory paths we've already encountered when working with #include directives—xdc.runtime.System becomes <xdc/runtime/System.h>—you can start to appreciate why a package named lesson5 must without exception reside in a directory of the same name. You should also note that while all packages are directories, the converse is by no means the case; the directory «examples»/lesson4 for example is not a package—for one, it lacks the special package.xdc found in all RTSC packages.

Turning now to package.bld—written in a language you should certainly recognize by now—this XDCscript recipe represents a more readable and a more general alternative to using a makefile to orchestrate the build flow. Just as the sources to our "Hello World" program—prog.c and prog.cfg—would presumably remain unchanged when rebuilt for different hardware using a different C compiler, so too does package.bld represent a portable recipe for building this package's contents for one (or more that one) RTSC target and platform.

The config.bld file prepared back in Lesson 0—also written in XDCscript, though you may not have realized it at that time—plays an essential role in keeping individual package.bld scripts portable by centralizing information specific to your environment within one file. In practice, config.bld will typically reside in one of the directories found along the RTSC package-path—reflected in the XDCPATH environment variable also assigned back in Lesson 0. As you'll come to appreciate more and more in the world of RTSC, virtually everything worth finding—C headers/libraries, XDCscript scripts, XDCspec specs, and of course config.bld itself—will be found along the RTSC package-path.

Prescribing "what" to build

The pair of special modules introduced at lines 2 and 3 of package.bld form the backbone of the RTSC package build model:

  • The Build module provides various (readonly) properties that capture the current environment in which the package.bld script executes. For example, the targets property used at line 4 tracks its earlier assignment in the special config.bld file back in Lesson 0.

  • The Pkg module provides various functions that add information about different buildable artifacts contained in this package. For example, the addExecutable function used at line 5 prescribes everything needed to build our (portable) "Hello World" program for an arbitrary target and platform.

Indeed, the generality of this package.bld script over (say) a more declarative makefile results from something that lies at the very core of programming itself—the for loop. By embedding a call to addExecutable (line 5) inside an XDCscript for each loop (line 4)—which successively binds the local variable targ to each element of the Build.targets collection—we have effectively arrived at a closed expression of "what" we want to build that remains independent of any particular target(s).

Looking closer at the addExecutable call on line 5, its first argument designates the basename of the target-program's executable file as well as the basename of its corresponding .cfg meta-program. The remaining two arguments designate the RTSC target and RTSC platform used with this program, not unlike how we passed -t and -p options to configuro in our earlier examples (Lesson 2). Note that each RTSC target has a platform property that returns a reasonable default—one which you can actually alter through the special config.bld file prepared back in Lesson 0. Finally, the addExecutable function returns a different type of XDCscript object, one supporting another function (somewhat oddly) named addObject whose sole argument enumerates a set of target-domain source files requiring compilation into object (sic!) files used when linking this executable.

Building the package

We've already introduced one special command bundled with XDCtools—the xs command used to launch host-based applications written in XDCscript; we're now about to introduce another one—the xdc command used to build RTSC packages. And for all practical purposes, you'll need nothing more than just this pair of special commands going forward in the world of RTSC.

The xdc command operates very much like gmake used to build our earlier examples, in that both commands take "goals" as their arguments to designate a particular end-result. For example, invoking xdc clean from within any package directory («examples»/lesson5 for the current example) will remove all generated files resulting from any prior use of the xdc command. Similarly, invoking xdc all (or just xdc by itself) will rebuild the contents of the current package according to the prescription laid out in package.bld, yielding the following output for this example:

1

2a

2b

>> xdc all
making package.mak (because of package.bld) ...
generating interfaces for package lesson5 (because package/package.xdc.xml is older than package.xdc) ...
configuring prog.x64P from package/cfg/prog_x64P.cfg ...
cl64P package/cfg/prog_x64P.c ...
cl64P prog.c ...
lnk64P prog.x64P ...
configuring prog.x86GW from package/cfg/prog_x86GW.cfg ...
cl86GW prog.c ...
cl86GW package/cfg/prog_x86GW.c ...
lnk86GW prog.x86GW ...
all files complete.

Since we originally assigned Build.targets a list of two RTSC targets in our special config.bld file back in Lesson 0 (ti.targets.C64P and gnu.targets.Mingw in this case) invoking xdc on this package will repetitively perform the same sequence of build steps—configure, compile, and then link—on the same set of portable source files—prog.cfg and prog.c. Were you to add more targets to the Build.targets list, the pattern of build steps beginning at lines 2a and 2b would continue in an obvious way.

If you should encounter any problems when building this example, refer back to Lesson 0 and double-check that your config.bld file correctly references the installation directories for both compilers—directories referred to as «c6xtools» and «gcctools» respectively.

Running the (two) programs built with this package is equally straightforward—invoking the command xdc test loads and runs each program on its respective RTSC platform, using information encapsulated within the platform to guide the process.

>> xdc test
running prog.x64P ...
Hello World
running prog.x86GW ...
Hello World

Note that each RTSC target defines a (unique) suffix used in all generated files produced by the underlying tool-chain, certainly to eliminate potential filename conflicts (both programs can't be named prog.out in our example) but also to enable an expanded set of target-specific goals for use with the xdc command. For example, invoking xdc test,64P will only run prog.x64P; and invoking xdc test,86GW will only run prog.x86GW. Similarly, invoking xdc all,64P will perform only the first set of build steps beginning at line 2a in the earlier output.

For all intent and purposes, the xdc command is gmake—invoking xdc will quickly transfer control in a very specific manner to a very specific revision of gmake bundled with the XDCtools product. But unlike our earlier examples that each contained a hand-crafted makefile, the xdc command instructs gmake to operate on a generated package.mak file found in all RTSC packages; and through the magic of gmake (evidenced by line 1 in the earlier output), package.mak will itself be (re-)generated from package.bld only when necessary to bootstrap the remainder of the build flow. Just as first executing a prog.cfg meta-program (written in XDCscript) will yield target-program artifacts consumed by downstream compilers and linkers, running the special package.bld script (also written in XDCscript) at the outset drives automatic generation of package.mak consumed by gmake itself.

See also

Command - xdc | eXpanDed C package build command
xdc.bld.BuildEnvironment.targets | Client documentation for xdc.bld.BuildEnvironment.targets
xdc.bld.PackageContents.addExecutable | Client documentation for xdc.bld.PackageContents.addExecutable
xdc.bld.Executable.addObjects | Client documentation for xdc.bld.Executable.addObjects

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Command - xdc - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Command - xdc

eXpanDed C package build command

Contents

  • 1 Synopsis
  • 2 Description
  • 3 Options
  • 4 Usage
  • 5 Examples
    • 5.1 Building a package
    • 5.2 Building specific files
    • 5.3 Running package tests
    • 5.4 Building multiple packages
    • 5.5 Running tests in multiple packages
    • 5.6 Building and running for a particular target
  • 6 Environment Variables
  • 7 Exit Status
  • 8 Files
  • 9 See Also

Synopsis

xdc [-n] [-h] [-k] [-r[a]] [@opts-file] [goal ...] [-P[rRD] pkg-dir ...]

Description

The xdc command is used to build packages and executables that use packages. In its current implementation, xdc is nothing more than a command shell that invokes the GNU make utility with makefiles that are either part of XDCtools or generated as part of processing a package's build script (package.bld). As a result, any command line option supported by GNU make is also supported by the xdc command and integration of the xdc command into make based environments is particularly straightforward.

In order to ensure that the xdc command can be used identically on any host platform, prior to executing GNU make, xdc defines two variables:

  • HOSTOS — the name of the host operating system ("Linux", "Windows", or "Solaris"), and
  • XDCROOT — the installation directory of the XDCtools containing the xdc command itself

To see the exact command that xdc will run, use the -n option.

% xdc -n
set PATH=«xdcroot»/bin:...
«xdcroot»/gmake -r -R HOSTOS=Linux XDCROOT=«xdcroot» -f «xdcroot»/packages/xdc/bld/xdc.mak

Options

In addition to the options listed below, virtually any command line option supported by GNU make is also supported by the xdc command. See the GNU Make Options Summary section of the GNU make manual for the details of these options.

-h
display usage help and exit
-k
if an error occurs during a build, do not stop (keep building as much as possible)
-n
show the make command but don't execute it
-r[a]
Remake the specified package (or packages) using the XDCPATH and XDCROOT values that were used the last time the package(s) was built -- ignoring any values that may be present in the environment. If -ra is specified, rebuild using previous values of XDCARGS, XDCBUILDCFG, XDCPATH, XDCROOT, and XDCTARGETS; i.e, ignore any changes to environment variables that would normally trigger the package to be rebuilt.
-P[rRD] pkg ...
Build specified goal(s) in all directories named after -P that contain a build script (i.e., package.bld); if -PR is specified, xdc recursively descends into all specified directories and builds in any package directory that contains a build script; if -PD is specified, xdc builds in the specified package directories and the package directories of all other packages "required" by these packages; if -Pr is specified, xdc recursively descends into all specified directories and builds any package whose repository is one of the named directories.
--xdcpath=path
Set the XDCPATH environment variable to path. See Environment Variables for a complete description of this variable. This option is equivalent to passing "XDCPATH=path" on the command line.
@<opts-file>
read the specified options file, <opts-file>, and include its contents as arguments to xdc. Each line in the file corresponds to exactly on argument passed to to xdc. No interpretation of the line is done unless the line is another @<file>; in this case, the line is (recursively) replaced with the lines from <file>.

Usage

Any option passed on the xdc command line that is not listed above is passed directly to the underlying invocation of GNU make. In this way, one can control the build process with as much flexibility as a normal GNU make. In particular, the goals specified on the command line may be any file that make knows how to build.

Although it is always possible to name one or more specific buildable files on the xdc command line, it is often desirable to build collections of executables or libraries or run collections of tests. For example, building a test suite consisting of hundreds of executables would be difficult if each program had to be explicitly named on an xdc command line.

The xdc command supports a number of build goals that facilitate the building of collections of files. The following table summarizes some standard build goals supported by the xdc command.

Goal | Description
all | builds all package files and all executables; this is the default goal if no goals are specified on the command line.
clean | removes all generated files
release | create the default release; an archive (tar or zip) containing all files that are to be distributed to a consumer of the package.
test | runs all package tests declared in the package's build script
.make | builds the generated makefiles only
.libraries | builds all libraries exported by this package
.executables | builds all executables declared in the package's build script
.interfaces | builds the package's schema and generates all header files for interfaces exported by the package

In addition to the target independent goals above, target specific goals are also supported. These goals allow one to restrict a build to just the libraries for a particular target, for example. In addition, these goals are used internally to prevent unnecessarily building libraries for all targets before building a specific executable. The following table summarizes the target specific goals currently supported.

Goal | Description
all,trg | builds all libraries and all executables for the target whose suffix is trg.
clean,trg | removes all generated files for the target whose suffix is trg.
release,name | create the release named name.
test,trg | run all tests for all executables built using the target whose suffix is trg.
.libraries,trg | builds all libraries for the target whose suffix is trg
.executables,trg | builds all executables for the target whose suffix is trg

The -P, -PR, and -Pr options are very useful when working with multiple packages. Not only does it allow one to avoid building each package using a separate command it automatically handles any package inter-dependencies. A package may depend on another package; for example, any package that contains a program depends on at least one platform package. If two or more dependent packages are under development at the same time, it is important that the interfaces for the packages referenced are built before any libraries referencing these packages are built and that any libraries referenced are built before linking any executable. Thus, when building multiple packages, the xdc command builds the packages in several "phases"; it first builds all interfaces for all packages, then all libraries for all packages, and finally, all executables for all packages. By making several passes over the packages, it is possible to simultaneously develop multiple packages without having to worry about package build order due to package dependencies (which are subject to change).

Examples

Building a package

Building a package. The following command will remove all generated files from the package located in the current working directory.

% xdc clean

To build all files for the package in the current working directory:

% xdc

Although the command above builds the files necessary for the package producer to use it in their build environment, it does not build the files necessary for clients of the package to install and maintain multiple releases of the package. The following command builds a releasable form of the package containing all necessary dependency and compatibility information needed by "outside" clients of the package:

% xdc release
Building specific files

Building specific files. While it is valuable to (re)build a package in its entirety, during development, it is often more convenient to build a specific file. The xdc command allows one to specify any generated file as the goal to be built. For example, the following command will build the program Hello.x62 and files unrelated to this program will not be built.

% xdc Hello.x62

It is also possible to name several goals and, again, xdc will only build the files required to create the build goals named. For example, the following command will build both executables Hello.x62 and Hello.x62e.

% xdc Hello.x62 Hello.x62e
Running package tests

Running package tests. The RTSC build environment supports the ability to not only build executables and packages but also run executables. The RTSC environment defines a test as an executable and a set of command line arguments for the executable. Tests may be specified in the package's build script and every program defined in a package has one implicitly created test; the executable with no command line arguments. The xdc command allows one to easily run a package's tests.

The following command runs all tests defined by the package in the current working directory.

% xdc test

As with building individual files, it is often desirable to run individual tests. The following command runs the implicitly created test for the Hello.x62 executable.

% xdc Hello.x62.test
Building multiple packages

Building multiple packages. The following command will remove all generated files from the packages pkg1, pkg2, and pkg3 located in the current working directory.

% xdc clean -P pkg1 pkg2 pkg3

To build all files in multiple packages:

% xdc all -P pkg1 pkg2 pkg3

Because the build goal all is the default goal, the following command is equivalent to the one above.

% xdc -P pkg1 pkg2 pkg3

Note that the xdc command will silently ignore directories that do not contain a package build script (package.bld). Thus, even if a directory contains sub-directories that are not package directories it is possible to build all packages contained in this directory using a wildcard. Suppose, for instance, that the directory named examples contains multiple sub-directories and only some are package directories. It is possible to build all packages in the examples directory with the following command.

% xdc -P examples/*

Since a package's name must match the directory names containing the package, it is not uncommon for packages to be located at different levels of a directory tree or even inside other packages. In these cases, it is desirable to be able to build all packages contained under a specified root directory. The following command builds all packages located under the examples directory.

% xdc -PR examples

In some situations you may want to limit the packages built to only those whose repository is a specific directory. Suppose, for example, you have a package named bundle that, as part of its build, creates a "temporary" package or installs another package in a sub-directory of bundle. In this case, using "xdc -PR" might not be feasible because the "temporary" package will be found and built (or cleaned) by the top level build and this will likely conflict with bundle's manipulation of this "temporary" package. The following command builds all packages located under the examples directory whose repository is also examples.

% xdc -Pr examples

Rather than build all packages found at or below a specified directory, it is sometimes more efficient to build a specified package and (recursively) any of its prerequisites. The following command builds the package in the specified directory and any prerequisite packages declared by the "requires" statement in the package's specification file (i.e., package.xdc).

% xdc -PD examples/basic/vers/app

By default, if an error occurs during the build of any package the xdc command will terminate the build and not attempt to build other packages. While this is convenient during interactive builds, during an overnight build of many packages it is preferable to continue building as much as possible. In the morning, one can correct the errors and re-execute the command. Only goals that failed to build or those that depend on the fixed files will be rebuilt.

To prevent xdc from stopping on the first error in the example above, use the -k option.

% xdc -k -PR examples
Running tests in multiple packages

Running tests in multiple packages. In addition to building multiple packages at a time, it is also valuable to run all tests for multiple packages using a single command. A regression test suite can be structured as a collection of packages, for example. The following command runs all tests for the packages pkg1, pkg2, and pkg3 located in the current working directory.

% xdc test -P pkg1 pkg2 pkg3

Since tests have a tendency to fail (otherwise they are not good tests), it is often valuable to continue running all tests even if a test fails. This is especially true when running over-night regression test suites containing hundreds of tests. The following command runs all tests and continues even if one or more tests fail.

% xdc -k test -P pkg1 pkg2 pkg3
Building and running for a particular target

Building and running for a particular target. In the examples above, we built and ran executables for all targets. Recall a target defines a CPU ISA and a compiler runtime model (big endian, little endian, near, far, etc.). Since packages often need to support multiple targets, it is often desirable to restrict a build or a test to a particular target. The xdc command supports target specific versions of the build goals all, clean, test, .libraries, and .executables.

The following command runs only the tests for the target whose suffix is "62" for all packages in the examples directory and tries to run each test even if a test fails.

% xdc -k test,62 -P examples/*

The following command removes all generated files related to the target whose suffix is "62" for all packages in the examples directory.

% xdc clean,62 -P examples/*

The following command builds all generated files related to the target whose suffix is "62" for all packages in the examples directory.

% xdc all,62 -P examples/*

Environment Variables

In addition to the command line options, the xdc command also uses the following environment variables to control its behavior. Except for XDCPATH, XDCARGS, and XDCBUILDCFG, no environment variable changes the contents of any goal produced by xdc; the results of a build are unaffected by environment variables (unless a user-specified tool invoked by xdc is affected by an environment variable).

XDCARGS
this variable names arguments that are passed to the package's build script, package.bld. The package's build script references the arguments from the global array arguments. For example, the command
xdc XDCARGS="foo bar"

causes the arguments array (in the package build script) to be initialized as follows:

arguments[0] = "foo";

arguments[1] = "bar";

XDCBUILDCFG

if defined and the file "./config.bld" does not exist, this variable names a file that will be used in-lieu of the config.bld file found along the "import" path (i.e., ".;$(XDCPATH);xdcroot;xdcroot/etc") to configure the build environment prior to running a build script.

However, if XDCBUILDCFG is specified in the command line, any package specific "./config.bld" will be ignored. Thus, with respect to specifying which config.bld to use, the package has precedence over the environment variable but the command line has precedence over the package.

Why distinguish between setting XDCBUILDCFG on the command line verses setting it in the environment? Some packages need to override the setting of XDCBUILDCFG; e.g., in order to clean and rebuild a package of targets (which may be referenced by the file named by the environment variable XDCBUILDCFG), the package may define a "local" config.bld that does not reference any targets.

XDCOPTIONS

 string of options that affect the messages displayed by xdc while it runs. Only four options are currently supported: "g", "v", "q", and "t".

If this string contains "-g" or "g", an interactive debugger is started allowing you to single step debug your package's build scripts

If this string contains "-v" or "v", each command executed by xdc is displayed before execution. This makes it easy to create "shell scripts" that re-create the build without the need for the xdc command or make.

If this string contains "-q" or "q", banners normally displayed during multi-package builds are not displayed. Since the banners contain date and time information, this option is useful when the output from the xdc command must not vary between successive builds; e.g., when running regression tests.

If this string contains "-t" or "t", banners are displayed during multi-package builds but no dates or times are displayed. This option is useful when running regression tests on a fixed set of packages; when an error occurs, the banners make it easy to tell which package(s) failed.

XDCPATH

a string of ";" separated directories that contain packages. This path is used to locate packages that are used by the package being built.

It is usually a mistake to put a relative path in the XDCPATH environment variable. Relative paths in XDCPATH reference directories relative to the package being built rather than the directory where the xdc command was invoked. Thus, a relative path will refer to a different repository for each package being built.

It is possible, however, to use the "^" character in the XDCPATH definition to refer to the current package's repository. So, if you have a repository that is always in a fixed location relative to all of your packages repositories, it is possible to create a single XDCPATH setting that does not include any absolute paths. Suppose, for example, that your build system places all prerequisite packages in an "imports" repository prior to building the packages in a "src" repository and the imports and src repositories are sibling directories in the file system. The following XDCPATH setting is sufficient to build all packages in the src repository.

set XDCPATH=^/../imports

Note that multiple versions of the same package can appear along the XDCPATH. The package path can name multiple "package repositories" which can contain a package directory with the same name. When searching for a package, the first repository that contains a directory matching the package's name will be used. Thus, even if two packages with the same name appear in the package path, only one will ever be found; i.e., the first one in the order specified in the package path.

XDCTARGETS

a string of white space separated target names that name all supported build targets. Each name is interpreted as a regular expression and is used to select from the set of all available targets included in the build "startup" script (see config.bld in the Files section below). This environment variable can be used to re-build packages with a subset of the available targets. The current set of targets include the following:

ti.targets.C54, ti.targets.C54_far

ti.targets.C55, ti.targets.C55_large

ti.targets.C28_large

ti.targets.C62

ti.targets.C62_big_endian

ti.targets.C64

ti.targets.C64_big_endian

If a specified target name does not match any available target, the prefix "ti.targets." is added and the match is retried. If no match occurs, a warning is displayed and processing continues uninterrupted. Thus, the target "ti.targets.C62" may be abbreviated to just "C62"

Any change to an environment variable that may affect the results of the build will trigger a rebuild of the goals that may be affected (as well as some that may not be affected).

Note that these environment variables may be specified on the xdc command line. In this case, the value specified on the command overrides any value in the environment. For example, the following command causes the package in the current working directory to be built for just the C62 and C54 targets.

xdc XDCTARGETS="C62 C54"

  Exit Status

The exit status of the xdc command is the exit status of the underlying make command whenever make is executed; otherwise, the following exit values are returned:

  •  0 Successful completion.

  •  1 An error occurred.

  Files

config.bld

The build model "startup" script; this script, located along the import path ".;$(XDCPATH);xdcroot;xdcroot/etc", configures the build model's modules so that common settings can be shared among multiple package build scripts. It is possible to override this behavior using the XDCBUILDCFG environment variable.

package.bld

The package's build script; this script, located in the package's working directory, specifies all of the physical files (libraries, executables, etc.) that are part of the package.

.xdcenv.mak

This file is a generated file that captures the environment setting that can affect the contents of the generated makefile; changes to this file trigger a re-build of the makefile.

  See Also

GNU Make Manual

GNU Make Options Summary

   [printable version]  [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"

Views

  • Special
    •

Personal tools

  • Log in / create account
    •

Navigation

  • RTSC-pedia home
    •

  • RTSC project home
    •

  • News & support
    •

  • Help
    •

binders

  • General Information
    •

  • RTSC Programming
    •

  • User's Guide
    •

  • Reference Manual
    •

package reference

  • XDCtools packages
    •

lists

  • Master doc-map
    •

  • Category query
    •

  • Redirected pages
    •

tools

  • Find+Replace (grep)
    •

  • RSS feed
    •

more tools

  • Upload file
    •

  • Special pages
    •

  Powered by MediaWiki

  • Privacy policy
    •

  • About RTSC-Pedia
    •

  • Disclaimers
    •


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 the xdc tool.
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 Wed, 08 Dec 2010 20:07:50 GMT


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 specidied 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 Wed, 08 Dec 2010 20:07:50 GMT


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.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 ...
        obj.isRom// if true, exe is a ROMable sub-assembly = Bool ...
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.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
    obj.isRom = Bool ...
    // if true, exe is a ROMable sub-assembly
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 RunTime Support (RTS) package that will be implicitly loaded prior to running the executable's configuration script. If this field is set to null, then no RTS package will be loaded. If this field is not set (or set to undefined), the RTS 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 Wed, 08 Dec 2010 20:07:50 GMT


RTSC Module Primer/Lesson 6 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

RTSC Module Primer/Lesson 6

Modules — generalizing "Hello World"

Before turning to the implementation of acme.utils.Bench and bravo.math.RandGen in the pair of lessons that follow, we'll first dissect a very simple module named Talker that illustrates some common programming idioms used when supplying any RTSC module. The Talker module also illustrates an important design technique seen throughout RTSC—generalizing functionality by replacing "hard-coded" C constants with module configuration parameters.

Contents

  • 1 Introducing the module
  • 2 Specifying the module
  • 3 Implementing the module
  • 4 Building the package
  • 5 See also

Introducing the module

Our Talker module resides in a package named lesson6, found in a corresponding directory named «examples»/lesson6; and like all RTSC packages, the lesson6 directory contains a special package.xdc source file which not only names the package as a whole but now introduces some modules within its programmatic scope.

lesson6/package.xdc

package lesson6 {
    module Talker;
};

Note that package.xdc simply declares the existence of lesson6.Talker as a RTSC module—all client-visible features of the module itself are formally specified in a separate file named Talker.xdc, which we'll examine momentarily. For now, though, consider a sample client program that uses the Talker module.

lesson6/prog.cfg

1
2

var Talker = xdc.useModule('lesson6.Talker');

Talker.text = "Goodnight Moon";
Talker.count = 3;
lesson6/prog.c

3

#include <lesson6/Talker.h>

Int main()
{
    Talker_print();
    return 0;
}

Working backwards, calling the function Talker_print at line 3 of the target-program prog.c will repetitively output a client-configurable text-string assigned at line 1 of the corresponding meta-program; the assignment at line 2 controls the repetition count. The Talker module's text and count configs have the values "Hello World" and 1 as their respective defaults, implying that Talker_print will still output something meaningful even with lines 1 and 2 removed from prog.cfg.

Specifying the module

As mentioned earlier, the file Talker.xdc formally specifies the client-visible features of the Talker module illustrated informally by our sample program. Also written in XDCspec—RTSC's C-like specification language—the contents of this file should remind you of the sorts of declarations normally found in C headers included by client programs. Indeed, the xdc command just introduced in Lesson 5 will automatically generate the <lesson6/Talker.h> module header from the Talker.xdc module spec when building the lesson6 package as a whole.

lesson6/Talker.xdc

1
2

3

module Talker {

    config String text = "Hello World";
    config Int count = 1;

    Void print();
}

Again working backwards, the function specification at line 3 mirrors the syntax of standard C, declaring the function's return type (Void in this case) as well as the names and types of its arguments (none in this case); and the config specifications at lines 1 and 2—ignoring the new XDCspec keyword—should remind you of a standard C variable declaration with an optional initializer. Finally, note that the client-visible features text, count, and print ultimately exist within the scope of the Talker module—just as Talker exists within the scope of the lesson6 package.

As with any programmatic scope—such as fields within a struct or local variables within a function—all elements introduced within the scope of a RTSC module must be uniquely named therein; ditto, all modules introduced within the scope of a RTSC package. Enveloping XDCspec definitions of modules and packages alike with braces of the form { ... } parallels familar C syntax for scoped struct and function definitions—albeit at a higher programmatic level.

Implementing the module

Just as client programs in RTSC comprise a target-program (prog.c) as well as a corresponding meta-program (prog.cfg), suppliers of spec'd RTSC modules will generally implement functionality in two complementary programming domains:

  • a target-domain, where C-based functions implemented by the module supplier are eventually bound into client programs executing on specific hardware platforms; and

  • a meta-domain, where XDCscript meta-functions also implemented by the module supplier play an active role during the design-time configuration of these same client programs.

Turning first to the target-domain implementation of the Talker module—found in a source file rather predictably named Talker.c—you'll sense the same "look-and-feel" in its stylized use of C seen in all of the prog.c target-programs we've examined so far.

lesson6/Talker.c
1
2

3

4
5

#include <xdc/runtime/System.h>
#include "package/internal/Talker.xdc.h"

Void Talker_print()
{
    Int i;
    for (i = 0; i < Talker_count; i++) {
        System_printf("%s\n", Talker_text);
    }
}

Like any prog.c client program, a module's target-implementation must first #include the headers of any other RTSC modules used therein—in this case, the Talker module itself is a client of xdc.runtime.System and hence the directive found at line 1. But unlike a top-level RTSC program, a module's target-implementation must then include a special "internal" header file following the pattern illustrated on line 2.

Order is important here—the internal header included on line 2 must appear after all other RTSC modules headers.

As you might imagine, the xdc command generates the internal header (included only by the module's supplier) as well as the public header (included by any of the module's clients) from the same .xdc module spec source file. Note also that the internal module header resides deep inside the current package—beneath a special package sub-directory created and used by the xdc command to hold a wealth of generated files; the distinct #include " ... " syntax used on line 2 of Talker.c—which first searches the current working directory—reinforces the locality of this file. By contrast, the generated public header resides in the main directory of the package itself, accessed by external clients using the more common #include < ... > syntax which in turn relies on -I compiler options to establish a directory search path; suffice it to say, the elements of this search path will automatically comprise the contents of your XDCPATH environment variable (currently just «examples») followed a reference to a special «xdcroot»/packages directory within XDCtools itself.

Moving on to the definition of the Talker_print function beginning at line 3, we once again see the familiar naming idiom ModuleName_elementName used within its body—whether referencing the count and text configs belonging to the Talker module or else the printf function belonging to the xdc.runtime.System module. Needless to say, the values held by Talker_count and Talker_text at lines 4 and 5 reflect earlier assignments to Talker.count and Talker.text at lines 1 and 2 of the client's prog.cfg meta-program; or, if no such assignments had occurred, these configs would instead hold default values spec'd in Talker.xdc.

Despite appearances, you cannot assign values to either Talker_count or Talker_text at runtime as if they were some sort of global variable: while module configs behave like assignable struct fields in the meta-domain, each configuration parameter effectively becomes a C extern const in the target-domain—readable, but not writable. But with a growing number of today's compilers supporting whole program optimization—enabling the compiler to look across multiple source files when generating object code—the seemingly expensive (extern) reference to Talker_count at line 4 would effectively "melt away" as if the value of this config were a #define constant local to Talker.c; and the reference to Talker_text at line 5 would likewise incur no more run-time cost than a string literal appearing at this point in the code. Generalizing from our example, this suggests that RTSC module config declarations can effectively replace #define symbols with a higher-level programming construct that is more flexible, more expressive, more robust, and yet equally efficient.

Finally, let's turn to the implementation of the Talker module within the meta-domain—in a source file named Talker.xs that contains definitions of special XDCscript functions that support inclusion of this module within some client program.

lesson6/Talker.xs

6

function module$use()
{
    xdc.useModule('xdc.runtime.System');
}

Remembering that calls to xdc.useModule in the meta-domain will mirror corresponding #include directives in the target-domain, the call at line 6 of Talker.xs parallels line 1 of Talker.c. As a rule, any module that itself becomes a client of another RTSC module must implement its own version of the special XDCscript function module$use with the necessary calls to xdc.useModule—no different than what we've already seen in prog.cfg meta-programs.

Once the client's prog.cfg meta-program completes, control passes to the special module$use function associated with each RTSC module already designated in prior calls to xdc.useModule; the process then continues recursively until all modules used directly or indirectly by the top-level program have had their opportunity to participate. Needless to say, calling xdc.useModule multiple times on the same module will have no adverse effects as this process unfolds—much as target-domain header files guard against multiple inclusion to ensure the compiler doesn't process the same set of definitions more than once.

We'll introduce several special XDCscript functions besides module$use in the lessons that follow, all of which enable a RTSC module to actively participate in some aspect of RTSC program configuration—generally on the "back-end" of the process once the client meta-program (prog.cfg) has completed. One additional XDCscript function worthy of mention is module$validate, which provides module suppliers with an optional hook for flagging any erroneous conditions in the current program configuration; you could imagine a module$validate function in Talker.xs that checks (say) that the value of Talker.count is non-negative or that Talker.text has not been assigned null. As a rule, downstream compiling/linking of the client program will not proceed if even one module$validate function fails: the net result becomes early detection of serious problems that (at best) may yield obscure downstream compiler/linker errors or else (at worst) may trigger run-time behavior with fatal consequences.

Building the package

No different than Lesson 5, you can once again use various forms of the xdc command to clean, rebuild, and execute the contents of the current package:

xdc clean | remove all generated files from the current package
xdc all or just xdc | compile/link all executable programs for all targets
xdc all,64P or xdc all,86GW | compile/link all executable programs for the designated target
xdc test | run all executable programs for all targets
xdc test,64P or xdc test,86GW | run all executable programs for the designated target

But since the lesson6 package also contains the Talker module and its target-implementation in Talker.c, however, we'll need to make one important addition to the lesson6/package.bld script which in turns drives the underlying XDCtools build engine.

lesson6/package.bld

1

var Build = xdc.useModule('xdc.bld.BuildEnvironment');
var Pkg = xdc.useModule('xdc.bld.PackageContents');

for each (var targ in Build.targets) {
    Pkg.addLibrary("lib/" + Pkg.name, targ).addObjects(["Talker.c"]);
    Pkg.addExecutable("prog", targ, targ.platform).addObjects(["prog.c"]);
}

Similar to the addExecutable method introduced in Lesson 5, the addLibrary call on line 1 of package.bld prescribes creation of an object code library of the designated name for each active target encountered in the Build.targets collection; and like addExecutable, the result of this call on line 1 becomes input to an addObjects method which here lists all of the target-implementation source files requiring compilation followed by archiving into this library—in this case, just Talker.c. As you might expect, invoking xdc all from the command-line results in some extra lines of output that reflect the additional build steps implied by the new addLibrary call—something we'll dissect in the next lesson when we introduce even more forms of the xdc command.

Unlike our Talker module, the special modules xdc.bld.BuildEnvironment and xdc.bld.PackageContents—conventionally referenced as Build and Pkg in all of our package.bld scripts—do not maintain implementations in the target-domain; there is no BuildEnvironment.c file, for example. Rather, these modules are spec'd as metaonly in their corresponding .xdc files using a special XDCspec keyword, and hence only carry a meta-implementation in a corresponding .xs file. As it turns out, virtually all of content bundled with the XDCtools product (target and platform recipes, command-line tools, and so forth) are realized through spec'd meta-only modules—the only notable exception being the "ordinary" modules like System found within the xdc.runtime package which maintain implementations in the meta-domain and the target-domain.

See also

Command - xdc | eXpanDed C package build command
XDCscript - Module-Body.module$use | Use other modules required by this module
xdc.bld.PackageContents.addLibrary | Client documentation for xdc.bld.PackageContents.addLibrary
xdc.bld.Library.addObjects | Client documentation for xdc.bld.Library.addObjects

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Module-Body.module$use - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Module-Body.module$use

Use other modules required by this module

Synopsis

function module$use()

Description

module$use() is called after the user's configuration script and changes to the configuration are allowed within this function. This function is used by modules that require other modules in their implementation. As a rule, any module that directly references another RTSC module must implement this function with the necessary calls to xdc.useModule().

For example, if the implementation of a module Mod calls Log_print, then Mod.xs should contain an implementation of module$use() that contains a call to xdc.useModule('xdc.runtime.Log').

Mod.c

#include <xdc/std.h>
#include <xdc/runtime/Log.h>

#include "package/internal/Mod.xdc.h"

Void Mod_someFxn(Int num)
{
    Log_print0(Diags_ENTRY, "Mod_someFxn called");
        :
}
Mod.xs

function module$use()
{
    xdc.useModule("xdc.runtime.Log");
}

Whenever you need to include another module's header in your module's C code, there should be a corresponding xdc.useModule() call in your module's module$use() function.

The configuration model invokes module$use before both module$static$init and instance$static$init. For more information about the order in which module functions are invoked, see Creating Configurable Content.

You should leverage this function as the locale for binding all unbound proxies associated with this module. Any proxies left unbound going forward will cause the entire configuration process to terminate with an appropriate error message, thus inhibiting any subsequent target-program build steps.

See also

XDCscript - xdc.useModule | Specify that a module is used in a configuration
Creating Configurable Content | How to leverage the configuration process
XDCscript - Module-Body.module$static$init | Initialize module's State object
XDCscript - Instance-Body.instance$static$init | Statically initialize a target module's instance object

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


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 Wed, 08 Dec 2010 20:07:50 GMT


RTSC Module Primer/Lesson 7 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

RTSC Module Primer/Lesson 7

Modules — implementing acme.utils.Bench

We'll turn now to the implementation of the Bench module first seen back in Lesson 2, both to reinforce common programming idioms used when supplying any RTSC module as well as to introduce some additional aspects of the XDCspec language. In particular, we'll use XDCspec not only to identify the public client-visible features of Bench but also to specify certain internal features of Bench used only by the module supplier.

Contents

  • 1 Specifying the module
  • 2 Implementing the module (target-domain)
  • 3 Implementing the module (meta-domain)
  • 4 Building the package
  • 5 See also

Specifying the module

Following RTSC conventions, you'll find the spec for the acme.utils.Bench module in a source file named Bench.xdc that in turn resides in a package directory named acme/utils. The latter directory—itself rooted under «examples»—also contains the mandatory package.xdc file that specs the acme.utils package as a whole.

acme/utils/package.xdc

/*! Collection of utility modules */
package acme.utils {
    module Bench;
};
acme/utils/Bench.xdc

1

2a

2b

2c

3

4

/*! Benchmark timing support */
@ModuleStartup
module Bench {

    /*! Enable/disable benchmark functions */
    config Bool enableFlag = true;

    /*! Start the benchmark */
    Void begin(String msg);

    /*! End the benchmark and print the current time */
    Void end();

internal:

    struct Module_State {
        String beginMsg;    /* current begin() message */
        Int beginClock;     /* begin() start time */
        Int overhead;       /* timing overhead factor */
    };
}

While package.xdc should look rather familiar to you, Bench.xdc has become much more elaborate than the simple Talker.xdc spec seen in Lesson 6. Still, the config and function declarations at lines 2a through 2c follow the same XDCspec idioms introduced in the earlier Talker example. Here, however, an XDCspec documentation comment of the form /*! ... */ immediately precedes each of these declarations with an appropriate summary description; informally referred to as "XDoc", similar forms of comments appearing at the top of Bench.xdc as well as package.xdc summarize the module and package as a whole.

Most modern programming languages offer direct support for special documentation comments that you can embed within source files—Java offers "JavaDoc", Perl offers "PerlDoc", Ruby offers "RubyDoc", and so forth; integrated tooling then automatically generates appropriate user (client) documentation that includes these comments. By contrast, the C programming language (dating from the 1970s) offers no such inherent support for documentation comments; popular tools like doxygen have traditionally filled this void, enabling suppliers of C-based libraries to suitably annotate header files with a similar style of commentary. With module .xdc files now supplanting .h files in RTSC—and with the latter generated from the former—it only seems natural for XDCspec to offer support for "XDoc". In general, XDCspec documentation comments follow conventions already familiar to users of doxygen which in turn maintains the same look-and-feel of JavaDoc.

Though seemingly at odds with RTSC's general notion of separating specification from implementation, Bench.xdc does declare programmatic features below line 3 that (at least conceptually) should remain hidden from any clients of this module. As a rule, any declarations appearing after the special XDCspec internal keyword—whether constants, types, configs, or functions—will typically support some facet of this module's private implementation. For this reason, clients should absolutely never use any of these internal features directly within their own modules or programs; RTSC module suppliers not only can but will freely change internal implementation details without notice from one version of a package to the next.

In the case of the Bench module, its internal implementation (unlike the Talker module of Lesson 6) uses private variables to retain state information between successive calls to the module's public functions—Bench_begin and Bench_end. For reasons that will become more apparent over time, module suppliers will actually declare these privates variables as individual fields within a well-known internal struct invariably named Module_State. In the example at hand, the definition at line 4 of Bench.xdc introduces three such private variables whose roles will become clear once we examine more of this module's implementation.

Besides updating its internal module state, the target-implementation of Bench (coming momentarily in Bench.c) also needs to perform some special run-time initialization of its state during program startup—before control reaches the main() entry-point of the target-program. By including the special annotation found at line 1 of Bench.xdc—an example of what's termed an XDCspec @attribute—control will automatically enter a well-known target-function implemented by the module supplier.

Implementing the module (target-domain)

The target-domain implementation of acme.utils.Bench found in Bench.c essentially contains the bodies of three functions: Bench_begin and Bench_end, which we've explicitly spec'd in Bench.xdc; and a special target-function named Bench_Module_startup, which we've implicitly spec'd by adding the @ModuleStartup attribute at line 1 of Bench.xdc.

acme/utils/Bench.c

1

2

3

4

#include <xdc/runtime/Startup.h>
#include <xdc/runtime/System.h>
#include "package/internal/Bench.xdc.h"

#include <time.h>

Int Bench_Module_startup(Int state)
{
    Bench_begin(NULL);
    Bench_end();  	/* first-time calibration benchmark */

    return Startup_DONE;
}

Void Bench_begin(String msg)
{
    if (Bench_enableFlag) {
        module->beginClock = clock();
        module->beginMsg = msg;
    }
}

Void Bench_end()
{
    if (Bench_enableFlag) {
        Int elapsed = clock() - module->beginClock; /* elapsed time between now and last begin() */
        if (module->beginMsg == NULL) {             /* first-time calibration call */
            module->overhead = elapsed;             /* retain elapsed time for later correction */
        }
        else {                                      /* correct elapsed time and print result */
            elapsed -= module->overhead;
            System_printf("%s [%d]\n", module->beginMsg, elapsed);
        }
    }
}

For all practical purposes, the Bench_Module_startup function defined at line 2 simply performs a one-time "dummy" benchmark—triggered by passing NULL to Bench_begin—which internally calibrates the overhead of the timing mechanism itself. To indicate startup processing has completed for this particular module, Bench_Module_startup returns the public constant Startup_DONE spec'd by the xdc.runtime.Startup module.

Turning now to the implementation of Bench_begin starting at line 3, we here see the programming idiom used to reference individual state variables—module->varName. In this case, Bench_begin first assigns module->beginClock the result of calling the standard C clock function and then assigns its string-valued argument to module->beginMsg.

Though not necessarily efficient enough or accurate enough for many embedded applications, our use of clock within the body of Bench_begin should remind us that target-implementations of RTSC modules ultimately operate in the world of C; and that these implementations can still leverage existing C-based libraries whenever appropriate. No different than any other piece of client C code using clock, line 1 of Bench.c includes the standard <time.h> header furnished by the underlying compiler.

Using the same module->varName idiom, the function Bench_end at line 4 accesses the values assigned earlier to beginClock and beginMsg when calculating elapsed time and printing the final result; here too, we rely on the standard clock function to obtain the current time. Note also that the variable module->overhead—representing the amount of time consumed by the timing mechanism itself—receives its value during the startup call to Bench_end occuring after line 2. Needless to say, all of this processing depends upon the module config Bench_enableFlag testing true at runtime; otherwise, the functions Bench_begin and Bench_end effectively become no-ops.

Once again, whole program optimization effectively turns the if tests after lines 3 and 4 into equivalent #if preprocessor directives—here, including/excluding all code from the bodies of Bench_begin and Bench_end conditional upon the value of Bench_enableFlag; either way, no test of Bench_enableFlag need occur at runtime, since the optimizer "knows" the value of this extern const when generating object code. Regarding the module->varName idiom—which on the surface appears somewhat heavyweight—rest assured that manipulating module state costs no more than accessing a static variable in C.

Implementing the module (meta-domain)

Remembering that module suppliers will generally implement in two programming domains, we turn now to the meta-domain implementation of the Bench module found in the source file Bench.xs which comprises definitions of several special XDCscript functions.

acme/utils/Bench.xs
5

6

function module$use()
{
    xdc.useModule('xdc.runtime.Startup');
    xdc.useModule('xdc.runtime.System');
}

function module$static$init(obj)
{
    obj.beginMsg = null;
    obj.beginClock = 0;
    obj.overhead = 0;
}

As in the previous lesson, the special meta-function module$use defined at line 5 identifies all other modules used directly in the target-implementation of Bench and mirrors the initial pair of #include directives seen at the top of Bench.c. Because Bench also relies on internal state variables within its target-implementation, the module's meta-implementation features another special meta-function—module$static$init, used to initialize each of the module's state variables.

The special module$static$init function defined here at line 6 takes as its first argument an XDCscript object whose properties correspond one-to-one with the Module_State fields declared back at line 4 of Bench.xdc. Values assigned to these properties in the meta-domain automatically become statically-initialized fields of a corresponding Module_State variable in the target-domain—similar to how the statically-initialized Bench_enableFlag constant would reflect the last value assigned to the Bench.enableFlag config.

While the initialization performed here is clearly trivial, module$static$init in general can execute arbitrarily complex logic to arrive at a set of initial values for its state variables—such as computing algorithmic tables or building pointer-linked data structures. Remember, the XDCscript meta-language is a full programming language hosted in a rich environment with virtually unlimited resources. Any initialization logic performed in the host-based meta-domain would potentially offset equivalent C code no longer needed in the target-domain—an important optimization that can reduce code-size while accelerating program startup.

At the same time, the target-domain processing performed within the special Bench_Module_startup function defined at line 2 of Bench.c cannot migrate upstream to the meta-domain; put another way, the presence of @ModuleStartup at line 1 of Bench.xdc implies that this particular module demands supplementary initialization not possible within module$static$init. In practice, most modules do not require @ModuleStartup; on the other hand, those modules that do interact directly with underlying peripherals (device drivers, timer managers, and so forth) would require a call during program startup to initialize hardware.

Building the package

Unlike the package examined in Lesson 6, the acme.utils package does not contain any executable programs that use the Bench module—only the sources to Bench itself; Lesson 2 already examined a sample client program that uses Bench. This package consequently features an even more abbreviated build script, one that just calls addLibrary for each active target.

acme/utils/package.bld

var Build = xdc.useModule('xdc.bld.BuildEnvironment');
var Pkg = xdc.useModule('xdc.bld.PackageContents');

for each (var targ in Build.targets) {
    Pkg.addLibrary("lib/" + Pkg.name, targ).addObjects(["Bench.c"]);
}

As ever, you can clean and rebuild the package by invoking xdc clean followed by xdc all from the command-line. Output from the latter command (edited slightly to improve readability) traces all the steps involved in turning the sources of spec'd RTSC modules into libraries of compiled object code.

1

2

3

>> xdc all
making package.mak ...

generating interfaces for package acme.utils ...
    translating Bench

cl64P package/package_acme.utils.c ...
cl64P Bench.c ...
archiving into lib/acme.utils.a64P ...

cl86GW package/package_acme.utils.c ...
cl86GW Bench.c ...
archiving into lib/acme.utils.a86GW ...

all files complete.

As it turns out, the xdc all command internally builds a standard sequence of sub-goals that you can also invoke directly from the command-line:

  • the command xdc .make would run through line 1 and generates an underlying makefile named package.mak after running the current package.bld script;

  • the command xdc .interfaces would run through line 2 and generates (among other files) both the public and internal header for each spec'd module in the current package;

  • the command xdc .libraries would run through line 3 and, for all targets, compiles each module's target-implementation source file(s)—along with some generated C code associated with the package as whole—and then archives the corresponding object files into the appropriate library(s).

As you might imagine, invoking the xdc .libraries command with a trailing suffix—either ,64P or ,86GW in our current environment—would compile and archive only for the designated target.

See also

Using xdc.runtime Startup | How applications boot, run, and shutdown
C - Module_startup | Module's startup initialization function
Command - xdc | eXpanDed C package build command
XDCscript - Module-Body.module$static$init | Initialize module's State object
XDCspec - @ModuleStartup | This module has a startup initialization function
xdc.runtime.Startup.DONE | Client documentation for xdc.runtime.Startup.DONE

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Using xdc.runtime Startup - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Using xdc.runtime Startup

How applications boot, run, and shutdown

Contents

  • 1 Introduction
  • 2 Architecture
  • 3 Boot Sequence and Control Points
    • 3.1 Module Initialization
  • 4 Application Termination
    • 4.1 atexit Handling
    • 4.2 System_exit
    • 4.3 System_abort

Introduction

The xdc.runtime package contains two modules that together provide the minimal set of services necessary to enable modular application startup and shutdown.

  1. Startup - a module that provides a framework for the orderly initialization of modules prior to main(), and
  2. System - a module that provides exit handling similar to that provided by the ANSI C Standard Library atexit() function.

Architecture

The Startup module manages the boot sequence from application start to the application's main() entry point and provides numerous configuration parameters to enable the developer to augment the startup process with custom C code. The System module, on the other hand, provides mechanisms for modules (initialized under the control of Startup) to shutdown.

Boot Sequence and Control Points

This section describes the sequence of events that occurs immediately after a device is reset until execution reaches the application's main() function. It also identifies the specific points during this boot sequence at which user provided functions ("boot hooks") are called.

All targets follow the same set of boot sequence steps. In outline, the target independent boot sequence steps are:

  1. Immediately after CPU reset, perform target-specific CPU initialization to, at a minimum, setup a C call stack.
  2. Run user-supplied reset function (see Startup.resetFxn).
  3. Perform additional target-specific initialization to a complete C execution environment for subsequent steps.
  4. Run user-supplied "first functions" (See Startup.firstFxns).
  5. Run all module initialization functions.
  6. Run user-supplied last functions (See Startup.lastFxns).
  7. Call main().

The reset function (in step 2 above) is run as early as possible in the boot sequence. In fact, for some targets it is called before the C environment is fully initialized; static variables may not be fully initialized, for example. To maximize portablilty, reset functions should only assume that a C stack is initialized.

Although the functions in steps 4-6 are C functions, they are run during normal C++ static object initialization. This has two consequences:

  1. Since the ANSI C++ Language Standard does not provide a means to control the order of execution of static constructors, the initialization of application modules may not run before a C++ constructor runs. If you need to use a module (for memory allocation, for example) before step 6 completes and all modules are initialized, your code must explicitly call Startup_exec() before using any other module in the system. It is safe to call Startup_exec() more than once. So, you may call it from each C++ constructor that needs a module's services.
  2. If you are using a target that does not support C++, you must explicitly call Startup_exec() prior to using any module's services. You can simply call Startup_exec() as the first step in main(), for example.

Specific information about each environment's startup sequence is provided by the topics indexed in the table below.

Target Family | Detailed Boot Sequence Information
TI | TI Compiler Runtime Startup Sequence
Gnu Unix | GNU Native Compiler Runtime Startup Sequence
Microsoft | Microsoft Compiler Runtime Startup Sequence

Module Initialization

The material in this section is primarily for module producers. However, if you have troubles getting your application to successfully run to main() from reset, it may be useful to understand how module's are initialized.

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 (0) and whose final value will eventually be Startup_DONE (-1). 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 Startup.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 a module instance create, 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);
}

Application Termination

There are two "modes" of application termination:

  1. exit - triggered by calls to System_exit() or exit(), manages the expected and orderly shutdown of an application
  2. abort - triggered by calls to System_abort() or abort(), manages the unexpected fatal application errors

The System_exit() function is intended to be used for a graceful termination. The System_abort() is intended for catastrophic termination. The main difference is that the atexit functions (bound via System_atexit or the ANSI Standard Library atexit() function) are executed on a call to System_exit() (or exit()) and not on a call to System_abort(). Applications call abort when continued execution risks further damage to the system; the application must as quickly as possible execute a function that puts and keeps the system in a "safe" state.

atexit Handling

atexit Handling. An atexit function is a function that is called whenever some thread in the application calls either System_exit() or exit(). The System module allows you to configure the number of atexit functions that are bound at runtime via the maxAtexitHandlers configuration parameter (default is 8). The following statements set the maximum number of atexit functions that can be added, via System_atexit(), after the application starts running.

var System = xdc.useModule("xdc.runtime.System");
System.maxAtexitHandlers = 4;

The System module's atexit functions have the following prototype:

typedef Void (*AtexitHandler)(Int status);

The System module's atexit functions are called when a System_exit() is called and the System_atexit() function is used to add a function to the list of functions called. The status parameter passed to System_exit() is passed into each of these atexit functions, and they are executed on a last in first out (LIFO) basis.

if (System_atexit(myExitFxn) == FALSE) {
    /* failed to add myExitFxn atexit function */
}

The System module's atexit functions are independent of the ANSI Standard C Library's atexit functions. During startup, the System module registers a special System_rtsExit() function via the ANSI Standard C Library's atexit() function. During the execution of the ANSI Standard C Library's atexit functions, System_rtsExit() executes all of the System module's atexit functions.

System_exit

System_exit. When called, the System_exit() function performs the following operations:

  1. Calls the standard C runtime exit() function.
  2. Via System_rtsExit (the standard C runtime atexit function that System registered):
    • Enters the System gate,
    • Calls the System module's atexit functions, and finally
    • Calls the Support Proxy's exit function

If the ANSI Standard C Library's exit() function is called instead of the System_exit(), the exit status passed into exit() is not passed to the System module's atexit functions. The constant System_STATUS_UNKNOWN (equal to 0xCAFE) is used instead.

System_abort

System_abort. When called, the System_abort() function performs the following operations

  1. Enters the System gate,
  2. Calls the Support Proxy's abort function, and finally
  3. Calls the standard C runtime abort() function.

Neither the System module's atexit nor standard C runtime atexit functions are executed. If the standard C runtime abort() function is called instead of the System_abort(), the first two steps are not performed.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


C - Module startup - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

C - Module startup

Module's startup initialization function

Contents

  • 1 Synopsis
  • 2 Parameters
  • 3 Description
  • 4 See also

Synopsis

#include "package/internal/«Mod».xdc.h"

Int «Mod»_Module_startup(Int state);

Parameters

state
this parameter serves as "state variable" whose initial value will be Startup_NOTDONE (0) and whose final value will eventually be Startup_DONE (-1). If startup() returns a value other than Startup_DONE, it will be called in a subsequent pass with this return value passed in as the value of state. To ensure this process terminates, no startup function is ever called more than xdc.runtime.Startup.maxPasses times.

Description

Modules that have the @ModuleStartup attribute must implement this startup function, where «Mod» is the name of the module requesting startup support.

For situations in which the startup of one module depends upon another having completed its startup processing, a «Mod»_Module_startupDone() function is also defined, 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 a module instance create, 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);
}

See also

XDCspec - @ModuleStartup | This module has a startup initialization function
xdc.runtime.Startup | Client documentation for xdc.runtime.Startup
Using xdc.runtime Startup | How applications boot, run, and shutdown
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Module-Body.module$static$init - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Module-Body.module$static$init

Initialize module's State object

Contents

  • 1 Synopsis
  • 2 Parameters
  • 3 Description
  • 4 See also

Synopsis

function module$static$init(state, mod)

Parameters

state
a typed object that corresponds to the Module_State declaration
mod
a typed object representing the current module, containing the values of all module-wide configuration parameters

Description

This method initializes the module's state object (declared in by Module_State in the module's specification) based on module-wide configuration parameters.

The values used to initialize state are used to initialize the corresponding target-side module static data. No changes to configuration parameters are allowed here.

See also

XDCscript - Module-Body.module$meta$init | Initialize meta-domain module state
Creating Configurable Content | How to leverage the configuration process

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - @ModuleStartup - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @ModuleStartup

This module has a startup initialization function

Modules with this attribute supply a runtime function, named Mod_Module_startup(), that will be run during application startup by the xdc.runtime.Startup module.

The table below shows the specification and the implementation signature of a startup function for the module Foo. For more information about startup functions, see the reference documentation for the Startup module or Using xdc.runtime Startup.

Specification (Foo.xdc)

@ModuleStartup
module Foo ... {
   :
}
Implementation (Foo.c)

#include <xdc/runtime/Startup.h>

Int Foo_Module_startup(Int state)
{
       :
   return(Startup_DONE);
}
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


module xdc.runtime.Startup
index URL

The xdc.runtime startup bootstrap

  • C synopsis
  • Individual elements
  • DETAILS
  • STARTUP SEQUENCE
  • XDCscript usage
  • Individual elements
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: [ 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
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);
      }
STARTUP SEQUENCE
The following list defines when in the startup sequence the user provided startup functions are being invoked:
  1. CPU is initialized and C stack setup is performed.
  2. 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, while that 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 are called in a loop until all such functions return Startup_DONE or 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.
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 Wed, 08 Dec 2010 20:07:59 GMT


RTSC Module Primer/Lesson 8 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

RTSC Module Primer/Lesson 8

Instance modules — implementing bravo.math.RandGen

Unlike the other modules we've just examined, the RandGen module supports creation and deletion of instances objects which here represent independently parameterized sequences of random-numbers. First used within client programs back in Lesson 3 and Lesson 4, we'll now revisit RandGen from the perspective of its supplier—all while extending some of the programming idioms already encountered in the last two lessons to now handle instance objects throughout their life-cycle.

You might find it helpful to first review the client programming idioms used with any RTSC instance module by quickly glancing at the prog.c and prog.cfg examples in Lesson 3 and Lesson 4.

Contents

  • 1 Specifying the module
  • 2 Implementing the module (target-domain)
  • 3 Implementing the module (meta-domain)
  • 4 Building the package
  • 5 See also

Specifying the module

Like the Bench module of Lesson 7, the RandGen.xdc spec uses the internal keyword to delineate private declarations supporting the module's implementation. But unlike Bench, RandGen.xdc also employs the new XDCspec instance keyword to further demarcate (client-visible) public declarations that only pertain to instance objects.

bravo/math/package.xdc

/*! Collection of math modules */
package bravo.math {
    module RandGen;
};
bravo/math/RandGen.xdc

1

2

3a

3b

4a

4b

5

/*! Random-number sequence generator */
module RandGen {

    /*! Largest possible number in a sequence */
    const Int16 MAXVALUE = (1U << 15) - 1;

instance:

    create();

    /*! Numbers between (0, `range`] */
    config Int16 range = MAXVALUE;

    /*! Random-number seed value */
    config UInt seed = 1;

    /*! Generate the next number in this sequence */
    Int16 next();

    /*! Generate the next `count` numbers in this sequence
     *
     *  @param(buffer) output buffer
     *  @param(count) number of numbers
     */
    Void nextn(Int16 *buffer, Int count);

internal:

    struct Instance_State {
        Int16 range;      /* range parameter value */
        ULong next;       /* next value in sequence */
    };
}

Recalling our note about RTSC standard types back in Lesson 3, the type Int16 implies at least 16-bits of range and may in fact be larger on certain targets. While we strongly recommend use of RTSC standard types like Void and ULong, XDCspec also recognizes legacy C types such as void and unsigned long.

Working down the page, the XDCspec constant declaration at line 1 of RandGen.xdc—familiar syntax to any C programmer—applies module-wide rather than on a per-instance basis. In object-oriented languages such as C++ or Java, you typically distinguish such declarations through use of the static keyword; but because of the inherently object-disoriented nature of C—the implementation language of choice amongst embedded programmers—XDCspec has chosen the opposite approach by instead introducing its own instance keyword as a marker.

In general, you'll find that all per-instance declarations—those following the instance keyword— feel somewhat "incomplete" when seen against typical usage of RandGen configs and functions in the prog.c target-programs of Lesson 3 or Lesson 4:

  • the special create declaration at line 2 lacks any type information, even though the function takes several stock arguments and returns a RandGen_Handle;

  • the per-instance configs spec'd at lines 3a and 3b should seemingly be declared as corresponding fields inside of a special RandGen_Params structure;

  • the per-instance functions declared at lines 4a and 4b have no explicit declaration of their first argument of type RandGen_Handle; and

  • explict declarations of special functions like RandGen_Params_init, RandGen_construct, RandGen_destruct, and RandGen_delete are missing altogether.

Given the pattern-like regularity of the programming idioms used with any RTSC instance module, XDCspec chooses instead to allow suppliers of such modules to focus on declaring their module's unique per-instance features—its configs and functions—without regard for their exact binding in any particular programming language environment. Axiomatic to RTSC, the same module spec already has a realization in the XDCscript-based meta-domain as well as the C-based target-domain, taking on a somewhat different "look-and-feel" in each domain which ultimately reflects the underlying programming language.

The XDCtools product includes an interactive documentation-generation tool for RTSC packages named xdc.tools.cdoc.sg which you can invoke using the standard xs command. Leveraging XDoc comments embedded in module .xdc files contained in each package found along the RTSC package path—the directories comprising the XDCPATH environment variable set back in Lesson 0 together with the special «xdcroot»/packages directory—the cdoc tool presents distinct target-domain and meta-domain views of an otherwise common module spec file, in terms more meaningful to the client-side programmer. In the case of the C-centric target-domain view, the cdoc.sg tool here fills-in all the seemingly "missing" programmatic information absent from the underlying .xdc file.

Unlike the other per-instance functions specified in RandGen.xdc—which each operate on a previously created instance object, passed through an extra argument of type RandGen_Handle in C—the declaration of create at line 2 seems unnecessary and even somewhat misplaced. As it turns out, all of the special functions used throughout the instance object life-cycle—including RandGen_create, with its stock signature—would still be defined for the RandGen module even with line 2 omitted from the spec. We've elected to explicitly mention create here, in part to remind us of the seminal role this function plays when working with instance objects in RTSC; but also (as we will see in a new module introduced in the next lesson) to suggest that the corresponding Mod_create may require additional arguments at the discretion of the module supplier.

Looking past the internal keyword, the struct declaration of Instance_State at line 5 of RandGen.xdc plays a similar role to the Module_State structure used earlier by Bench in Lesson 7—both specify internal state variables used in this module's implementation by declaring fields of a well-known struct. Unlike the Bench module, however, the implementation of RandGen relies only upon per-instance state—a fresh set of internal variables automatically associated with each instance object upon creation.

Many of the new concepts introduced in XDCspec—such as "internal per-instance state variables"—have clear parallels in the world of object-oriented programming, where languages like C++ or Java have explicit support for controlling visibility of class members on a per-function or per-field basis through keywords like public or private; as noted earlier, these languages already use the static keyword to designate class members that remain common all instances—equivalent in concept to module-wide declarations in RTSC. Over time, perhaps, the same XDCspec source file might yield bindings for other target languages such as C++ (arguably more expressive when working with instance objects in general, though certainly less widespread than C inside the embedded programming community).

Implementing the module (target-domain)

The target-implementation found in RandGen.c reveals many of the "missing" details in the RandGen.xdc spec, such as the extra argument passed to each per-instance function or the Params structure used to collect per-instance config values during creation.

bravo/math/RandGen.c

1

2

3

#include "package/internal/RandGen.xdc.h"

Void RandGen_Instance_init(RandGen_Object *obj, const RandGen_Params *params)
{
    obj->range = params->range;
    obj->next = params->seed;
}

Int16 RandGen_next(RandGen_Object *obj)
{
    /* randomize and retain the next sequence value */
    obj->next = obj->next * 1103515245 + 12345;

    /* scale the result to within the sequence's parameterized range */
    return (Int16)((obj->next / (RandGen_MAXVALUE + 1)) % ((ULong)obj->range + 1));
}

Void RandGen_nextn(RandGen_Object *obj, Int16 *buffer, Int count)
{
    Int i;

    /* fill the buffer through repeated calls to RandGen_next */
    for (i = 0; i < count; i++) {
        *buffer++ = RandGen_next(obj);
    }
}

The special target function defined at line 1 effectively serves as a common "back-end" for any client-side calls to RandGen_create or RandGen_construct at runtime. Passed a pointer to a fresh RandGen_Object structure—whose field names match those of Instance_State declared at line 5 of RandGen.xdc—the module's special RandGen_Instance_init function assumes general responsibility for initializing the set of per-instance state variables associated with this newly created object. Once initialized, these very same RandGen_Object structures re-enter the module's target-implementation as first arguments of all per-instance functions (like RandGen_next at line 2 or RandGen_nextn at line 3) where these internal structures become subject to further access and update.

Unlike the Mod_Handle or Mod_Struct types respectively returned by Mod_create and passed to Mod_construct—opaque types from the client's perspective whose internal representation remains hidden—everything becomes transparent with the concrete Mod_Object structures manipulated directly inside the module's implementation. In reality, Mod_Handle is no more than a typedef for Mod_Object* (and Mod_Struct is just an amorphous block of memory at least as large as a concrete Mod_Object); and yet, to emphasize the all-important client-supplier dichotomy within RTSC, we will avoid direct use of a module's (internal) Mod_Object type outside of its implementation.

Continuing with the instance creation pattern from the supplier's perspective, any Mod_Instance_init function will also accept a reference to a (readonly) Mod_Params structure whose client-assignable fields—the module's per-instance configs—often play an important role in shaping the newly created instance object. Since the client will often declare local variables of type Mod_Params before calling Mod_create or Mod_construct, the body of Mod_Instance_init must often retain certain of its per-instance configs in corresponding state variables for later access in the instance life-cycle—as is the case at line 1 of RandGen.c. Note also that Mod_Instance_init receives a special Mod_Params structure initialized with the spec'd defaults for each per-instance config whenever client passes NULL as the corresponding argument to Mod_create or Mod_construct.

Working in C++ or Java, functions like RandGen_Instance_init would become constructors for a corresponding class—responsible for initializing the state of a newly-allocated instance object belonging to this class. Following this pattern, the built-in new operator would supplant client calls to functions like RandGen_create.

Implementing the module (meta-domain)

Turning now to the meta-implementation of RandGen, we once again introduce another special XDCscript function used here to initialize the state of any RandGen instance objects created statically during program configuration.

bravo/math/RandGen.xs
4

function instance$static$init(obj, params)
{
    obj.range = params.range;
    obj.next = params.seed;
}

Seeing past some obvious syntactic differences between XDCscript and C, the instance$static$init function defined at line 4 of RandGen.xs becomes a configuration-time clone of the runtime RandGen_Instance_init function defined at line 1 of RandGen.c. Similar to how Bench used module$static$init in Lesson 7 to statically initialize its module-wide state, the instance$static$init function at line 4 would here yield a statically-initialized RandGen_Object structure in the target-domain.

Unlike initialization of module-wide state—which occurs just once in the meta-domain, barring any supplemental processing required at program startup—initialization of per-instance state objects can occur multiple times and in either domain. With clients of the RandGen module able to repeatedly call RandGen.create in the meta-domain as well as RandGen_create (or RandGen_construct) in the target-domain, the supplier of RandGen must effectively provide two implementations of the same back-end functionality to support instance creation in general.

Building the package

Like the acme.utils package examined in Lesson 6, the bravo.math package only builds libraries; you'll find sample client programs that consume this package back in Lesson 3 and Lesson 4. The build script for this package contains one minor twist, however.

bravo/math/package.bld

1
2

3

var Build = xdc.useModule('xdc.bld.BuildEnvironment');
var Pkg = xdc.useModule('xdc.bld.PackageContents');

var LIB_NAME = "lib/" + Pkg.name;
var LIB_SRCS = ["RandGen.c"];

for each (var targ in Build.targets) {
    Pkg.addLibrary(LIB_NAME, targ).addObjects(LIB_SRCS);
}

As programmers, we're continually reminded to avoid placing arbitrary constants in the middle of executable code and instead to define meaningful symbolic names at the top of our source files; we've done just that at lines 1 and 2 of package.bld. Besides improving the readability of line 3, this technique simplifies the maintenance of more complex build scripts that contain multiple module source files or perhaps more that one named library for each target.

Lest we forget, package.bld is a program (albeit one that executes in the meta-domain) and XDCscript is a general-purpose programming language. But that's a good thing, since we can now apply the same sorts of techniques we already know from working with C to keep our source code simple yet flexible.

See also

C - Instance_init | Module's instance initialization function
Command - xdc.tools.cdoc.sg | Interactive package documentation tool
XDCscript - Instance-Body.instance$static$init | Statically initialize a target module's instance object

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


C - Instance init - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

C - Instance init

Module's instance initialization function

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

#include "package/internal/«Mod».xdc.h"

/* non-@InstanceInitError modules only */
Void «Mod»_Instance_init(«Mod»_Object *obj, const «Mod»_Params *params)

/* @InstanceInitError modules only */
Int «Mod»_Instance_init(«Mod»_Object *obj, const «Mod»_Params *params , Error_Block *eb)

Description

Modules that support instances must implement this initialization function, where «Mod» is the name of the module. The type signature of this function depends on whether (or not) «Mod» has the @InstanceInitError attribute. If «Mod» is declared with @InstanceInitError, an Error_Block pointer is passed to this function and this function can fail (by raising an error with this Error_Block pointer); otherwise, it must always succeed.

If «Mod»_Instance_init() fails, its return value is passed, largely uninterpreted, to «Mod»_Instance_finalize() to allow finalization to more easily cleanup any partially created state.

«Mod»_Instance_init() must never return -1; this one distinguished value is used internally to know if the state argument should be passed to «Mod»_Instance_finalize. Returning -1 from «Mod»_Instance_init() will result in an uninitialized value being passed to «Mod»_Instance_finalize()!

See also

C - create | Allocate and initialize a new instance object and return its handle
C - construct | Initialize a new instance object inside the provided structure
C - Instance_finalize | Module's instance finalization function
XDCspec - @InstanceInitError | This module's instance initialization can fail
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Command - xdc.tools.cdoc.sg - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Command - xdc.tools.cdoc.sg

Interactive package documentation tool

Contents

  • 1 Synopsis
  • 2 Description

Synopsis

xs xdc.tools.cdoc.sg [{package|module|interface} ...] [options ...]

For a complete description of this tool's options, see its static Cdoc reference page xdc.tools.cdoc.sg. Alternatively, you can view this reference documentation using the the tool itself!

% xs xdc.tools.cdoc.sg xdc.tools.cdoc.sg

Description

The xdc.tools.cdoc.sg tool can be used to interactively browse the documentation of package contained in any collection of repositories. When you start this tool it will, by default, show all packages found along the current package path.

You see the "cdoc" window with a tree view of the RTSC packages available to you. All of these packages provide documentation that can be displayed by the CDOC viewer.

Click "+" next to a directory to expand its list of packages. Click "+" next to a package name to see the list of modules it provides. You can further expand the tree to see a list of the functions provided by a module. Double-click on a package or module to see its reference information or simply hover over an item in the tree for a brief summary.

For each topic you view, there is a tab across the top of the page area. You can use these to quickly return to other pages you have viewed. You can also use the arrows next to "Views" to move backward and forward in your history of page views.

To close a page and remove its tab, click the X on the tab.

To directly view a package's documentation without having to navigate through the tree list, simply pass the name of the package (or module) on the command line. For example, to view the xdc.tools.cdoc.sg tools reference documentation (using itself!), type the following command:

% xs xdc.tools.cdoc.sg xdc.tools.cdoc.sg
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Instance-Body.instance$static$init - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Instance-Body.instance$static$init

Statically initialize a target module's instance object

Contents

  • 1 Synopsis
  • 2 Parameters
  • 3 Description
  • 4 Example
  • 5 See also

Synopsis

function instance$static$init(obj, [r1, ...,] params, mod)

Parameters

obj
the instance object to be initialized
params
the instance config parameters. This structure contains fields for each instance config parameter declared in the module's spec file as well as a distinguished field named instance. The instance field is another structure containing the common instance parameters declared by xdc.runtime.IInstance.
mod
the module that manages this instance
r1, ...
the required create parameters declared in the create methods of the module. If no parameters are declared, then only obj and params are passed to this function.

Description

This function is called to initialize the instance object obj. No changes in configuration parameters are allowed, but the instance object's state may be initialized as a function of its parameters.

For information about the order in which module and instance functions are invoked, see Creating Configurable Content.

Example

Mod.xs

function instance$static$init(obj, prms)
{
    obj.x = 0;
    /* print the name for this instance */
    if (prms.instance.name != null) {
        print("creating instance named '" + prms.instance.name + "'");
    }
}

See also

XDCscript - Instance-Body.instance$meta$init | Initialize a meta-only module's instance
XDCscript - Module-Object.create | Create a new Instance object managed by this unit
Creating Configurable Content | How to leverage the configuration process

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


RTSC Module Primer/Lesson 9 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

RTSC Module Primer/Lesson 9

Modules, packages, and testing — bringing it all together

The example presented in this lesson—considerably richer than any we've seen so far—once again reinforces material covered earlier while simultaneously introducing some more programming idioms. After first examining a new module that illustrates further dimensions of the instance object life-cycle, we'll then touch upon the all-important topic of module testing. Here, we'll explore a simple organizational pattern involving a pair of RTSC packages—one containing modules, another containing test programs—which the xdc command can nevertheless manage as an integrated set.

Being our last programming example, we've tried to forge a "grand finale" that not only brings together many of the principal themes established in earlier lessons but also exposes a few advanced aspects of RTSC demanding deeper investigation on your part moving forward. Our next (and final) lesson will direct you towards other documentation resources found in the RTSC-Pedia that build upon everything you've already learned about programming in RTSC.

Contents

  • 1 Specifying the module
  • 2 Implementing the module (target-domain)
  • 3 Implementing the module (meta-domain)
  • 4 Testing the module
  • 5 Managing a test-suite
  • 6 See also

Specifying the module

The module acme.filters.Fir manages instance objects representing finite-impulse-response filters, each parameterized with their own set of coefficients and each maintaining their own internal history. After creating a filter instance, client applications would use the per-instance function apply to transform a frame of input data into a corresponding frame of output—as you'll see later on in one of the module's test programs. Now, however, we'll focus on the Fir module from the perspective of its supplier and highlight some extensions to the general programming idioms for instance modules first introduced in Lesson 8.

acme/filters/package.xdc

/*! Collection of DSP filter modules */
package acme.filters {
    module Fir;
};
acme/filters/Fir.xdc

1
2

3

4

/*! Simple Finite Impulse Response (FIR) filter */
@InstanceInitError
@InstanceFinalize
module Fir {

instance:

    /*! Number of data-values per frame */
    config Int frameLen = 64;

    /*! Create a new filter
     *
     *  @param(coeffs)      filter coefficients
     *  @param(coeffsLen)   number of coefficients
     */
    create(Int16 coeffs[], Int coeffsLen);

    /*! Apply this filter and update its internal history
     *  @param(inFrame)    readonly frame of input data
     *  @param(outFrame)   next frame of output data
     */
    Void apply(Int16 inFrame[], Int16 outFrame[]);

internal:

    struct Instance_State {
        Int16 coeffs[];         /* create argument */
        Int coeffsLen;          /* create argument */
        Int frameLen;           /* instance config */
        Int16 history[];        /* filter history */
    }
}

As hinted in the last lesson, the declaration of create at line 3 of Fir.xdc includes additional arguments—here, an array of coefficients used internally by the per-instance function apply when filtering a frame of input data. Unlike per-instance configs—which each have a "reasonable" default value that clients can elect not to overwrite—callers of a corresponding Mod_create function declared with additional arguments must pass a corresponding set of values.

As a design guideline for module suppliers, you should prefer per-instance configs (with suitable defaults, of course) over required arguments to Mod_create whenever possible. As your module evolves over time, adding new per-instance configs (with defaults) would not require existing clients to change their source code; for technical reasons beyond the scope of this Primer, your clients wouldn't even need to re-compile their sources against your module's newly-generated header declaring its newly-expanded Mod_Params structure. You would not, however, have the same flexibility to change the overall signature of Mod_create over time without explicitly breaking source-level compatibility in your existing client code-base.

Anticipating the target-implementation of Fir (coming momentarily), the Instance_State declaration beginning at line 4 of Fir.xdc includes a history array whose length is a function of coeffsLen and frameLen. This suggests that instances objects created dynamically through client calls to Fir_create or Fir_construct would internally lead to further dynamic allocation of this history array from some suitable memory heap. Details aside for a moment, the new @InstanceInitError attribute back at line 1 declares that intializing per-instance state inside Fir can potentially raise an error (say, if memory were unavailable). Similarly, the @InstanceFinalize attribute at line 2 declares that the Fir target-implementation will explicitly intercept client calls to Fir_delete or Fir_destruct—presumably to free the previously-allocated history array associated with the current instance object.

Though independent from one another in theory, this pair of XDCspec attributes often appear together in practice: internal resource acquisition performed during instance creation can, in general, fail (@InstanceInitError); and resources successfully acquired upon instance creation must subsequently be relinquished during instance deletion (@InstanceFinalize).

Implementing the module (target-domain)

Turning now to Fir.c, pay particular attention to the expanded signature of Fir_Instance_init—which generalizes the Mod_Instance_init pattern first seen in the context of RandGen back in Lesson 8. You should also take note of Fir_Instance_finalize—another special function supporting one particular aspect of the instance object life-cycle.

acme/filters/Fir.c

1

2

3

4

#include <xdc/runtime/Error.h>
#include <xdc/runtime/Memory.h>
#include "package/internal/Fir.xdc.h"

#include <string.h>

static SizeT historySize(Fir_Object *obj)    /* helper function */
{
    return (obj->coeffsLen + obj->frameLen - 1) * sizeof (Int16);
}

Int Fir_Instance_init(Fir_Object *obj, Int16 coeffs[], Int coeffsLen,
                      const Fir_Params *params, Error_Block* eb)
{
    obj->coeffs = coeffs;
    obj->coeffsLen = coeffsLen;
    obj->frameLen = params->frameLen;

    obj->history = Memory_calloc(NULL, historySize(obj), 4, eb);
    return 0;
}

Void Fir_Instance_finalize(Fir_Object *obj, Int status)
{
    Memory_free(NULL, obj->history, historySize(obj));
}

Void Fir_apply(Fir_Object *obj, Int16 inFrame[], Int16 outFrame[])
{
    Int i, j;
    Int32 sum;

    Int coeffsLen = obj->coeffsLen;
    Int frameLen = obj->frameLen;

    Int16 *history = obj->history;
    Int16 *coeffs = obj->coeffs;

    memcpy(&history[coeffsLen - 1], inFrame, frameLen * sizeof (Int16));

    for (j = 0; j < frameLen; j++) {
        sum = 0;
        for (i = 0; i < coeffsLen; i++) {
            sum += history[i + j] * coeffs[i];
        }

        *outFrame++ = (Int16)(sum >> 15);
    }

    memcpy(history, &history[frameLen], (coeffsLen - 1) * sizeof (Int16));
}

If you've had any prior experience with FIR filters, our "textbook" implementation of Fir_apply beginning at line 4 should seem straightforward. But if you don't have a clue what's happening inside this function, don't worry about it—nothing more will be said about Fir_apply. Rather, our focus here remains on the instance object life-cycle in general and the functions Fir_Instance_init and Fir_Instance_finalize in particular.

Turning first to the definition of Fir_Instance_init beginning at line 2, its expanded signature results from two separate declarations found in the module's spec file:

  • the create declaration at line 3 of Fir.xdc contributed the additional coeffs and coeffsLen arguments, which are subsequently retained in the instance object; and

  • the @InstanceInitError declaration at line 1 of Fir.xdc contributed the additional eb argument, which is subsequently used to handle memory allocation errors.

As already hinted, Fir_Instance_init internally calls upon Memory_calloc to allocate and zero-fill a block of memory large enough to hold the history array associated with this instance object. Generalizing the familiar calloc function of standard C, the extra arguments to Memory_calloc give the caller additional degrees of control:

  • arg #1 designates the heap to use for the allocation, with NULL implying a system-wide default;
  • arg #2 designates the number of bytes to allocate, here returned by historySize defined at line 1;
  • arg #3 designates the addressing alignment for the allocation, represented by a power-of-two; and
  • arg #4 passes an Error_Block* used to raise/handle errors, with NULL triggering a default strategy.

The last argument passed to Memory_calloc of course tracks the eb argument passed to Fir_Instance_init; and this eb argument in turn reflects the last argument passed by the client to Fir_create or Fir_construct—which also happens to be of type Error_Block*. Once again, passing NULL as this final argument would trigger a default error strategy—typically, print an appropriate message and then abort execution whenever the program raises an error. In the case of the Fir_Instance_init function defined back at line 2, a NULL value for eb here implies that control would not return from Memory_calloc should the latter function raise an out-of-memory error.

Our next and final lesson will direct you to documentation specifically illustrating each facet of the xdc.runtime.Error module. Offering a step-up from the age-old practice in C of simply returning "status-codes"—which clients ignore anyway—the Error module drives some discipline and structure in the raising/handling of runtime errors, more aligned with modern software practices (think Java exceptions) but without the runtime overhead normally associated with these mechanisms (think C++ exceptions).

Besides contributing its eb argument, the original @InstanceInitError declaration back at line 1 of Fir.xdc also changed the return type of the Fir_Instance_init function from Void to Int. In general, the value returned from this form of the Mod_Instance_init function serves as a completion status which, if non-zero, signifies some sort of failure has occurred while initializing the current instance object and that the function has abruptly returned. In the latter case, RTSC effectively reverses the effects of the outstanding call to create or construct by performing the internal equivalent of a delete or destruct call on the current instance object.

The Fir_Instance_finalize function defined at line 3 of Fir.c effectively complements Fir_Instance_init, relinquishing any resources successfully acquired in the latter function. Automatically invoked in response to client calls to Fir_delete or Fir_destruct, the Instance_finalize function here calls Memory_free within arguments similar to those passed earlier to Memory_calloc after line 2. Note that since Fir_Instance_init returns a completion status (due to @InstanceInitError), RTSC automatically forwards this value to Fir_Instance_finalize if non-zero. Client-initiated calls to Fir_delete or Fir_destruct—implying an earlier corresponding call to Fir_create or Fir_construct had succeeded—pass 0 as the status argument to Fir_Instance_finalize.

Notwithstanding our earlier comment about xdc.runtime.Error and status-codes, the status value returned by Mod_Instance_init and forwarded to Mod_Instance_finalize generally enables the latter function to quickly ascertain (say, using a C switch statement) just how much "clean-up" processing the current instance object may require. With functions like Memory_free and Mod_delete already acting like idempotent no-ops when passed NULL arguments (and with Mod_Object structures automatically zero-initialized by RTSC), module suppliers can often layout Mod_Instance_finalize functions as "straight-line" code laced with appropriate case labels testing successively higher status values returned from Mod_Instance_init, with the (normal) case of 0 executing the entire function from top to bottom. Beside emphasizing that finalization truly reverses the effects of initialization, this technique typically yields faster and more compact implementations of Mod_Instance_finalize functions.

Implementing the module (meta-domain)

The new dimension of memory allocation in the target-function Fir_Instance_init results in corresponding additions to the special XDCscript meta-function instance$static$init defined in Fir.xs. Here, however, the history array associated with each statically-created instance object is likewise statically-allocated.

acme/filters/Fir.xs
1

2
3

4

var Error, Memory, Program;

function module$use()
{
    Error = xdc.useModule('xdc.runtime.Error');
    Memory = xdc.useModule('xdc.runtime.Memory');
    Program = xdc.useModule('xdc.cfg.Program');
}

function instance$static$init(obj, coeffs, coeffsLen, params)
{
    obj.coeffs = coeffs;
    obj.coeffsLen = coeffsLen;
    obj.frameLen = params.frameLen;

    Memory.staticPlace(obj.history, 4, null);
    obj.history.length = historySize(obj);
}

function historySize(obj)    /* helper function */
{
    var sz =  Program.build.target.stdTypes.t_Int16.size;
    return (obj.coeffsLen + obj.frameLen - 1) * sz;
}

Since RTSC happens to invoke the special function module$use before instance$static$init, we've leveraged the former function to initialize some file-level variables declared at line 1. In the case of Memory—referencing the xdc.runtime.Memory module—instance$static$init invokes one of its meta-functions at line 2 to statically locate the history array associated with the current instance object. While clearly different from the target-side call to Memory_calloc back at line 2 of Fir.c, the 2nd and 3rd arguments to Memory.staticPlace analogously designate the addressing alignment and memory section (heap) used for this allocation.

Lesson 10 will direct you towards an appropriate User's Guide containing a series of examples that focus upon the xdc.runtime.Memory module, not only its more common usage in the target-domain but also its role in guiding the placement of statically-allocated data from within the meta-domain.

Following an idiom rooted in JavaScript, we've dimensioned obj.history at line 3 of Fir.xs by simply assigning to the special length property available on all XDCscript arrays. In this case, we've used a (private) historySize meta-function defined in Fir.xs in exactly the same way as Fir_Instance_init used a (private) historySize target-function defined at line 1 of Fir.c. Though highly "dynamic" in the meta-domain, obj.history (like obj itself) at the end of the day becomes a static C variable in the target-domain.

The Program.build property—yet another XDCscript object with many more properties of its own—encapsulates a wealth of information about the build context of the program currently being configured. One piece of information contained therein reflects the current program's RTSC target, whether originally named through an addExecutable call inside a package.bld script or else through a -t option to an xs xdc.tools.configuro command inside a client makefile. The Program.build.target object in turn has further properties that enable us to ascertain (among other things) the actual size of a standard type (here, Int16) on this particular target; use of this rather long-winded idiom at line 4 of Fir.xs directly parallels the C sizeof operator appearing after line 1 of Fir.c.

Testing the module

Suppliers of RTSC modules—like all good software engineers—will no doubt maintain a suite of test programs that systematically exercise all client-visible features of each module ("black-box" tests) as well as various aspects of each module's internal implementation ("white-box" tests). Consider, for example, a black-box test of acme.filters.Fir that applies a newly-created filter to a known frame of data and outputs the results. As a byproduct, this test program also uses the acme.utils.Bench module to measure the elapsed time of the call to Fir_apply.

FirTest1.c

1

2

#include <acme/filters/Fir.h>
#include <acme/utils/Bench.h>
#include <xdc/runtime/System.h>

#define COEFFSLEN 4
#define FRAMELEN 20

static Int16 coeffs[COEFFSLEN] = {20000, 21000, 22000, -3000};

static Int16 inFrame[FRAMELEN] = {0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9};
static Int16 outFrame[FRAMELEN];

static Void printOut();

Int main()
{
    Fir_Handle fir;
    Fir_Params params;

    Fir_Params_init(&params);
    params.frameLen = FRAMELEN;

    fir = Fir_create(coeffs, COEFFSLEN, &params, NULL);  /* create filter */
    Bench_begin("\t--> Portable Baseline");              /* start benchmark */
    Fir_apply(fir, inFrame, outFrame);                   /* run filter */
    Bench_end();                                         /* stop and display timing */
    printOut();                                          /* display results */
    Fir_delete(&fir);                                    /* delete filter */

    return 0;
}

static Void printOut()
{
    Int i;
    String comma = "";

    System_printf("\toutFrame = {");
    for (i = 0; i < FRAMELEN; i++) {
        System_printf("%s%d", comma, outFrame[i]);
        comma = ",";
    }
    System_printf("}\n");
}

As you would expect, the call to Fir_create at line 1 above takes two additional arguments, matching the declaration back at line 3 of Fir.xdc; and as we already noted, all of these parameters (including the NULL-valued Error_Block*) eventually arrive at Fir_Instance_init defined at line 2 of Fir.c. Similarly, the call to Fir_delete at line 2 above would internally invoke Fir_Instance_finalize defined at line 3 of Fir.c.

Turning to the corresponding meta-program for FirTest1, configuring the Bench module here takes on a new twist.

FirTest1.cfg

var Program = xdc.useModule('xdc.cfg.Program');

var Bench = xdc.useModule('acme.utils.Bench');
var Fir = xdc.useModule('acme.filters.Fir');
var System = xdc.useModule('xdc.runtime.System');

Bench.enableFlag = (Program.build.target.isa == "64P");

Once again, we've leveraged the wealth of information attached to the special xdc.cfg.Program module—here, to conditionally assign Bench.enableFlag based on the current program's target. Though somewhat contrived since Bench does work on all targets (though perhaps with less-than-useful accuracy on some), this fragment nevertheless illustrates a RTSC meta-programming technique that often eliminates the need for an #ifdef __64plus__ preprocessor directives in the corresponding target-program.

Not that C #ifdef directives are necessarily bad (though they often lead to ever-compounding clutter within never-quite-finished source files), you can largely avoid using #ifdef's altogether through the potent combination of meta-domain configuration, whole-program optimization, plus some design-patterns involving RTSC interfaces—the central focus of a companion Primer we'll have more to say about in the next lesson. Wherever and whenever possible, RTSC promotes a "write-once" approach to module implementation (especially in the target-domain) where a single C source file—one that's clean, readable, robust, and ultimately finished—can be effectively re-used across a wide range of targets, platforms, and applications without constant modification.

Managing a test-suite

Though we've only presented a single test program here, you could well imagine a package with multiple modules that in turn each implement multiple functions having multiple test programs—dozens, if not hundreds; and the problem only compounds itself when a single supplier offers multiple packages (acme.filters, acme.utils, and so on).

As in last few lessons, the package.bld script for a package like acme.filters will only build target libraries containing compiled implementations for each module in the package—but no executable programs.

acme/filters/package.bld

var Build = xdc.useModule('xdc.bld.BuildEnvironment');
var Pkg = xdc.useModule('xdc.bld.PackageContents');

var LIB_NAME = "lib/" + Pkg.name;
var LIB_SRCS = ["Fir.c"];

for each (var targ in Build.targets) {
    Pkg.addLibrary(LIB_NAME, targ).addObjects(LIB_SRCS);
}

Instead, all executable test programs pertaining to the acme.filters package will themselves reside in another package named (by convention) acme.filters.test that otherwise contains no modules. The package.xdc spec file for this new package in turn explicitly requires (using a new XDCspec keyword) the presence of other RTSC packages upon which the content of acme.filters.test in someway depends—including, but not limited to, our original acme.filters package.

acme/filters/test/package.xdc
1

requires acme.filters;
requires acme.utils;

/*! Companion tests for acme.filters */
package acme.filters.test {
    /* no modules */
};

Turning now to the package.bld script for our acme.filters.test package—which easily scales when managing more than one test—the script features a doubly-nested for each loop used to not only iteratively build the same test program for multiple targets but to iterate over a set of tests as well.

acme/filters/test/package.bld

var Build = xdc.useModule('xdc.bld.BuildEnvironment');
var Pkg = xdc.useModule('xdc.bld.PackageContents');

var TEST_NAMES = ["FirTest1"];

for each (var targ in Build.targets) {
    for each (var testName in TEST_NAMES) {
        Pkg.addExecutable(testName, targ, targ.platform).addObjects([testName + ".c"]);
    }
}

We've said it before, and we'll say it again—package.bld is a program. And like any program written in any programming language, for loops enable us to aggregate a "closed" set of processing statements that otherwise can operate across an "open-ended" set of data values—in this case, the names of the individual tests in our test-suite. Taking this one step further, the names of the tests themselves often exhibit a pattern-like regularity—such as ModTesti—that itself suggests further opportunities for nested for loops; and complex mappings that share a common meta-program .cfg file across a set of related target-program .c files might be captured in a corresponding XDCscript data object likewise processed through some generic iterators. Whatever the case may be, you can "shape" the package.bld script to best reflect the inherent structure of the problem at hand.

In practice, development of modules inside a package like acme.filters and development of test programs for these modules inside a package like acme.filters.test will proceed in parallel. To streamline the repetitive re-builds of either package as well as to ensure both packages remain in sync with one another before executing any tests, we'll rely upon an extended form of the xdc command that operates on a set of packages designated using the -P option and its variants.

xdc [goal ...] -P pkg-dir ... | build goal(s) in each package directory
xdc [goal ...] -PR dir ... | build goal(s) in all packages found by recursively searching each directory
xdc [goal ...] -PD pkg-dir ... | build goal(s) in each package directory along with all dependent packages

For example, you could invoke a single xdc test -PR . command from within the «examples»/acme/filters directory to systematically build both packages before executing all test programs. Or, if you prefer, sitting inside the «examples»/acme/filters/tests package you can achieve the same results by invoking xdc test -PD . which automatically recognizes acme.filters as a dependent package (per line 1 of its package.xdc spec). In the latter case, the -PD option will also re-build the dependent acme.utils package—just in case you happened to make a change to (say) the Bench module.

All we can say about this incredibly powerful generalization of the already-potent xdc command is: try it, you'll like it!

See also

Command - xdc | eXpanDed C package build command
XDCspec - @InstanceInitError | This module's instance initialization can fail
XDCspec - @InstanceFinalize | This module's instances require finalization
xdc.runtime.Error.Block | Client documentation for xdc.runtime.Error.Block

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - @InstanceInitError - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @InstanceInitError

This module's instance initialization can fail

This attribute is applicable only to modules with instances. If this attribute is specified for a module, its internal instance initialization function (Mod_Instance_init) is passed an Error_Block pointer (as its third parameter) so that it can raise an error. In addition, this function must always return a non-negative integer value. If an error is raised, the return value from this function is passed to any Mod_Instance_finalize method (in the second parameter)

If Mod_Instance_init returns -1, the finalize method is not passed a second parameter(!) and, depending on how the finalize method uses this parameter, may result in undefined program behavior(!).

The examples below illustrate the instance initialization method signature for a module named Foo both with and without the @InstanceInitError attribute.

with @InstanceInitError

#include <xdc/runtime/Error.h>
#include "package/internal/Foo.xdc.h"

Int Foo_Instance_init(Foo_Object *obj, const Foo_Params *params, Error_Block *eb)
{
       :
    return (0);
}

without @InstanceInitError

#include "package/internal/Foo.xdc.h"

Void Foo_Instance_init(Foo_Object *obj, const Foo_Params *params)
{
       :
}
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - @InstanceFinalize - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @InstanceFinalize

This module's instances require finalization

This attribute is applicable only to modules with instances. If this attribute is specified for a module, its internal instance finalize function (Mod_Instance_finalize) is called when the instance is deleted, destructed, or if the instance initializer returns an error (see @InstanceInitError ). The finalize method is passed two input parameters:

  1. the pointer to the instance object being deleted, and
  2. an integer status value; if @InstanceInitError is also specified, this status is either the return value from Mod_Instance_init or 0, otherwise this status value is not initialized.

The fragments below illustrates the instance finalize method signature for a module named Foo both with and without the @InstanceInitError attribute.

with @InstanceInitError

#include "package/internal/Foo.xdc.h"

/* state is the return value of Foo_Instance_init() */
Void Foo_Instance_finalize(Foo_Object *obj, Int state)
{
    /* use state to know what needs to be finalized */
       :
}

without @InstanceInitError

#include "package/internal/Foo.xdc.h"

Void Foo_Instance_finalize(Foo_Object *obj)
{
       :
}
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


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 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 Void | (*Error_raiseHook// The function to call whenever an error is raised)(Error_Block*);
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_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 Void (*Error_raiseHook)(Error_Block*);
VALUES
eb — non-NULL pointer to an Error_Block
Even if the client passes a NULL error block pointer, this parameter is always non-NULL.
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.
SEE
maxDepth
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;
VALUES
eb — non-NULL pointer to an Error_Block
Even if the client passes a NULL error block pointer, this parameter is always non-NULL.
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.
SEE
maxDepth
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 Wed, 08 Dec 2010 20:07:58 GMT


RTSC Module Primer/Lesson 10 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

RTSC Module Primer/Lesson 10

Next steps — learning more about RTSC

Contents

  • 1 From modules to interfaces
  • 2 More on packaging and scripting
  • 3 The xdc.runtime package
  • 4 See also

Well, you've made it this far—so now, you may ask, what's next.... While we've already included numerous links to a wide range of RTSC-Pedia resources in the See also sections at the end of each lesson, let's pull back a little and consider several paths forward where you can learn more about RTSC as well as apply in practice what you've already mastered.

From modules to interfaces

The RTSC Interface Primer literally picks-up where this document leaves off, bringing abstract RTSC interfaces into the picture as a way of specifying common client-visible behavior across an open-ended family of concrete RTSC modules—each inheriting and implementing the same abstract interface. The lessons within this Primer systematically re-work modules we've already developed in Lessons 7-9, rendering them more flexible and scalable than before.

This path leads to more advanced—but critically important—aspects of RTSC which elevate the standard C language to entirely new heights by enabling higher-level programming and higher-levels of performance.

More on packaging and scripting

Both the RTSC Packaging Primer and RTSC Scripting Primer do for these core subjects what this document has already done for modules—provide a graduated technical introduction to one of the fundamental dimensions of RTSC programming. While you've already seen some inner-workings of RTSC packages beginning with Lesson 5—and you've certainly seen the wide range of roles played by XDCscript from the very outset—this pair of Primers explores the broader capabilities of packaging and scripting independent of RTSC modules.

Besides rounding out your knowledge of RTSC fundamentals, this path prepares you for the vital task of incrementally migrating existing bodies of C code into the world of RTSC.

The xdc.runtime package

An entire segment of the XDCtools User's Guide binder addresses all aspects of this all-important package, some of whose modules—Error, Memory, Startup, and System—we've briefly encountered within this document. Starting with an overview of xdc.runtime as a whole, a series of documents systematically addresses each of the RTSC modules (and interfaces) contained within this package: initially, from the perspective of the module consumer wishing to use xdc.runtime; but eventually, from the perspective of the module producer wishing to extend this core package.

Complementing the more didactic approach taken by the RTSC Programming Primers, this path focuses upon pragmatic issues involved in using RTSC within your tooling environment and (re-)targeting RTSC for your hardware platform.

See also

RTSC Interface Primer | Working with spec'd target modules in the abstract
RTSC Packaging Primer | Producing and consuming packaged content
RTSC Scripting Primer | Working with content in the meta-domain
Overview of xdc.runtime | Introduction to the xdc.runtime package

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


RTSC Interface Primer - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

RTSC Interface Primer

Working with spec'd target modules in the abstract

This Primer introduces RTSC interfaces, used to abstract the functionality of spec'd target modules. Picking up where the companion RTSC Module Primer leaves off, we'll take the production and consumption of ordinary (concrete) modules to a whole new level of generality through the use of (abstract) RTSC interfaces.

Along the way, we'll probe ever-deeper into XDCspec and XDCscript—two special-purpose languages that work hand-in-hand with standard C in a symbiotic alliance of programmatic capabilities that RTSC names eXpanDed C:

  • As for XDCspec, we'll formally introduce interface as a language keyword, taking its place alongside module and package as the one of the programmatic pillars upon which all of RTSC rests.

  • As for XDCscript, we'll leverage its general-purpose programmability within ever-more sophisticated meta-content used to build, configure, and test ever-more sophisticated target-content.

As an overarching objective, RTSC promises a higher-level form of C programming—one suitable for developing, delivering, and deploying real-time software components—but without sacrificing overall system performance through additional runtime overhead. With RTSC interfaces just in front of us—along with the all-important proxy-delegate design pattern that composes RTSC modules using RTSC interfaces—we can now declare: You're finally here!

Contents

  • 1 Who's the audience
  • 2 What we'll cover
  • 3 How to proceed
  • 4 See also

Who's the audience

Needless to say, we assume you've studied—and hopefully retained—much of the material covered in the RTSC Module Primer. Your ability to not only consume but also produce RTSC modules will become axiomatic to working with RTSC interfaces—which, as you'll come to appreciate, abstract the behavior of entire families of conforming RTSC modules.

In all other respects, our presumptions about your software background and experience remain the same:

  • you've worked with the C programming language, preferably in developing embedded applications;
  • you don't necessarily have any experience with object-oriented programming or languages; but
  • you are at least curious about how RTSC can take C programming to an entirely new level.

As for RTSC itself, we require neither prior knowledge of its concepts nor practical experience with the XDCtools product—other than what you've already mastered from reading the RTSC Module Primer.

What we'll cover

We've structured the Primer as a graduated series of lessons, reinforcing concepts and idioms fundamental not only to producing and consuming RTSC modules but also to abstracting the behavior of these modules through RTSC interfaces.

Lesson 11 | Module abstraction — specifying & implementing the IGen interface
Lesson 12 | Proxy modules — generalizing the implementation of Bench
Lesson 13 | Proxy modules — managing target-specific Fir implementations
Lesson 14 | Abstract testing — benchmarking IFir implementations
Lesson 15 | Abstract instances — techniques for creating IGen objects

To further emphasize how all of this material ultimately builds upon the foundation laid down by the RTSC Module Primer, you'll notice we've numbered these Lessons 11-15. Without exception, each lesson of the Interface Primer will revisit programming examples covered in earlier lessons within the Module Primer—but now, through the use of RTSC interfaces, will render these examples more flexible, more portable, and hence more re-usable.

How to proceed

No different than before—that is, iteratively.... More than ever we encourage making several passes through these lessons, which actually pack quite of bit of (new) information as they move from one example to the next. As before, don't feel compelled to actually run any of the programming examples in your initial reading(s) of this material—stay in "read-only" mode instead, and focus instead on grasping the underlying concepts before the programming mechanics.

Installing the examples. Even if you don't plan to run the programming examples at this time, you might consider installing the examples for reference. Unlike the earlier Module Primer—which faithfully reproduced all of the example code within the body of the document—we'll now omit portions of a source file not pertinent to the discussion at hand; or, we'll simply omit certain (trivial) files from the discussion altogether, inviting you to browse the code instead.

You'll find the examples here, distributed as a single .zip file which you should unpack into the same «examples» directory populated back in Lesson 0. Note that we've created new package names for the (new) examples presented in Lessons 11-16, so you can indeed install these packages in the same «examples» repository used earlier.

See also

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


RTSC Packaging Primer - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

RTSC Packaging Primer

Producing and consuming packaged content

This Primer puts RTSC packages front-and-center. Initially focusing on how you (playing the role of "client") would consume content delivered as RTSC packages within your programming environment, we'll eventually explain how you (playing the role of "supplier") could just as easily produce RTSC packages that would house your own programmatic content—consumed in turn by others as part of a larger RTSC application.

Along the way, the Primer will introduce two special-purpose languages which (working hand-in-hand with standard C) create a synergistic blending of programming capabilities that RTSC terms eXpanDed C:

  • XDCspec serves as RTSC's specification language—used here to define the programmatic boundaries of packages and their content as a formal contract between client and supplier; and

  • XDCscript serves as RTSC's meta-language—used here by suppliers/clients to programmatically control host-based processes for producing/consuming packaged content throughout its life-cycle.

Acknowledging general industry trends towards fielding flexible, re-usable software components—but also recognizing the challenges of achieving these ideals with C alone—the eXpanDed C model exemplified throughout the Primer effectively takes ever-familiar processes of building and running C programs to entirely new heights.

With C (still!) serving as the implementation language of choice for resource-constrained embedded systems, an overarching objective of RTSC becomes introducing higher-level programmatic constructs not found in the standard C language—such as packages—which ultimately enable embedded software developers to efficiently and effectively manage ever-more complex and sophisticated applications.

Contents

  • 1 Who's the audience
  • 2 What we'll cover
  • 3 How to proceed
  • 4 See also

Who's the audience

Needless to say, we assume you know C. But we also assume you're a software practitioner quite comfortable with the overall flow of building and running C programs—especially on embedded hardware platforms. At the end of the day, RTSC starts with concepts and processes already familiar to C programmers—and then takes these to an entirely new level.

We don't, however, expect you've had any prior experience (or even exposure) to object-oriented programming using languages such as C++ or Java; and we certainly don't presume any knowledge of software components from an academic perspective. By the same token, those of you with some general background in modern software design techniques should find many of the principles underlying RTSC in general (and packaging in particular) familiar, natural, and almost obvious.

But as we've already said, RTSC starts and ends with C. For embedded C programmers who often ask "what's next" as their applications grow ever larger and more complex—and who recognize a growing gap between C and more modern programming languages like Java—RTSC may fill an important void for you.

What we'll cover

We've structured the Primer as a series of lessons that successively build upon one another, constantly reiterating and reinforcing concepts and idioms fundamental to producing and consuming RTSC packages and their content.

Lesson 0 | Getting started — installing examples and tools
Lesson 1 | Basic concepts — deploying the acme.utils package
Lesson 2 | Repository management — deploying charlie_mathsuite_2_71
Lesson 3 | Client Applications — consuming deployed package content
Lesson 4 | Elementary Packages — producing charlie.sqrtlib.samples
Lesson 5 | Package Build — compiling charlie.sqrtlib libraries
Lesson 6 | Package Release — manufacturing charlie.sqrtlib archives
Lesson 7 | Program Configuration — selecting charlie.sqrtlib libraries
Lesson 8 | Package Test — managing a charlie.sqrtlib test suite
Lesson 9 | Product Bundles — producing charlie_mathsuite_2_71
Lesson 10 | Next steps — Learning more about RTSC

Except for the first and last lesson, the remaining lessons each center around small self-contained examples that illustrate common programming idioms used when producing or consuming any RTSC package. Lessons 1-3 initially focus on the client perspective of a package, covering the basics of installing and deploying RTSC packages as well as general programming patterns used when consuming C-based content (headers and libraries) delivered therein.

Lesson 4 switches gears, focusing now on RTSC packages from the supplier's perspective using the simplest of all packages as an illustration. Lessons 5-8 then address on one of real "sweet-spots" of RTSC—packaging C language headers and libraries that we can build, test, release, deliver, and deploy as an indivisible unit. Last but not least, Lesson 9 takes up the all-important topic of aggregating multiple RTSC packages into a single product bundle.

How to proceed

Iteratively.... This Primer actually packs quite a bit of (new) information inside each successive lesson, warranting several passes through the material. Start by simply navigating from one lesson to the next, picking up what you can by quickly skimming the content. And even when you circle back for a more thorough reading of each lesson, don't feel compelled to run any of the programming examples at that time—you can always operate in "read-only" mode and still learn quite a bit about the process of producing and consuming RTSC packages.

You might also find it helpful to slice the Primer into several pieces, first tackling the material in Lessons 1-3 on the client's view of RTSC packages before moving on to the supplier's perspective in Lesson 4-9; you should also pay particular attention to the fundamentals of package production laid out in Lessons 4 and 5 before diving into the more advanced material that follows. Having said all of this, we do not recommend skipping any of the latter lessons within the Primer: producing robust RTSC packages that deliver programmatic content is simply too important—and too easy—for you not to master.

Though we've made the examples available as a separate download, you can generally just "copy-and-paste" source code fragments directly off the page:

prog.c
1

2

#include <stdio.h>

int main()
{
    printf("Hello World\n");
    return 0;
}

Throughout the lessons, we'll refer to individual lines in these examples using symbols like 1 or 2. Besides matching the corresponding labels tagging the example code, these symbols serve as live links that will return you to the original example should it have already scrolled off the screen.

FYI.... We'll occasionally interject some additional commentary on the material at hand in this format, usually providing deeper insights into a particular aspect of RTSC. In some cases, these inline comments provide a glimpse into the larger world of RTSC programming for which this Primer will prepare you.

And finally, other than resources listed in a See also section at end of each Lesson, you'll find virtually no links to other RTSC-Pedia documents until the final Lesson; we just want you to stay focused on the material at hand before jumping off elsewhere. If you are, however, looking for an overview of RTSC from 10,000 feet—something to read before hitting the ground—our Introducing RTSC white-paper should satisfy you. Else, if you're a C programmer ready to produce and consume some RTSC packages, proceed onward.

See also

Introducing RTSC | Learning about Real-Time Software Components
High-Level FAQs | General questions about Real-Time Software Components

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


RTSC Scripting Primer - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

RTSC Scripting Primer

Working with content in the meta-domain

NOTE: Check back or add this page to your watch list for updates....

See also

The XDCscript Language | XDCscript overview
XDCscript Language Reference | Elements of the RTSC meta-language

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


RTSC Interface Primer/Lesson 11 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

RTSC Interface Primer/Lesson 11

Module abstraction — specifying & implementing the IGen interface

We'll begin by introducing a new module named SineGen which, like the RandGen module of Lesson 8, manages instance objects representing distinct numeric sequences. Using the per-instance function SineGen_next, clients can retrieve successive values of a sine wave generated by an underlying object; and using per-instance configuration parameters for designating frequency and sampling rate, clients can shape the characteristics of the generated sine wave when creating a SineGen instance.

While you certainly wouldn't expect any sharing of code in the implementation of these two modules—the algorithms and state variables for generating random numbers and sine waves have little in common—the specification of RandGen and SineGen reveals an obvious similarity in their external behavior which we'll then formally capture as a RTSC interface named IGen.

Contents

  • 1 Another sequence generator
  • 2 Abstracting RandGen and SineGen
  • 3 Implementing IGen modules
  • 4 Further abstracting SineGen
  • 5 See also

Another sequence generator

Though we've gone out of our way to basically clone SineGen.xdc from the original RandGen.xdc, preserving common feature names wherever possible, differences nevertheless arise between the specs of these otherwise similar modules. For instructional purposes, we've omitted some important details here to facilitate a more meaningful side-by-side comparison.

RandGen.xdc

1a

/*! Random-number sequence generator */
module RandGen {

    const Int16 MAXVALUE = (1U << 15) - 1;

instance:

    create();

    config Int16 range = MAXVALUE;
    config UInt seed = 1;

    Int16 next();
    Void nextn(Int16 *buffer, Int count);

internal:
    /* implementation details ... */
}
SineGen.xdc

1b

/*! Sine wave sequence generator */
module SineGen {

    const Int16 MAXVALUE = (1U << 15) - 1;

instance:

    create();

    config Int range = MAXVALUE;
    config Int freq = 1;
    config Int rate = 256;

    Int16 next();
    Void nextn(Int16 *buffer, Int count);

internal:
    /* implementation details ... */
}

Dismissing some obvious differences we'd expect to find following the XDCspec internal keyword in each spec file—remember, these modules share nothing in their underlying implementations—the per-instance configs declared after lines 1a and 1b respectively reflect unique aspects of creating RandGen versus SineGen instances. But except for assigning these few configs, you could easily imagine virtually identical client programs using these two modules.

RandGenProg.c

2a

3a

#define COUNT 10

Int main()
{
    RandGen_Handle rgInst;
    RandGen_Params rgParams;
    Int i;

    RandGen_Params_init(&rgParams);
    /* selectively assign configs ... */
    rgInst = RandGen_create(&rgParams, NULL);

    for (i = 0; i < COUNT; i++) {
        System_printf("%d ",
            RandGen_next(rgInst));
    }
    System_printf("\n");

    return 0;
}
SineGenProg.c

2b

3b

#define COUNT 10

Int main()
{
    SineGen_Handle sgInst;
    SineGen_Params sgParams;
    Int i;

    SineGen_Params_init(&sgParams);
    /* selectively assign configs ... */
    sgInst = SineGen_create(&sgParams, NULL);

    for (i = 0; i < COUNT; i++) {
        System_printf("%d ",
            SineGen_next(sgInst));
    }
    System_printf("\n");

    return 0;
}

Interesting to note, had we instead passed NULL to the Mod_create calls at lines 2a and 2b—accepting default values for all per-instance configs—this pair of client programs would become perfect clones of one another. Regardless of how we've created rgInst and sgInst, though, both programs use identical logic to manipulate these instance objects around lines 3a and 3b.

Lesson 15 explores techniques for effectively collapsing these sorts of "program clones" into a single generic client application that could comprehend any sort of sequence-generation module—present or future.

Abstracting RandGen and SineGen

As programmers, we're constantly looking for opportunities to remove unnecessary redundancy from our source code. Termed the DRY principle by others—meaning Don't Repeat Yourself—good software engineering practice encourages us to define programmatic entities no more than once. Indeed, the very thought of taking a "copy-and-modify" approach to software construction—whether specifying new modules or developing client programs—should always propel us to find a single, more generic solution to the problem at hand.

Clearly, the specs of RandGen and SineGen afford us with ample opportunities to find some common ground that captures the essence of both modules—indeed, all modules that manage instance objects representing distinct numeric sequences. Consider, then, our first XDCspec interface definition canonically named stdsorg.math.IGen.

stdsorg/math/package.xdc

/*! Abstract math support */
package stdsorg.math {
    interface IGen;
};
stdsorg/math/IGen.xdc

1

2

/*! Abstract sequence generator */
interface IGen {

   /*! Largest possible number in a sequence */
   const Int16 MAXVALUE = (1U << 15) - 1;

instance:

   create();

    /*! Numbers between (0, `range`] */
    config Int16 range = MAXVALUE;

   /*! Generate the next number in this sequence */
   Int16 next();

   /*! Generate the next `count` numbers in this sequence
    *
    *  @param(buffer) output buffer
    *  @param(count) number of numbers
    */
    Void nextn(Int16 *buffer, Int count);
}

Unlike RTSC modules—characterized by a public specification and an internal implementation—a RTSC interface by itself has no implementation; you'll never see the keyword internal in an interface spec like IGen.xdc, and you'll never find a corresponding IGen.c file implementing the functions declared in this interface. Put another way, a RTSC interface is "pure spec"—an abstraction that ultimately defines an open-ended family of conforming modules that each implement a common set of specified functions in their own unique manner.

A bit of history.... The concept of an abstract interface devoid of any implementation first achieved prominence with the IDLs or interface definition languages [sic] that lie at the heart of component-models like COM and CORBA, used in concert with C++ several decades ago; interestingly enough, C++ still hasn't admitted interface into its set of language keywords, though as a practical matter one can simulate the construct through disciplined use of (non-final) classes defining only constants, types, and so-called pure virtual functions. More recently, languages like Java and C# took the logical next-step and elevated the concept of an abstract interface to first-class status through a corresponding keyword; XDCspec has simply followed the lead of others. Though embodied a little differently in each language environment, one common practice surrounding interfaces seems to have stuck from outset—a convention whereby the names of interfaces always begin with 'I', as in IGen. We don't plan to rock the boat here.

To declare its potential membership in such a family, a module simply inherits a previously defined interface as the conceptual starting point for its own specification. As an illustration, the (new) package bravo.math2 contains a RandGen and a SineGen module that each inherit the stdsorg.math.IGen interface. Compared with the original bravo.math.RandGen module introduced back in Lesson 8, our new RandGen.xdc only contains declarations not already covered within the IGen.xdc interface definition.

bravo/math2/package.xdc

requires stdsorg.math;

/*! Collection of math modules */
package bravo.math2 {
    module RandGen;
    module SineGen;
};
bravo/math2/RandGen.xdc

3

4

/*! Random-number sequence generator */
module RandGen inherits stdsorg.math.IGen {

instance:

    /*! Random-number seed value */
    config UInt seed = 1;

internal:

    struct Instance_State {
        Int16 range;  /* range parameter value */
        ULong next;   /* next value in sequence */
    };
}

The inherits clause on line 3 conceptually prefixes our new RandGen.xdc spec with all of the declarations following line 1 of IGen.xdc, as if we had explicitly written them out—which we originally did back in Lesson 8. In general, a RTSC module that inherits a RTSC interface will extend the latter's spec by introducing additional client-visible features. In the case of RandGen, line 4 of its module spec introduces another per-instance config (named seed) above and beyond the range config already declared back at line 2 of IGen.xdc.

The spec for bravo.math2.SineGen follows suit, not only by inheriting stdsorg.math.IGen but also by augmenting the programmatic features already defined in this interface with additional client-visible elements.

bravo/math2/SineGen.xdc

5

6

7

8

/*! Sine wave sequence generator */
module SineGen inherits stdsorg.math.IGen {

    /*! Size of internal sine table */
    config Int sineTabSize = 256;

instance:

    /*! Sine wave frequency */
    config Int freq = 1;

    /*! Sine wave sample rate */
    config Int rate = 256;

internal:

    /*! internal sine table supporting generation */
    config Int16 sineTab[];

    struct Instance_State {
        Int shift;  /* gain adjustment factor */
        Int step;   /* index increment value */
        Int index;  /* current table index */
    };
}

Besides a pair of per-instance configs declared after line 6, SineGen also extends the IGen spec with a module-wide configuration parameter named sineTabSize declared at line 5. This config enables SineGen clients to control the size of an internal table of sine values used in the implementation of SineGen_next, essentially allowing generation of higher-frequency sine waves by increasing the module's memory footprint.

As you'll see momentarily in the implementation of the SineGen module, we've elected to represent the sine table itself as an internal module-wide config declared at line 7—a static array of const data in the target-domain that we'll dimension and initialize in the meta-domain. To maximize runtime performance, you should always prefer module-wide configs over state variables whenever representing readonly information in the target-domain.

Beyond the special Module_State or Instance_State structure definitions seen in most of our examples, the internal section of a module .xdc file can declare other sorts of programmatic entities—constants, types, configs, even functions—that in some way support the module's private implementation; and of course, all of these internal declarations logically remain hidden from the client.

Implementing IGen modules

Before turning to SineGen—and its rather noteworthy technique of leveraging meta-domain functions to compute target-domain data-sets—let's quickly address the implementation of bravo.math2.RandGen which (like SineGen) inherits much of its specification from the stdsorg.math.IGen interface. As you've already seen, despite migrating to the new bravo.math2 package—and now featuring a more concise XDCspec source file—the module's internal details haven't changed from the original RandGen.xdc file from Lesson 8.

And now comes the interesting part.... The implementation of bravo.math2.RandGen is absolutely identical to the RandGen.c target-implementation first seen in Lesson 8; and ditto for the RandGen.xs meta-implementation seen later on in the same lesson. Even though the new RandGen module inherits client-visible functions like next and nextn from the IGen interface, the module supplier continues to implement these functions as if we had directly specified them in RandGen.xdc—which, by virtue of the inherits clause at line 3 of this file, we effectively have.

Each RTSC module defines a distinct programmatic scope that in turn introduces named elements such as configs or functions; and like any scope, no two elements contained therein can have the same name. By inheriting a RTSC interface—which itself may declare other elements—an heir module basically pre-populates its own scope with a common set of declarations. The names of any additional elements specified by the inheriting module cannot, of course, conflict with any earlier declarations associated with the inherited interface.

Like RandGen, the target-implementation of SineGen contains no direct reference to the IGen interface—as if we had explicitly declared the functions next and nextn in SineGen.xdc.

bravo/math2/SineGen.c

1

2

#include "package/internal/SineGen.xdc.h"

Void SineGen_Instance_init(SineGen_Object *obj, const SineGen_Params *params)
{
    Int r;

    obj->shift = 15;
    for (r = params->range; r > 0; r >>= 1) {
        --obj->shift;
    }

    obj->step = SineGen_sineTabSize * params->freq / params->rate;
    obj->index = 0;
}

Int16 SineGen_next(SineGen_Object *obj)
{
    Int res;

    res = SineGen_sineTab[obj->index] >> (obj->shift);
    obj->index = (obj->index + obj->step) % SineGen_sineTabSize;

    return res;
}

Void SineGen_nextn(SineGen_Object *obj, Int16 *buffer, Int count)
{
    Int i;

    for (i = 0; i < count; i++) {
        *buffer++ = SineGen_next(obj);
    }
}

The function SineGen_next defined at line 2 retrieves successive values in the sequence by stepping through the data held in the internal sineTab config and then scaling the result. The special Instance_init function defined at line 1 computes the obj->step value based on the module-wide config sineTabSize as well as the per-instance configs freq and rate; the per-instance config range similarly determines the value for obj->scale used later.

Turning to the meta-domain, SineGen.xs defines two of the special functions seen in earlier module implementations.

bravo/math2/SineGen.xs

3

4

5

function module$static$init(obj, mod)
{
    mod.sineTab.length = mod.sineTabSize;
    var incr = Math.PI / (mod.sineTabSize / 2);

    for (var i = 0; i < mod.sineTabSize; i++) {
        mod.sineTab[i] = Math.round(Math.sin(incr * i) * mod.MAXVALUE);
    }
}

function instance$static$init(obj, params, mod)
{
    obj.shift = 15;
    for (var r = params.range; r > 0; r >>= 1) {
        --obj.shift;
    }

    obj.step = mod.sineTabSize * params.freq / params.rate;
    obj.index = 0;
}

Starting at the bottom, the meta-function instance$static$init beginning at line 5 tracks the corresponding Instance_init target-function defined back at line 1 in an obvious way (but with C's use of the underscore and arrow replaced here with the "object-oriented" dot notation of XDCscript). Though normally not necessary, this particular implementation of instance$static$init leverages a special third argument which references the current module—SineGen in this case—and provides direct access to module-wide configs such as sineTabSize.

With the internal config sineTab serving as a module-wide resource, the special meta-function module$static$init hence assumes responsibility for dimensioning our sine wave table at line 3 as well as assigning its individual elements at line 4. Note that the global identifier Math refers here to a built-in XDCscript object whose named properties—PI, round, and sin—represent corresponding mathematical constants and functions.

Here too, the special meta-function module$static$init uses an extra argument named mod to access module-wide properties such as sineTab and MAXVALUE. Unlike C, XDCscript functions can omit naming any trailing arguments like mod (and even params) when not needed within the function's implementation.

Further abstracting SineGen

As we'll see throughout this Primer, one could imagine several viable implementations for a module like SineGen—say, by making trade-offs between time and space or between speed and accuracy; indeed, one could even imagine several of these implementations co-existing in the same target program. But every RTSC module must stay a singleton—a unique pairing of a specification and an implementation together associated with a (long) globally-unique name such as bravo.math2.SineGen.

Though suppliers and clients alike will invariably employ short names such as SineGen_sineTab or SineGen_next when either implementing or using a module like bravo.math2.SineGen in the target-domain, these names in fact represent generated #define aliases that expand to the actual C identifier associated with each spec'd config or function—bravo_math2_SineGen_sineTab__C or bravo_math2_SineGen_next__E in this case. From the linker's perspective, no more than one definition of these symbols can of course occur within any particular program image. Though somewhat unnerving at first, long canonical identifiers prefixed with globally-unique package names and suffixed with a well-defined set of codes can actually help developers and integrators alike pinpoint the source of programming errors originating inside different packages produced by different suppliers.

Given the uniqueness constraint imposed upon each RTSC module, multiple implementations of the same module essentially implies multiple modules—each individually and distinctly named—that otherwise would share common elements in their respective specifications. Once again, we can express this commonality through an abstract interface that specifies those client-visible features characterizing any module that purports to generate sine waves.

ISineGen.xdc

1

2

/*! Abstract sine wave generator */
interface ISineGen inherits stdsorg.math.IGen {

instance:

    /*! Sine wave frequency */
    config Int freq = 1;

    /*! Sine wave sample rate */
    config Int rate = 256;
}

As you might have already imagined from looking at line 1, potential heirs of our original stdsorg.math.IGen interface can in general include any sort of spec'd RTSC unit—not just concrete modules like bravo.math2.RandGen or bravo.math2.SineGen but other abstract interfaces (such as ISineGen) as well. Here again, inheritance of stdsorg.math.IGen effectively pre-populates the ISineGen scope with a set of named elements that include the per-instance config range and the per-instance function next; the declarations beginning at line 2 of ISineGen.xdc then proceed to extend the scope of this interface with additional elements pertinent to sine wave generation.

By refactoring the interface hierarchy along these lines, the spec of our original SineGen module would now contain only those declarations relevant to the (unique) implementation of this particular module. Applying this pattern more broadly, you could imagine a family of modules that all provide the same external functionality—that spec'd in the ISineGen interface—but implemented differently from one module to the next.

SineGen.xdc

/*! Sine wave sequence generator */
module SineGen inherits ISineGen {

    /*! Size of internal sine table */
    config Int sineTabSize = 256;

instance:
    /* nothing to add here */

internal:

    /*! internal sine table supporting generation */
    config Int16 sineTab[];

    struct Instance_State {
        Int shift;  /* gain adjustment factor */
        Int step;   /* index increment value */
        Int index;  /* current table index */
    };
}
SineGenA.xdc

/*! Sine wave sequence generator A */
module SineGenA inherits ISineGen {
    /* additional client features */
internal:
    /* implementation details */
}

SineGenB.xdc

/*! Sine wave sequence generator B */
module SineGenB inherits ISineGen {
    /* additional client features */
internal:
    /* implementation details */
}

Remarkably, despite these changes in the inheritance hierarchy—reflected in the more abbreviated SineGen.xdc spec seen here—the source of our original SineGen.c target-implementation would remain absolutely identical.

See also

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


RTSC Interface Primer/Lesson 12 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

RTSC Interface Primer/Lesson 12

Proxy modules — generalizing the implementation of Bench

As in the last lesson, we'll once again define a single RTSC interface that abstracts external functionality shared across a family of RTSC modules—each with their own unique implementation of an otherwise common set of client-visible functions. But unlike the last lesson—which emphasized implementing concrete modules like SineGen that inherited abstract interfaces like ISineGen—the focus here will now extend to using these sorts of abstracted modules from the client's perspective.

To illustrate, we'll revisit the implementation of the Bench module first seen in Lesson 7 and then—by relying upon an abstract interface used internally within Bench.c—will actually render the module even more adaptable (and hence reusable) than before. This particular design technique—termed the proxy-delegate pattern—has proven so overwhelmingly practical and so widely applicable that RTSC has actually promoted the concept to first-class keyword status within the XDCspec language.

Contents

  • 1 Abstracting the clock function
  • 2 Alternate IClock implementations
  • 3 Using a spec'd proxy module
  • 4 Considerations for configuration
  • 5 See also

Abstracting the clock function

Recalling some fragments of our earlier implementation of acme.utils.Bench in the target-domain, we've relied here on direct calls to the standard C function clock to obtain the current time.

acme/utils/Bench.c

#include <xdc/runtime/Startup.h>
#include <xdc/runtime/System.h>
#include "package/internal/Bench.xdc.h"

#include <time.h>

    ...
Void Bench_begin(String msg)
{
    if (Bench_enableFlag) {
        module->beginClock = clock();
        module->beginMsg = msg;
    }
}

Though theoretically supported by any ANSI C compiler—and hence by any RTSC target—practically speaking the clock function implementation supplied with many tool chains often proves inadequate for use within deeply embedded systems. Indeed, some cross-compilers targeting "bare-deck" CPUs without operating system support will simply stub out the body of clock altogether; embedded programs requiring clock services in these sorts of systems may instead rely upon a timer peripheral in the underlying hardware platform or perhaps a free-running instruction-cycle counter supported by the CPU itself.

Given a range of possible implementations for the clock function—and coupled with the possibility that several of these alternate implementations may need to co-exist within the same program—let's postulate a new RTSC interface canonically named acme.utils2.clocks.IClock that specs a single function for retrieving the current time.

acme/utils2/clocks/IClock.xdc

1

2

/*! Abstract clock */
interface IClock {

   /*! Time value type */
   typedef Bits32 TimeValue;

   /*! Get the current time */
   TimeValue getTime();
}

Unlike the IGen or ISineGen interfaces seen in the last lesson, the abstract functionality captured within the IClock interface would apply module-wide rather than per-instance; inheriting modules would implement the getTime function spec'd at line 2 without any additional argument representing some sort of instance object handle. To make IClock a little more expressive, we've elected to define a logical type at line 1 corresponding to our chosen representation for time values—an unsigned integer of exactly 32-bits, implied by our use of the built-in RTSC type Bits32.

Here's one area where RTSC interfaces diverge from similarly-named constructs in Java or C#: interfaces in these languages can only declare functions that apply to (class) instances. But with modules playing a central role in RTSC programming—and with modules naturally embodying the object-disorientation of C—it seems only logical to allow RTSC interfaces to abstract any client-visible elements normally found in RTSC module specs.

Alternate IClock implementations

ClockStd. Given that the Bench module originally relied upon direct calls to the standard C clock function—certainly appropriate in some environments—this immediately suggests one possible IClock implementation in which the getTime function directly calls clock. Consider, then, the portable acme.utils2.clocks.ClockStd module which first inherits and then implements the acme.utils2.clocks.IClock interface.

acme/utils2/clocks/ClockStd.xdc

1

/*! Portable IClock module */
module ClockStd inherits IClock {
    /* no additional features or internal details */
}
acme/utils2/clocks/ClockStd.c

2

3

#include "package/internal/ClockStd.xdc.h"

#include <time.h>

ClockStd_TimeValue ClockStd_getTime()
{
    return (ClockStd_TimeValue) clock();
}

Note that since the ClockStd module and the IClock interface both reside in the same acme.utils2.clocks package (and hence in the same namespace), we need not reference IClock with its fully-qualified name at line 1. In general, excessive use of canonical names in any source file tends to impair readability; whenever possible, we'll prefer mechanisms that allow us to name RTSC modules or interfaces using their short names instead.

As you'll see with the next IClock module —which does not reside in the acme.utils2.clocks package—the XDCspec language supports a special import statement that enables us to reference modules/interfaces from other packages using short names, as if they were defined locally.

Looking now at line 2 of ClockStd.c, we should once again emphasize that target-implementations of RTSC modules can freely #include legacy header files that declare legacy functions. In the case of clock—declared of type long in <time.h>—we've explicitly cast its result at line 3 to match the return type of getTime originally specified in IClock.xdc. As with the target-implementation of any module inheriting an interface, references to all names spec'd in the interface become C identifiers prefixed with the name of the module—getTime becomes ClockStd_getTime and TimeValue becomes ClockStd_TimeValue.

Finally, because our target-implementation does not rely upon any internal variables requiring static initialization, we can field an empty implementation in the meta-domain by simply omitting the usual ClockStd.xs file that would otherwise contain definitions of special functions like module$static$init.

In a similar way, you could imagine modules whose spec contains no target functions at all—only client-visible constants, types, and even module-wide configs; in these cases, you could likewise omit the usual Mod.c file that would otherwise contain definitions of target-domain functions.

Clock64P. As it turns out, all Texas Instruments TMS320C64+ processors—the family of CPUs covered by the ti.targets.C64P RTSC target—support a free-running on-chip counter with 64-bits of resolution, providing a very efficient means for measuring elapsed execution time at the granularity of a single instruction cycle. Consider, then, an alternate implementation of the acme.utils2.clocks.IClock interface by a Clock64P module residing in a different package—say, txn.clocks which might contain similar modules supporting other families of Texas Instruments processors.

txn/clocks/Clock64P.xdc
1

2

import acme.utils2.clocks.IClock;

/*! TMS320C64+ IClock module */
@ModuleStartup
module Clock64P inherits IClock {
    /* no additional features or internal details */
};

txn/clocks/Clock64P.c

3

4

5

#include <xdc/runtime/Startup.h>
#include "package/internal/Clock64P.xdc.h"

extern volatile cregister unsigned int TSCL;

Int Clock64P_Module_startup(Int state)
{
    TSCL = 0;
    return Startup_DONE;
}

Clock64P_TimeValue Clock64P_getTime()
{
    return (Clock64P_TimeValue) TSCL;
}
txn/clocks/Clock64P.xs

6

function module$use()
{
    xdc.useModule('xdc.runtime.Startup');
}

As we mentioned earlier, the import statement at line 1 effectively adds the identifier IClock to the txn.clocks package namespace, which in turn allows us to avoid using a fully-qualified name in the inherits clause at line 2. Though perhaps a little pedantic in this particular situation, the import statement proves particularly helpful when the current spec contains multiple references to individual RTSC units—concrete modules as well as abstract interfaces. The current spec can then reference client-visible elements defined within the scope of these modules or interfaces using a UnitName.elementName idiom.

Turning now to the Clock64P.c file—a body of C code clearly tied to the TMS320C64+ processor and compiler tools—the target-implementation simply declares, enables, and then subsequently reads a special on-chip cycle counter named TSCL at lines 3, 4, and 5 respectively. Given its dependency on xdc.runtime.Startup by virtue of the @ModuleStartup attribute before line 2 of Clock64P.xdc, the (non-empty) meta-implementation in Clock64P.xs predictably contains a corresponding xdc.useModule directive at line 6.

Using a spec'd proxy module

Returning to Bench.c—which will no longer call the clock function directly, but will instead presumably use some concrete module that inherits the IClock interface—we now have an interesting dilemna: the target-domain implementation of Bench simply cannot know the true identity of the IClock module it will actually use at runtime; some sort of indirection appears necessary in the source code, so that we can compile Bench.c once and for all.

One could imagine solving this problem using C preprocessor directives that #define a well-known macro inside of Bench.c, a macro which would then expand (at compile-time) into an explicit call to some concrete IClock module; similar techniques would ensure inclusion of the client header file associated with the chosen IClock module. This implies, of course, that any client of Bench has access to the module's implementation source files—something module suppliers in general may not elect to make broadly available; it also imposes some additional integration steps outside of the standard RTSC configuration flow we've used consistently from the very outset. Needless to say, we reject this approach.

To maintain the anonymity of the actual IClock module used inside Bench.c, we'll rely upon a special proxy module whose (auto-generated) implementation simply forwards any calls it may receive to an associated delegate module—the true provider of the requested service. Unlike an ordinary RTSC module (or RTSC interface)—"top-level" units contained within the namespace of some package—specifying a RTSC proxy actually resembles declarations of other module-wide features that themselves reside with the scope of some containing module (or interface). Consider, now, our new spec for acme.utils2.Bench.

acme/utils2/Bench.xdc
1

2

import acme.utils2.clocks.IClock;

/*! Benchmark timing support */
@ModuleStartup
module Bench {

    /*! Selectable IClock service provider */
    proxy PClock inherits IClock;

    /*! Enable/disable benchmark functions */
    config Bool enableFlag = true;

    /*! Start the benchmark */
    Void begin(String msg);

    /*! End the benchmark and print the current time */
    Void end();

internal:

    struct Module_State {
        String beginMsg;    /* current begin() message */
        Int beginClock;     /* begin() start time */
        Int overhead;       /* timing overhead factor */
    };
}

Consistent with other scoped features like enableFlag, we'll reference the PClock proxy declared at line 2 as Bench_PClock within the target-domain and as Bench.PClock within the meta-domain; but unlike enableFlag, we're not talking about Bool values here. Using the same sort of inherits clause seen in earlier examples, we've effectively spec'd the module type of our PClock proxy—it belongs to the family of modules inheriting the IClock interface.

Setting aside for the moment how we'll actually bind the PClock proxy to some suitable delegate module—which of course must inherit IClock—use of the proxy within Bench.c has a familiar look-and-feel. Once again, we'll show only a fragment of Bench.c to illustrate idiomatic use of proxy modules within target-implementations.

acme/utils2/Bench.c

1

2

#include <xdc/runtime/Startup.h>
#include <xdc/runtime/System.h>
#include "package/internal/Bench.xdc.h"
    ...
Void Bench_begin(String msg)
{
    if (Bench_enableFlag) {
        module->beginClock = Bench_PClock_getTime();
        module->beginMsg = msg;
    }
}

Unlike "top-level" modules such as xdc.runtime.Startup whose associated client header requires explicit inclusion, the Bench module's self-contained internal header already read in at line 1 automatically enables use of the Bench_PClock proxy module without requiring any further #include directives. Typical calls to proxy functions such as Bench_PClock_getTime at line 2—even with their slightly longer C identifiers—remain completely consistent with every other RTSC programming idiom we've already seen in target-domain implementations.

For consistency with interface names (such as IClock), our examples will always use proxy names (such as PClock) that begin with a 'P'. Unlike the nearly universal 'I' naming convention used with interfaces, current use of proxies in packages like xdc.runtime favors even longer names (such as ClockProvider or ClockSupplier). For now, though, we'll stick with the more predictable PClock proxy that inherits the IClock interface.

Considerations for configuration

Within the meta-domain, a proxy such as PClock becomes an assignable property of the Bench module, not unlike module-wide configs such as enableFlag. A top-level prog.cfg meta-program might then look like this.

prog.cfg

1a

2a

var Bench = xdc.useModule('acme.utils2.Bench');
var Clock64P = xdc.useModule('txn.clocks.Clock64P');

if (Program.build.target.isa == "64P") {
    Bench.PClock = Clock64P;
    Bench.enableFlag = true;
}

Here again, explicit inclusion of the chosen IClock delegate module at line 1a followed by its assignment to Bench.PClock at line 2a leverages familiar meta-domain programming idioms you've seen all along. Note also that XDCscript enforces strict type-checking when binding delegate modules to proxies; assigning (say) the bravo.math2.SineGen module to Bench.PClock provokes the same sort of fatal type error as when assigning (say) the value 123 in lieu of a boolean to Bench.enableFlag.

Lesson 14 illustrates a technique for passing arguments to meta-programs like prog.cfg, enabling them to remain independent of any particular RTSC target (ti.targets.C64P) by removing explicit references to target-dependent modules (txn.clocks.Clock64P).

Unlike configs in general—which typically have default values—XDCspec (currently) provides no means for specifying a default proxy-delegate binding whenever Bench.PClock remains unassigned after prog.cfg completes execution in the meta-domain; rather, Bench.PClock—as with all RTSC proxies—takes on null as its default value. By convention, then, the meta-implementation of Bench must assume responsibility for binding some suitable default delegate to its PClock proxy if necessary.

acme/utils2/Bench.xs

1b
2b

function module$use()
{
    xdc.useModule('xdc.runtime.Startup');
    xdc.useModule('xdc.runtime.System');

    var Bench = xdc.useModule('acme.utils2.Bench');

    if (Bench.PClock == null) {
        var ClockStd = xdc.useModule('acme.utils2.clocks.ClockStd');
        Bench.PClock = ClockStd;
    }
}

function module$static$init(obj)
    ...

The statements in Bench.xs at lines 1b and 2b mimic similar code seen earlier in prog.cfg at lines 1a and 2a, though the code here only executes if Bench.PClock remains unbound at this point in the process. As a rule, you should leverage the special function module$use—which in general already introduces other modules into the current configuration—as the locale for binding all unbound proxies associated with this module. Any proxies left unbound going forward will cause the entire configuration process to terminate with an appropriate error message, thus inhibiting any subsequent target-program build steps.

Our convention of assigning the results of an xdc.useModule directive to a suitably named XDCscript variable is just that—a convention. Clearly, this practice makes sense whenever the current code accesses properties of the module more than once, as with the local variable Bench inside of the earlier module$use function; indeed, you've already seen several Mod.xs examples that first declare file-level variables corresponding to module names, that then assign these variables inside of module$use, and that finally use these variables inside subsequent functions within the meta-implementation.

Though one could technically fold lines 1b and 2b of Bench.xs into a single assignment statement, dropping the variable altogether, we prefer this somewhat more pedantic idiom to ensure consistency. At the same, you'll occasionally see xdc.useModule directives appearing as standalone expressions, as they do inside the same Bench.xs module$use function defined earlier; declaring unused local variables in this case feels excessive. At the end of the day, just use common sense—and always remember that while you may write a piece of code just once, many others will read the same code many more times.

See also

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


RTSC Interface Primer/Lesson 13 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

RTSC Interface Primer/Lesson 13

Proxy modules — managing target-specific Fir implementations

Applying what you've already learned about RTSC interfaces and proxy modules, this lesson lays out a series of transformations of the Fir module originally introduced back in Lesson 9. Beginning with a portable baseline where correctness trumps efficiency, we'll then proceed to significantly improve the performance of Fir—but at the cost of polluting an otherwise clean body of code with non-portable constructs.

Through skillful use of a proxy, however, we can better isolate target-specific code from an otherwise portable implementation of the Fir module. By the end of this process, Fir will not only have greater flexibility and thus higher potential for re-use across a broad spectrum of applications, the module will also enjoy an quantum improvement in its run-time performance.

Contents

  • 1 Establishing a baseline
  • 2 Optimizing for TMS32064+
  • 3 Generalizing through a proxy
  • 4 See also

Establishing a baseline

With several alternative implementations of Fir lying ahead of us, let's first abstract the essence of the module's original Fir.xdc specification into a new RTSC interface named stdsorg.math.IFir.

stdsorg/math/IFir.xdc

/*! Abstract FIR filter */
interface IFir {

instance:

    /*! Number of data-values per frame */
    config Int frameLen = 64;

    /*! Create a new filter
     *
     *  @param(coeffs)      filter coefficients
     *  @param(coeffsLen)   number of coefficients
     */
    create(Int16 coeffs[], Int coeffsLen);

    /*! Apply this filter and update its internal history
     *  @param(inFrame)    readonly frame of input data
     *  @param(outFrame)   next frame of output data
     */
    Void apply(Int16 inFrame[], Int16 outFrame[]);
}

We'll now trivially re-work the original acme.filters.Fir module into a derivative named acme.filters2.FirA. Other than what seems like a gratuitous change of name—we'll eventually produce a FirB and FirC module in the same package—the spec of FirA boils down to a more abbreviated form of the original Fir.xdc file from Lesson 9.

acme/filters2/FirA.xdc

import stdsorg.math.IFir;

/*! Baseline IFir implementation */
@InstanceInitError
@InstanceFinalize
module FirA inherits IFir {

internal:

    struct Instance_State {
        Int16 coeffs[];         /* create argument */
        Int coeffsLen;          /* create argument */
        Int frameLen;           /* instance config */
        Int16 history[];        /* filter history */
    }
}

By virtue of inheriting IFir, what persists in the new FirA.xdc spec pertains exclusively to the internal implementation of this module. Here again, other than a simple name change (Fir becomes FirA) the contents of acme/filters2/FirA.c and acme/filters2/FirA.xs remain identical to the original target-implementation and meta-implementation of acme.filters.Fir; if you want to see for yourself, feel free to browse the source in the «examples»/acme/filters2 package directory.

Optimizing for TMS32064+

Anyone who's worked with digital signal processors (DSPs) will immediately recognize that FirA—based on the original implementation of acme.filters.Fir from Lesson 9—offers many opportunities for slashing execution time. Always wanting to improve performance by optimizing for a particular processor, consider the acme.filters2.FirB module whose spec virtually clones FirA but whose target-implementation diverges considerably inside the apply function.

acme/filters2/FirB.xdc

import stdsorg.math.IFir;

/*! Optimized IFir implementation */
@InstanceInitError
@InstanceFinalize
module FirB inherits IFir {

internal:

    struct Instance_State {
        Int16 coeffs[];         /* create argument */
        Int coeffsLen;          /* create argument */
        Int frameLen;           /* instance config */
        Int16 history[];        /* filter history */
    }
}

acme/filters2/FirB.c

1

2

3

    ...
#include "package/internal/FirB.xdc.h"

#include <string.h>
#include <c6x.h>       /* declares TMS32064+ intrinsics */

    ...

Void FirB_apply(FirB_Object *obj, Int16 inFrame[], Int16 outFrame[])
{
    Int i, j;
    Int32 sum0, sum1;

    Int coeffsLen = obj->coeffsLen;
    Int frameLen = obj->frameLen;

    Int16 *history = obj->history;
    Int16 *coeffs = obj->coeffs;

    Int32 *history2 = (Int32 *)history;
    Int32 *coeffs2 = (Int32 *)coeffs;

    memcpy(&history[coeffsLen - 1], inFrame, frameLen * sizeof (Int16));

    for (j = 0; j < frameLen / 2; j++) {
        sum0 = sum1 = 0;
        for (i = 0; i < coeffsLen / 2; i++) {
            sum0 += _mpy(history2[i + j], coeffs2[i]);
            sum0 += _mpyh(history2[i + j], coeffs2[i]);
            sum1 += _mpyhl(history2[i + j], coeffs2[i]);
            sum1 += _mpylh(history2[i + j + 1], coeffs2[i]);
        }
        *outFrame++ = (Int16)(sum0 >> 15);
        *outFrame++ = (Int16)(sum1 >> 15);
    }

    memcpy(history, &history[frameLen], (coeffsLen - 1) * sizeof (Int16));
}

Besides using compiler-specific intrinsics that effectively map directly to underlying processor instructions—declared at line 1 and used after line 3—we've also unrolled the for loop beginning at line 2 to further increase opportunities for parallelism. As we'll see in Lesson 14 when we benchmark FirB against our FirA baseline, we've significantly improved runtime performance here—but only by transforming a portable implementation (FirA) into one that can now targets a specific processor supported by a specific compiler (FirB).

If none of this makes any sense, don't worry about it: knowledge of digital signal process(ing/ors) has never been a prerequisite for working with RTSC. At the same, do appreciate that processor-dependent or compiler-specific C code not unlike the body of FirB_apply will indeed exist within most embedded application programs; the trick becomes isolating this sort of code as much as possible.

Generalizing through a proxy

We come now to acme.filters2.FirC which, through skillful use of a proxy, transforms the (non-portable) FirB implementation seen above into one that we can now build for any RTSC target or platform. Applying the same design technique we've illustrated with Bench in Lesson 12—where we employed a PClock proxy to ultimately abstract alternate implementations of a getTime function, one of which depended directly upon the TMS32064+ processor—the FirC module specifies a PMathOps proxy that in turn can delegate to a module specifically tailored for the target, platform, or application at hand.

acme/filters2/FirC.xdc

1

import stdsorg.math.IFir;
import stdsorg.math.IMathOps;

/*! Generalized IFir implementation */
@InstanceInitError
@InstanceFinalize
module FirC inherits IFir {

    /*! Selectable IMathOps service provider */
    proxy PMathOps inherits IMathOps;

internal:

    struct Instance_State {
        Int16 coeffs[];         /* create argument */
        Int coeffsLen;          /* create argument */
        Int frameLen;           /* instance config */
        Int16 history[];        /* filter history */
    }
}

The new stdsorg.math.IMathOps interface referenced here at line 1 captures the essence of the low-level math operations used directly after line 3 in the earlier FirB.c target-implementation. Later on, we'll examine two different implementations of this interface—one that's portable, and one that's not.

stdsorg/math/IMathOps.xdc

2

/*! Abstract math operations */
interface IMathOps {

    /*! Product of low 16-bits of x and y */
    Int32 mpy(Int32 x, Int32 y);

    /*! Product of high 16-bits of x and y */
    Int32 mpyh(Int32 x, Int32 y);

    /*! Product of high 16-bits of x and low 16-bits of y */
    Int32 mpyhl(Int32 x, Int32 y);

    /*! Product of low 16-bits of x and high 16-bits of y */
    Int32 mpylh(Int32 x, Int32 y);
}

FirC target-implementation. Before we investigate some alternate implementations of the new IMathOps interface, consider how introducing the PMathOps proxy at line 1 of FirC.xdc now leads to a portable C implementation of the module itself within the target-domain.

acme/filters2/FirC.c

3

    ...
#include "package/internal/FirC.xdc.h"

#include <string.h>

    ...

Void FirC_apply(FirC_Object *obj, Int16 inFrame[], Int16 outFrame[])
{
    ...

    for (j = 0; j < frameLen / 2; j++) {
        sum0 = sum1 = 0;
        for (i = 0; i < coeffsLen / 2; i++) {
            sum0 += FirC_PMathOps_mpy(history2[i + j], coeffs2[i]);
            sum0 += FirC_PMathOps_mpyh(history2[i + j], coeffs2[i]);
            sum1 += FirC_PMathOps_mpyhl(history2[i + j], coeffs2[i]);
            sum1 += FirC_PMathOps_mpylh(history2[i + j + 1], coeffs2[i]);
        }
        *outFrame++ = (Int16)(sum0 >> 15);
        *outFrame++ = (Int16)(sum1 >> 15);
    }

    ...
}

Focusing on some small (but important) differences between the FirB and FirC implementations, we've basically replaced direct use of TMS32064+ intrinsics at line 3 of FirB.c with corresponding calls to proxy functions at line 3 of FirC.c; you'll find declarations for the latter functions back at line 2 of the IMathOps interface spec. Equally important, FirC no longer requires the non-portable <c6x.h> intrinsics header brought in at line 1 of FirB.c.

Alternate IMathOps implementations. As with the IClock interface used by Bench in Lesson 12, we'll offer up two rather distinct implementations of IMathOps—one tied to the TMS32064+ intrinsics (MathOps64P), the other expressed in portable C code (MathOpsStd). Though deployed in separate packages, the specs for this pair of modules look virtually identical.

txn/mathops/MathOps64P.xdc

import stdsorg.math.IMathOps;

/*! TMS32064+ IMathOps module */
module MathOps64P inherits IMathOps {}
stdsorg/math/MathOpsStd.xdc

import stdsorg.math.IMathOps;

/*! Portable IMathOps module */
module MathOpsStd inherits IMathOps {}

Although IMathOps and MathOpsStd already reside in the same package scope, we've still explicitly named stdsorg.math.IMathOps through an import statement in MathOpsStd.xdc. This discipline tracks a similar pattern seen with #include directives in the target-domain and with xdc.useModule directives in the meta-domain—that is, fully-qualified references to spec'd units near the top of the file followed by subsequent use of the unit's short name.

Turning first to MathOps64P, its target-implementation simply leverages the same TMS32064+ intrinsics used directly at line 3 within FirB.c. Just like the earlier Clock64P module from Lesson 12, we've consciously fielded a non-portable implementation dependent upon a specific compiler and processor.

txn/mathops/MathOps64P.c

#include "package/internal/MathOps64P.xdc.h"

#include <c6x.h>        /* declares TMS32064+ intrinsics */

Int32 MathOps64P_mpy(Int32 x, Int32 y)
{
    return _mpy(x, y);
}

Int32 MathOps64P_mpyh(Int32 x, Int32 y)
{
    return _mpyh(x, y);
}

Int32 MathOps64P_mpyhl(Int32 x, Int32 y)
{
    return _mpyhl(x, y);
}

Int32 MathOps64P_mpylh(Int32 x, Int32 y)
{
    return _mpylh(x, y);
}

By contrast, the MathOpsStd module effectively serves as a portable reference implementation of the IMathOps interface and—rather appropriately—resides in the same package containing the latter's spec.

stdsorg/math/MathOpsStd.c

#include "package/internal/MathOpsStd.xdc.h"

Int32 MathOpsStd_mpy(Int32 x, Int32 y)
{
    return (Int16)(x) * (Int16)(y);
}

Int32 MathOpsStd_mpyh(Int32 x, Int32 y)
{
    return (Int16)((0xFFFF0000 & x) >> 16) * (Int16)((0xFFFF0000 & y) >> 16);
}

Int32 MathOpsStd_mpyhl(Int32 x, Int32 y)
{
    return (Int16)((0xFFFF0000 & x) >> 16) * (Int16)(y);
}

Int32 MathOpsStd_mpylh(Int32 x, Int32 y)
{
    return (Int16)(x) * (Int16)((0xFFFF0000 & y) >> 16);
}

As we've already seen in some earlier examples, both the MathOps64P and MathOpsStd modules have empty implementations within the meta-domain.

Besides other processor-specific implementations of the IMathOps interface suitable for packages like txn.mathops, you could likewise imagine other portable implementations contained in stdsorg.mathops or elsewhere. One such implementation—used perhaps during initial program testing—might track the range of values actually passed to these functions at runtime; another might raise runtime errors if values fall outside a prescribed range. In general, we can design these sorts of (portable) modules to stack atop existing IMathOps implementations (portable or otherwise) through introduction of their own IMathOps proxy similarly bound to a downstream delegate.

FirC meta-implementation. To complete the picture, the module$use function defined inside FirC.xs binds a suitable IMathOps delegate implementation to the FirC.PMathOps proxy if some client hasn't already done so.

acme/filters2/FirC.xs

1

    ...
function module$use()
{
    Error = xdc.useModule('xdc.runtime.Error');
    Memory = xdc.useModule('xdc.runtime.Memory');
    Program = xdc.useModule('xdc.cfg.Program');

    var FirC = xdc.useModule('acme.filters2.FirC');

    if (FirC.PMathOps == null) {
        if (Program.build.target.isa == "64P") {
            FirC.PMathOps = xdc.useModule('txn.mathops.MathOps64P');
        }
        else {
            FirC.PMathOps = xdc.useModule('stdsorg.math.MathOpsStd');
        }
    }
}
    ...

Through disciplined choice of canonical names for target-specific implementations of IMathOps interface, we could then generalize the if statement at line 1 into a closed expression that computes the module's fully-qualified name as a function of the RTSC target used to build the current program.

See also

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


RTSC Interface Primer/Lesson 14 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

RTSC Interface Primer/Lesson 14

Abstract testing — benchmarking IFir implementations

In this lesson we'll expand upon some idioms for module testing first introduced in Lesson 9, by now fabricating a more generic test harness that enables us to easily benchmark the performance of any IFir implementation. Using this test harness in tandem with whole-program optimization, we'll systematically benchmark the entire series of IFir modules presented in Lesson 13.

We've always promised that RTSC can deliver higher-level programming and higher-levels of performance; and now you'll finally see some concrete evidence of this claim, as we compare an optimized and processor-dependent FirB module against a more generalized and abstracted FirC module that achieves portability through skillful use of the proxy-delegate pattern.

Contents

  • 1 Testing more generically
  • 2 Building and running the tests
  • 3 Interpreting benchmark results
  • 4 See also

Testing more generically

With several heirs of the IFir interface already in hand, we'll turn now to a generic test harness—a new module named acme.filters2.test.FirTester—that invokes and benchmarks any IFir implementation in a uniform manner. Derived from the FirTest1.c test program originally introduced back in Lesson 9, we've elected instead to field a first-class RTSC module in lieu of a dedicated main program to perform the testing itself.

Besides enabling us to declare a PFir proxy through which we can bind the specific IFir implementation under scrutiny, the FirTester module allows the client to further customize the testing scenario through additional configuration parameters.

acme/filters2/test/FirTester.xdc

1

2

3

import stdsorg.math.IFir;

/*! Generic IFir test harness */
module FirTester {

    /*! IFir implementation under test */
    proxy PFir inherits IFir;

    /*! Message displayed when benchmarking */
    config String benchMsg;

    /*! Program entry point */
    Int main(Int argc, Char* argv[]);
}

Before commenting on FirTester.xdc—especially the somewhat unexpected declaration of main at line 3—let's first look at the module's implementation in the target-domain.

acme/filters2/test/FirTester.c

4

5

6

7

#include <acme/utils2/Bench.h>
#include <xdc/runtime/System.h>
#include "package/internal/FirTester.xdc.h"

#define COEFFSLEN 4
#define FRAMELEN 20

static Int16 coeffs[COEFFSLEN] = {20000, 21000, 22000, -3000};

static Int16 inFrame[FRAMELEN] = {0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9};
static Int16 outFrame[FRAMELEN];

static Void printOut();

Int FirTester_main(Int argc, Char* argv[])
{
    FirTester_PFir_Handle fir;
    FirTester_PFir_Params params;

    FirTester_PFir_Params_init(&params);
    params.frameLen = FRAMELEN;

    fir = FirTester_PFir_create(coeffs, COEFFSLEN, &params, NULL);    /* create filter */
    Bench_begin(FirTester_benchMsg);                                  /* start benchmark */
    FirTester_PFir_apply(fir, inFrame, outFrame);                     /* run filter */
    Bench_end();                                                      /* stop and display timing */
    printOut();                                                       /* display results */
    FirTester_PFir_delete(&fir);                                      /* delete filter */

    return 0;
}

static Void printOut()
{
    Int i;
    String comma = "";

    System_printf("\toutFrame = {");
    for (i = 0; i < FRAMELEN; i++) {
        System_printf("%s%d", comma, outFrame[i]);
        comma = ",";
    }
    System_printf("}\n\n");
}

Compared with the FirTest1.c program from Lesson 9, we've introduced nothing "new" here at all: the #include at line 4 should surely come as no surprise; the main function defined at line 5 follows the usual RTSC naming idiom, given the declaration at line 3 of the spec; and the use of a longer FirTester_PFir_ prefix beginning at line 6 follows from the proxy declaration at line 2. Otherwise, we've basically preserved the original program's structure.

The FirTester module presents many more opportunities for generalization through additional module-wide config params. As we've stressed before, client-assignable configs could naturally replace the #define constants and static arrays declared between lines 4 and 5 of FirTester.c. To aid your understanding, though, we've tried to minimize the differences between FirTester.c and the original FirTest1.c program from Lesson 9.

Needless to say, we'll also need an implementation of FirTester in the meta-domain.

acme/filters2/test/FirTester.xs

function module$use()
{
    xdc.useModule('acme.utils2.Bench');
    xdc.useModule('xdc.runtime.System');
}

Note that the PFir proxy spec'd back at line 1 does not acquire a default binding inside of module$use, unlike the acme.utils2.Bench meta-implementation from Lesson 12; clients must explicitly bind a suitable IFir implemenation to FirTester.PFir. In the same vein, note that the benchMsg config spec'd at line 2 and used internally at line 7 also has no default value; clients must likewise assign a meaningful string to FirTester.benchMsg.

To guarantee robustness, FirTester might actually assert inside the module$use function that the client has indeed bound the module's PFir proxy, issuing a meaningful warning if necessary; similar checks can occur here—or within the special module$validate function invoked at the end of the configuration process—to ensure that benchMsg has a non-empty string value.

To further streamline re-use across a set of IFir implementations—FirA, FirB, and FirC for now, but perhaps others in the future—the acme.filter2.test package employs a single testFir.cfg meta-program made more flexible through arguments originating inside of the package.bld script for the acme.filters2.test package.

acme/filters2/test/testFir.cfg

1
2

3

4

var Bench = xdc.useModule('acme.utils2.Bench');
var FirTester = xdc.useModule('acme.filters2.test.FirTester');
var Program = xdc.useModule('xdc.cfg.Program');

FirTester.benchMsg = Program.build.cfgArgs.benchMsg;
FirTester.PFir = xdc.useModule(Program.build.cfgArgs.firModName);

if (Program.build.target.isa == '64P') {
    Bench.PClock = xdc.useModule('txn.clocks.Clock64P');
    Bench.enableFlag = true;
}
else {
    Bench.enableFlag = false;
}

Program.main = FirTester.main;

Starting with the benchMsg assignment at line 1, the script simply uses a string retrieved from an identically named property of the special Program.build.cfgArgs object. The binding of the PFir proxy at line 2 similarly retrieves the name of the IFir module under test, passing this value programmatically to xdc.useModule. Formation of the cfgArgs object occurs through a more general form of a Pkg.addExecutable call found in the package.bld script for this package, which we'll have more to say about in the section that follows.

The logic beginning at line 3 then proceeds to configure the Bench module in an obvious way, conditional upon the current program's target. Though we haven't done so here, additional arguments to the testFir.cfg script could similarly generalize the configuration of Bench as we already have done with FirTester.

Turning finally to line 4, the special xdc.cfg.Program module also enables us to designate the actual "main" function for this program. By assigning Program.main a reference to a spec'd function with the same type signature as the standard C main function—certainly the case with FirTester.main spec'd at line 3 of FirTester.xdc—we've effectively overridden the default main entry-point into this program with one of our own module-wide functions.

We've shamelessly stolen the idea behind Program.main from Java, in which program execution begins in a named class that defines a static, public function named main with a well-known signature. Though RTSC does not directly support the notion of a class as a first-class entity—XDCspec has no corresponding keyword—referencing a canonically-named module with a conforming main function (such as acme.filters2.test.FirTester.main) within a RTSC configuration script mimics the way one launches Java (or C#) applications from the command-line or using an XML-based manifest.

Building and running the tests

We've hinted back in Lesson 9 that one key to managing an open-ended suite of tests lies with appropriately structuring the package.bld script to reflect the problem at hand. In this case, we not only need to build multiple programs for multiple targets in general—testFirA.x*, testFirB.x*, testFirC.x*, and so on—but we also need to pass specific arguments to a common testFir.cfg script used throughout.

For those targets supporting whole-program optimization—such as ti.targets.64P, selected in your «examples»/config.bld file—we actually want to build two versions of the same program: one using the compiler's default release profile; the other using whole-program optimization. To further complicate matters, the package.bld script must also ensure that we build non-portable programs like testFirB.x* for only the appropriate targets.

acme.filter2.test.package.bld

1

2

3
4

5

6

7

var Build = xdc.useModule('xdc.bld.BuildEnvironment');
var Pkg = xdc.useModule('xdc.bld.PackageContents');

var TEST_INFO = [
    {id: "FirA", benchMsg: "portable implementation"},
    {id: "FirB", benchMsg: "optimized implementation", buildFor: "64P"},
    {id: "FirC", benchMsg: "generalized implementation"},
];

var LIB_NAME = "lib/" + Pkg.name;
var LIB_SRCS = ["FirTester.c"];

for each (var targ in Build.targets) {

    Pkg.addLibrary(LIB_NAME, targ, {profile: "whole-program"}).addObjects(LIB_SRCS);

    for each (var testInfo in TEST_INFO) {

        if (testInfo.buildFor && testInfo.buildFor != targ.isa) {
             continue;
        }

        var progName = "test" + testInfo.modId;
        var progAttrs = {
            cfgScript: "testFir.cfg",
            cfgArgs: "{" +
                "firModName: 'acme.filters2." + testInfo.id + "', " +
                "benchMsg: '" + testInfo.benchMsg + "'" +
            "}",
        };
        Pkg.addExecutable(progName, targ, targ.platform, progAttrs).addObjects(["FirTester.c"]);

        if (!targ.profiles["whole_program"]) {
            continue;
        }

        progName += "-WP";
        progAttrs.profile = "whole_program";
        Pkg.addExecutable(progName, targ, targ.platform, progAttrs);
    }
}

The Pkg.addExecutable call at line 5 receives an additional fourth argument here, used to further refine the building of the program designated as progName—a local variable initialized at line 2 using structured elements within the TEST_INFO array defined at the top of the file. The variable progAttrs—itself an object—further defines a pair of properties that shape the configuration of the designated program.

  • the cfgScript property initialized at line 3 designates this particular script as the current meta-program, overriding any implicit assumptions based upon the program's name; and

  • the cfgArgs property initialized at line 4 becomes a set of arguments passed to the program's configuration script, accessed via the Program.build.cfgArgs object in the meta-program itself.

The cfgArgs property expects a string which, when evaluated later at the outset of program configuration, results in the actual XDCscript object consumed by testFir.cfg. To avoid excessive use of escape sequences inside this string (such as "\""), recall that XDCscript allows us to use matching single- or double-quotes in literal string values; we've done our best at line 4 to make this multi-line string look like the "real" object it will eventually become.

Finally, the logic at line 1 uses an optional buildFor property found in some elements of the TEST_INFO array to screen out particular IFir modules that cannot support the current target. In our case, this ensures that we only test the FirB module using a TMS32064+ target and platform; unlike the other modules, we will not build a native version of the testFirB program using a GCC-based RTSC target such as gnu.targets.Mingw.

Further filtering then occurs at line 6, where we determine whether the current target supports a special "whole_program" profile. If so, we invoke Pkg.addExecutable for a second time at line 7, only now with progName carrying a distinct "-WP" suffix and the special progAttrs.profile property appropriately assigned.

To build and run all tests targeted for the TMS32064+ within the acme.filters2.test package—which will output benchmark timings as well as program results—simply invoke xdc test,64P from the command-line. Invoking xdc test will additionally build and run native versions of (a subset of) these programs—but without any benchmark timings.

Interpreting benchmark results

If you haven't already done so, let's fire off the xdc test,64P command—which will benchmark FirA through FirC, both with and without whole-program optimization—and then analyze the results.

A1

A2

B1

B2

C1

C2

>> xdc test,64P

running testFirA.x64P ...
portable implementation [571]
    outFrame = {0,-1,0,1,3,5,7,9,10,12,15,10,5,1,3,5,7,9,10,12}

running testFirA-WP.x64P ...
portable implementation [550]
    outFrame = {0,-1,0,1,3,5,7,9,10,12,15,10,5,1,3,5,7,9,10,12}

running testFirB.x64P ...
optimized implementation [391]
    outFrame = {0,-1,0,1,3,5,7,9,10,12,15,10,5,1,3,5,7,9,10,12}

running testFirB-WP.x64P ...
optimized implementation [370]
    outFrame = {0,-1,0,1,3,5,7,9,10,12,15,10,5,1,3,5,7,9,10,12}

running testFirC.x64P ...
generalized implementation [1903]
    outFrame = {0,-1,0,1,3,5,7,9,10,12,15,10,5,1,3,5,7,9,10,12}

running testFirC-WP.x64P ...
generalized implementation [370]
    outFrame = {0,-1,0,1,3,5,7,9,10,12,15,10,5,1,3,5,7,9,10,12}

Looking first at our FirA baseline—built with the default profile at line A1 and with whole-program optimization at line A2—we see only modest improvement in the latter over the former. This pattern repeats itself with the optimized FirB module at lines B1 and B2, as the impact of loop-unrolling and processor-specific intrinsics used in the FirB target-implementation begins to kick in here.

The most interesting outcome, however, occurs with FirC at lines C1 and C2. Before commenting on the wide disparity in these timings, note that whole-program optimization of this heavily-abstracted target-implementation yields identical results to the compiler-specific and processor-dependent FirB module benchmarked at line B2. Despite the generality introduced through use of an IMathOps proxy-delegate pattern inside of FirC, we've managed to hold the line on runtime performance!

As for the large degradation in FirC when built with the default profile at line C1, just think about what's really happening in each of those FirC_PMathOps calls after line 3 in Fir.c—two runtime function dispatches apiece, each eventually arriving in a function body comprising one processor instruction. With callers and callees residing in separate source files, however, "normal" compilation has no choice but to generate external function calls at each site. Using whole-program optimization, on the other hand, the compiler rather trivially identifies these (small!) functions as viable candidates for automatic inlining.

The brilliance of whole-program optimization results from applying relatively basic compilation techniques—function inlining, constant folding, and dead code elimination—to a consolidated base of source code that otherwise resides in separate files potentially produced by different individuals. In reality, the compiler's no smarter; it now just sees more of the program during its usual optimization phase, and hence will often yield dramatic performance improvements—especially when given RTSC modules replete with references to (extern) config params as well as calls to (extern) proxies that in turn call other (extern) functions provided by the delegate module.

See also

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


RTSC Interface Primer/Lesson 15 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

RTSC Interface Primer/Lesson 15

Abstract instances — techniques for creating IGen objects

Without much fanfare, the target-implementation of the FirTester_main function presented in Lesson 14 already created an abstract instance by calling the FirTester_PFir_create function provided through the module's PFir proxy. Not knowing the identity of the IFir module bound to this proxy, this particular create call returns an abstract FirTester_PFir_Handle that references some underlying concrete instance object—a newly-created instance that from the client's perspective only supports the abstract functionality specified in the IFir interface.

When using the IGen interface introduced back in Lesson 11 in a similar manner, however, things become a little more complex. Why, because modules like RandGen and SineGen not only inherit the abstract IGen interface, these modules also extend IGen with additional per-instance configs that help shape individual instances upon creation. This lesson examines a continuum of applications that each work with abstract IGen instances, showcasing a variety of RTSC idioms that all strike a balance between concrete creation and abstract usage of these instance objects.

NOTE: This lesson leverages some new proxy capabilities slated for XDCtools 3.20.
NOTE: For now, just treat the programming examples as "read-only".

Contents

  • 1 Creating instances statically — AppSt
  • 2 Creating instances dynamically — AppDy
  • 3 Working with instance factories — AppFa
  • 4 See also

Creating instances statically — AppSt

We'll begin with a (main) module canonically-named bravo.math2.genapps.AppSt featuring a proxy that inherits IGen, bound by clients to some suitable module such as RandGen or SineGen in the meta-domain. In addition, AppSt defines a module-wide config that clients can assign a statically-created IGen instance using one of the aforementioned IGen modules.

bravo/math2/genapps/AppSt.xdc

1

2

import stdsorg.math.IGen;

/*! IGen app using statically-created instances */
module AppSt {

    /*! IGen module used in this app */
    proxy PGen inherits IGen;

    /*! IGen instance from the same IGen module */
    config PGen.Handle genInst;

    /*! Program entry point */
    Int main(Int argc, Char* argv[]);

While you've seen numerous declarations of type Mod_Handle in target-domain .c files, we've yet to declare any elements using the corresponding XDCspec type Mod.Handle inside an .xdc file. In this particular example, Mod does not refer to some module outside of AppSt but rather to PGen—a proxy module defined inside the scope of AppSt. Though somewhat pedantic, we could have expressed this type as AppSt.PGen.Handle; or taking matters to their logical conclusion, as bravo.math2.genapps.AppSt.PGen.Handle. Fortunately, the XDCspec language scoping rules enable us to minimize use of fully-qualified names outside of import statements.

Like earlier client programs sketched out in Lesson 11, the target-implementation of AppSt simply prints successive values returned from AppSt_PGen_next, passing the instance object referenced through the AppSt_genInst config.

bravo/math2/genapps/AppSt.c

3

#include <xdc/runtime/System.h>
#include "package/internal/AppSt.xdc.h"

#define COUNT 10

Int AppSt_main(Int argc, Char* argv[])
{
    Int i;

    System_printf("statically-created instance\n");

    for (i = 0; i < COUNT; i++) {
        System_printf("%d ", AppSt_PGen_next(AppSt_genInst));
    }
    System_printf("\n");

    return 0;
}

The inner function call at line 3 says it all, referencing both the proxy module and instance object spec'd at lines 1 and 2 respectively. As our earlier note implied, the genInst config—spec'd of type PGen.Handle at line 2—becomes a statically-initialized target-domain constant of type AppSt_PGen_Handle referenced at line 3 as AppSt_genInst.

Client configuration. Consider the progSt.cfg meta-program, which both binds the AppSt.PGen proxy as well as assigns a statically-created instance to AppSt.genInst. Note that since AppSt already supplies a candidate entry-point for Program.main, clients need not write a corresponding progSt.c target-program.

bravo/math2/genapps/progSt.cfg

1
2

var AppSt = xdc.useModule('bravo.math2.genapps.AppSt');
var Program = xdc.useModule('xdc.cfg.Program');
var SineGen = xdc.useModule('bravo.math2.SineGen');

AppSt.PGen = SineGen;
AppSt.genInst = AppSt.PGen.create({range: 127, freq: 16}};

Program.main = AppSt.main;

Needless to say, clients of AppSt "know" something that the module per-se does not—the identity of the IGen delegate bound to the PGen proxy on line 1 (SineGen in this case). Given this knowledge, the client meta-program takes full advantage here of per-instance configs specific to the concrete SineGen module (such as freq) when creating and assigning an abstract IGen instance on line 2.

In general, though, just as AppSt.PGen accepts any module inheriting the IGen interface, we can likewise assign an instance object to AppSt.genInst created with any IGen module. But here's the constraint—we must take care to use the same IGen module on the lines 1 and 2 in this example; otherwise, fatal runtime consequences may ensue.

The idiom illustrated here—first bind Mod.Proxy, then call Mod.Proxy.create—ensures some level of consistency when creating abstract instances. Though not necessarily enforced, you should think of Mod.Proxy as a write-once property—one that you should assign before using any other features of Mod.Proxy in the meta-domain, such as its special create function. Since the latter function defers to the proxy's current delegate, Mod.Proxy must of course already be bound; and needless to say, assigning a different module to Mod.Proxy after calling Mod.Proxy.create breaks everything. Fortunately, a module like AppSt can programatically validate that the concrete module used to create the abstract instance held in AppSt.genInst matches the concrete module currently assigned to AppSt.PGen.

Creating instances dynamically — AppDy

Our next (main) module—canonically-named bravo.math2.genapps.AppDy—not only creates abstract IGen instances during execution, it also enables the client to shape certain characteristics of these instances through command-line arguments passed to the program at runtime. Consider the spec of AppDy together with its implementation in the target-domain.

bravo/math2/genapps/AppDy.xdc

1

import stdsorg.math.IGen;

/*! IGen app using dynamically-created instances */
module AppDy {

    /*! IGen module used in this app */
    proxy PGen inherits IGen;

    /*! Program entry point */
    Int main(Int argc, Char* argv[]);

bravo/math2/genapps/AppDy.c

2

3

4

5

#include <xdc/runtime/System.h>
#include "package/internal/AppDy.xdc.h"

#include <stdlib.h>

#define COUNT 10

Int AppDy_main(Int argc, Char* argv[])
{
    AppDy_PGen_Handle genInst;
    AppDy_PGen_Params genParams;
    Int i;

    AppDy_PGen_Params* prmsRef = NULL;         /* passed to create */

    System_printf("dynamically-created instance\n");

    if (argc > 1) {                          /* assign range param */
        AppDy_PGen_Params_init(&genParams);
        genParams.range = atoi(argv[1]);
        prmsRef = &genParams;                  /* passed to create */
    }

    genInst = AppDy_PGen_create(prmsRef, NULL);

    for (i = 0; i < COUNT; i++) {
        System_printf("%d ", AppDy_PGen_next(genInst));
    }
    System_printf("\n");

    return 0;
}

Like the earlier AppSt module, AppDy also specs a proxy named PGen at line 1 which inherits the IGen interface. But unlike the earlier AppSt module—which featured a module-wide config named genInst that held an statically-created abstract IGen instance—AppDy instead declares the identifier genInst as a local variable of type AppDy_PGen_Handle at line 2 of its target-implementation. The code at lines 4 and 5 then proceed to create and use genInst at runtime, all the while employing the AppDy_PGen proxy as an intermediary.

Here again, the target-implementation of AppDy has no prior knowledge of the actual delegate module bound to its PGen proxy—RandGen, SineGen, or any other module that inherits the IGen interface. For this very reason, we can only pass per-instance config params to AppDy_PGen_create on line 4 defined at the level of IGen itself—configs common to any present or future module directly or indirectly inheriting this interface.

In the example at hand, this suggests that we can assign the common range parameter—as we do at line 3, applying the standard C function atoi to the program's first command-line argument. But we cannot (say) assign the freq parameter specific to the SineGen module; indeed, the AppDy_PGen_Params structure wouldn't even have a field of that name.

Note that if AppDy_main receives too few command-line arguments at runtime, the local variable prmsRef remains NULL when passed to the AppDy_PGen_create function at line 4; in this case, we'll just have to accept default values for all per-instance config params.

Client configuration. Here again, clients of AppDy who bind its PGen proxy in the meta-domain "know" the true identity of the IGen delegate module eventually used in the target-program. And while AppDy supports instance creation only at runtime—and shaped only by config params common to all IGen modules—we can however associate a set of delegate-specific, per-instance configs as part of the overall process of proxy binding.

bravo/math2/genapps/progDy.cfg

1
2

var AppDy = xdc.useModule('bravo.math2.genapps.AppDy');
var Program = xdc.useModule('xdc.cfg.Program');
var SineGen = xdc.useModule('bravo.math2.SineGen');

AppDy.PGen = SineGen;
AppDy.PGen.defaultParams$ = new SineGen.Params({range: 127, freq: 16}};

Program.main = AppDy.main;

Once again, we've bound SineGen as the delegate for the PGen proxy at line 1. Taking no further actions, all instances created dynamically through the PGen proxy will accept default values for all per-instance configs not specified in the IGen interface—such as the freq param, which defaults to 1.

However, by then assigning the special defaultParams$ property associated with any proxy module supporting instances—as we've done with AppDy.PGen on line 2—we can effectively override defaults for all per-instance config params otherwise supplied by the proxy's delegate. In this case, all abstract IGen instances created dynamically by calling AppDy_PGen_create at line 4 of ApDy.c will use 16 as their value for freq; passing NULL as the first argument here will additionally use 127 as their value for range. As a semantic constraint—this time automatically enforced by XDCscript—the object assigned to our proxy's defaultParams$ property on line 2 must originate from the same module bound as the proxy's delegate on line 1.

Despite appearances, defaultParams$ is not a property of the PGen delegate—SineGen in this case—but rather a property of the XDCscript object representing the PGen proxy itself. As it turns out, reading/writing AppDy.PGen becomes a "short-cut" that in reality accesses the special proxy property AppDy.PGen.delegate$ behind the scenes. If the asymmetry between lines 1 and 2 bothers you, feel free to bind proxies by explicitly assigning to their delegate$ property.

As you can probably imagine, the built-in new operator used on line 2 fabricates a fresh XDCscript object of type SineGen.Params, initializing a subset of its defined properties along the way; like other objects in the meta-domain, this particular one will eventually become a statically-initialized C structure of type SineGen_Params in the target-domain.

Program execution. As an alternative to some form of xdc test, we'll load and run the sample programs in this lesson using the xdc.tools.loader utility invoked using the standard xs command bundled with XDCtools product—significantly streamlining ad hoc execution of programs expecting command-line arguments. While indeed possible by leveraging more advanced features of the RTSC build model inside your package.bld script, the xdc.tools.loader utility proves ideal for more informal and interactive program execution.

1

>> xs xdc.tools.loader appSt.x64P
statically-created instance
0 48 90 118 127 118 90 48 0 -49

2

>> xs xdc.tools.loader appDy.x86GW
dynamically-created instance
0 48 90 118 127 118 90 48 0 -49

3

>> xs xdc.tools.loader appDy.x64P 255
dynamically-created instance
0 6 12 18 25 31 37 43 49 56

Since we've used identical per-instance config values at line 2 of progSt.cfg and line 2 of progDy.cfg, the output at lines 1 and 2 above should indeed match—even though we've built these programs with different RTSC targets for execution on different RTSC platforms. If, however, we explicitly pass a command-line argument to the apDy program which overrides our pre-configured default for range, we'll then see the different set of outputs at line 3.

Working with instance factories — AppFa

The final leg of our journey takes us to a module named bravo.math2.genapps.AppFa, where we'll leverage RTSC instance factories defined in the meta-domain—but typically used in the target-domain—to create different sorts of IGen instance objects at runtime. As you'll soon see, RTSC instance factories effectively enable one proxy to potentially handle abstract instances originating from multiple delegates—all inheriting a common interface, of course.

First, though, let's look at the spec followed by the target-implementation for AppFa.

bravo/math2/genapps/AppFa.xdc

1

2

3

import stdsorg.math.IGen;

/*! IGen app using factory-created instances */
module AppFa {

    /*! IGen module used in this app */
    @Factory
    proxy PGen inherits IGen;

    /*! PGen factory descriptor */
    struct FctyDesc {
        String name;
        PGen.Factory fcty;
    }

    /*! Factory descriptor table */
    FctyDesc fctyDescTab[];

    /*! Program entry point */
    Int main(Int argc, Char* argv[]);

bravo/math2/genapps/AppFa.c

4a
4b

5a

5b

6

7

#include <xdc/runtime/System.h>
#include "package/internal/AppFa.xdc.h"

#include <stdlib.h>

#define COUNT 10

Int AppFa_main(Int argc, Char* argv[])
{
    AppFa_PGen_Handle genInst;
    AppFa_PGen_Params genParams;
    Int i;

    AppFa_PGen_Factory* fctyRef = NULL;                /* passed to create */
    AppFa_PGen_Params* prmsRef = NULL;                 /* passed to create */

    System_printf("factory-created instance\n");

    if (argc > 1) {                                     /* select factory */
        Int k = atoi(argv[1]);
        System_printf("\"%s: \"", &AppFa_fctyDescTab[k]->name);
        fctyRef = &AppFa_fctyDescTab[k]->fcty;        /* passed to create */
    }

    if (argc > 2) {                                      /* assign params */
        AppFa_PGen_Params_init(&genParams);
        genParams.range = atoi(argv[2]);
        prmsRef = &genParams;                         /* passed to create */
    }

    genInst = AppFa_PGen_create(fctyRef, prmsRef, NULL);

    for (i = 0; i < COUNT; i++) {
        System_printf("%d ", AppFa_PGen_next(genInst));
    }
    System_printf("\n");

    return 0;
}

The special @Factory attribute preceding the proxy declaration at line 1 enables us to reference a built-in Factory type associated with PGen—either as PGen.Factory at line 2 of the module's .xdc file or else as a AppFa_PGen_Factory at line 4a of the module's .c file. As you'll see shortly, a client meta-program would ultimately populate the ApFa.fctyDescTab array spec'd here at line 3 with an appropriate set of PGen.Factory objects paired with a descriptive name.

Turning to the target-domain, pay careful attention to the AppFa_PGen_create call on line 6—a subtle variation from the norm which occurs when using any RTSC proxy declared with the @Factory attribute. As you can see here, this particular form of the Mod_Proxy_create function takes an extra argument of type Mod_Proxy_Factory* that in turn references a statically-initialized Mod_Proxy_Factory assigned in the meta-domain. When passed NULL as its first argument, this form of Mod_Proxy_create operates in the usual manner—deferring directly to the delegate module bound to this proxy.

In the case of AppFa.c, lines 4a and 4b respectively declare and initialize references to a Factory and Params structure associated with the AppFa_PGen proxy. Conditional upon the program receiving sufficient command-line arguments, we've updated these references at lines 5a and 5b. The create call at line 6 then consumes fctyRef and prmsRef, which may still have NULL as their values in some cases.

Compared with our earlier AppDy module, we can now select the factory used to create an abstract IGen instance as well as control its common per-instance configs—all at runtime, of course. To fully grasp the implications of this last statement, however, we need to examine the client's perspective of AppFa within the meta-domain.

Client configuration. As we hinted earlier, the use of RTSC instance factories would in general enable the AppFa.PGen proxy to create abstract IGen instance object originating from different IGen modules. Depending upon a command-line argument passed to the program at runtime—which selects a particular element from a pre-configured AppFa.fctyDescTab array during execution—the output could originate from SineGen, from RandGen, or from any other module that inherits the IGen interface.

>> xs xdc.tools.loader appFa.x64P 0
factory-created instance
"sine16": 0 97 181 236 255 236 181 97 0 -98

>> xs xdc.tools.loader appFa.x64P 1
factory-created instance
"sine32": 0 181 255 181 0 -182 -256 -182 0 181

>> xs xdc.tools.loader appFa.x64P 2
factory-created instance
"rand10": 126 108 219 76 238 117 133 145 62 236

To effect these results, the following meta-program adds three elements to the AppFa.fctyDescTab array—the first two defining the characteristics of the "sine16" and "sine32" factories, and the third defining the "rand10" factory.

bravo/math2/genapps/progFa.cfg

1
2

3

4

var AppFa = xdc.useModule('bravo.math2.genapps.AppFa');
var Program = xdc.useModule('xdc.cfg.Program');
var RandGen = xdc.useModule('bravo.math2.RandGen');
var SineGen = xdc.useModule('bravo.math2.SineGen');

AppFa.PGen = SineGen;
AppFa.PGen.defaultParams$ = new SineGen.Params({range: 127, freq: 16}};

AppFa.fctyDescTab = [
    {name: "sine16", fcty: AppFa.PGen.addFactory$(SineGen, new SineGen.Params({range: 255, freq: 16}))},
    {name: "sine32", fcty: AppFa.PGen.addFactory$(SineGen, new SineGen.Params({range: 255, freq: 32}))},
    {name: "rand10", fcty: AppFa.PGen.addFactory$(RandGen, new RandGen.Params({range: 100, seed: 10}))},
];

Program.main = AppFa.main;

As with each of our previous meta-programs, we've configured the AppFa.PGen proxy at lines 1 and 2 with the same set of defaults—in the event that our program receives no command-line arguments at runtime. Recognizing the pattern here—an IGen module paired with a Params object overriding that same module's defaults for per-instance configs—the instance factories synthesized beginning at line 3 actually follow suit.

In general, any proxy carrying the @Factory attribute in its original spec supports a special meta-function named addFactory$ whose arguments expect values of the same types assignable as the proxy's delegate as well as the proxy's defaultParams$ property. In effect, each additional factory behaves like a "mini-proxy" in its own right—pairing the same sorts of information already used at lines 1 and 2 under the same sorts of constraints. And yet—as line 4 illustrates—we can support a mixture of IGen delegate modules under the auspices of a single IGen proxy.

Performance impact. Mixing IGen delegate modules in this fashion does, however, incur some runtime cost. Until now, all proxies worked with just one delegate, known by the end of program configuration. Though generated automatically, you can imagine the body of most proxy functions simply issuing direct calls to corresponding delegate functions of the same name; most compilers—even without whole-program optimization—can systematically fold-away these proxy functions.

If, however, the proxy must deal with instances originating from factories tied to different delegates, the runtime implementation devolves to the same technique used by every other object-oriented programming language—virtual function tables. So, unlike the call to AppDy_PGen_next at line 5 of AppDy.c, the call to AppFa_PGen_next at line 7 of AppFa.c will not call the SineGen_next function directly; rather, AppDy_Pgen_next will access a function table referenced through its instance handle argument that in turn holds a pointer to the actual next function appropriate for this object—either SineGen_next or RandGen_next in this case. So here's the bottom line—several levels of runtime indirection versus direct calls to delegate functions amenable to auto-inlining.

Fortunately, most applications of the RTSC proxy-delegate pattern do not involve factories; and even when they do, the function table implementation should only kick in when the application requires proxy factories using different delegate modules. Put in other terms, the worse-case implementation of RTSC interfaces achieves parity with current techniques used implicitly by C++ or else explicitly by over-zealous C programmers infatuated with function pointers. But as for the best-case performance of RTSC interfaces—you've already seen how we've benchmarked favorably against hand-tweaked code tuned for a specific target.

See also

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


RTSC Packaging Primer/Lesson 0 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

RTSC Packaging Primer/Lesson 0

Getting started — installing examples and tools

The steps outlined here will enable you to "play-along" as we work through a series of RTSC programming examples introduced in the lessons that follow. If you'd prefer to just read through the lessons right now, no problem—we've designed the material with that in mind. You might, however, consider quickly unpacking the examples for easy reference, even if you don't plan to build and run any programs at this time.

Contents

  • 1 Unpacking the examples
  • 2 Downloading the XDCtools product
  • 3 Locating some C compilers
  • 4 See also

Unpacking the examples

You'll find the examples here, distributed as a single .zip file which you should extract into a (new) directory of your choice—a directory we'll logically refer to as %examples% in the material that follows. If you're operating in "read-only" mode for now, proceed onward to Lesson 1.

Downloading the XDCtools product

To build and run the examples, you'll need to download and install the XDCtools product found here; or, if you've already installed XDCtools on your system, verify that you're working with version 3.15 or higher. Either way, we'll logically refer to the installation directory for the XDCtools product as %xdcroot% in the material that follows.

Locating some C compilers

For instructional purposes, we'll be working with two different C compiler tool-chains:

Texas Instruments C6000 Code Generation Tools — version 6.0.15

  • Windows-hosted developers can download this version of the compiler from here; Linux-hosted developers can download this version of the compiler from here. Either way, «c6xtools» will refer to the installation directory for this compiler in the material that follows.

If you haven't already done so, you'll need to register for a free account with Texas Instruments.

GCC — version 3.4.5 for Windows, version 4.1 for Linux

  • For Windows-hosted developers, we'll be using MinGW—a Minimal port of the GNU tool-chain for Windows— which contains GCC (the GNU Compiler Collection) and which you can download using the MinGW installer found here; «gcctools» will refer to the installation directory for MinGW in the material that follows. Be sure to check the g++ box on the installer's optional components menu; otherwise, you can simply accept the defaults given.

  • For Linux-hosted developers, you already have GCC installed on your system and «gcctools» will refer to its base directory; just verify that you have version GCC 4.1 (or later).

See also

XDCtools Installation Guide | How to install the XDCtools product
Using XDCtools Commands | Setting up your development environment

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


RTSC Packaging Primer/Lesson 1 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

RTSC Packaging Primer/Lesson 1

Basic concepts — deploying the acme.utils package

To introduce the fundamentals of RTSC packaging, we'll begin by executing a rather elementary task from the content consumer's perspective—installing a single RTSC package named acme.utils. Though trivial to perform (just a few simple commands), we'll use this opportunity to examine the structure and organization of RTSC packages in general as well as the mechanisms used by the XDCtools to locate packages within your file-system.

Understanding just a few basic concepts will ultimately enable you to make intelligent choices in deploying RTSC packages—making their content readily available for consumption by individuals, by teams, or by entire companies.

Contents

  • 1 Different forms of a package
  • 2 Populating a package repository
  • 3 Locating packages in repositories
  • 4 See also

Different forms of a package

In general, RTSC packages will manifest themselves in several different forms; and we'll illustrate these using acme.utils as an example. Despite variations in its physical representation, however, the ultimate purpose behind a package such as acme.utils remains the same—to facilitate delivery of software content from producer to consumer.

In the case of acme.utils, this package just so happens to contain a RTSC module named Bench—one which we'll use later on within a sample application program presented in Lesson 3. (For anyone having read the RTSC Module Primer, you should know exactly what we're saying here; for the rest of you, we'll fill in some missing details when we present the program.)

Logical container. Independent of its physical form, a RTSC package logically serves as a standardized "box" that can hold just about any sort of software artifact—sources, binaries, scripts, docs, even other packages. As this logical container moves through its natural life-cycle—initially built and released by its producer and later installed and deployed by its consumer—a RTSC package will always remain as a unit so as not to compromise the overall integrity of its contents. As you'll soon come to appreciate, installing acme.utils doesn't really "open the box and remove its contents", but rather transforms the same logical package from one physical form to another.

Besides this important property of unity, each RTSC package also possesses an individual identity—which is to say, each of our conceptual software boxes will have a globally-unique label associated with it. With RTSC packages, this label takes the form of a hierarchic, multi-segment name—such as acme.utils in our example at hand. By convention, the first segment(s) of a RTSC package name will typically identify who produced the package; in our situation, the acme.utils package might have come from Acme Software who in turn might supply other RTSC packages, all with names of the form acme.rest-of-the-name.

For those of you familiar with Java—one of the first mainstream programming languages with package as a keyword—RTSC applies many of the same concepts within its own packaging architecture. As a case in point, Java developers routinely work with (re-usable) software elements partitioned across thousands of packages, each with a globally-unique muti-segment name that typically follows the reversed domain-name of the package supplier—com.ibm.*, org.eclipse.*, and so on.

File-system directory. When in use—by producer or consumer—each RTSC package physically manifests itself as a file-system directory whose relative path must mirror the full package name in an obvious manner; in the case of acme.utils, its contents must reside in a directory named acme/utils. It's that simple—and there's no exceptions!!

As you might have guessed, Java utilizes exactly the same physical design for its packages—a pattern that already scales across millions of producers/consumers: packages named com.ibm.* reside in directories named com/ibm/*; packages named org.eclipse.* reside in directories named org/eclipse/*; and so on. When in doubt, steal shamelessly from the success of others.

Looking inside what we'll term the package directory—here, acme/utils—you'd find a number of special files that not only confirm the identify of this directory as holding the contents of a particular RTSC package, but also track the state of this package as its advances through its natural life-cycle. Starting in Lesson 4, we'll explore these files in greater detail as you'll begin playing the role of package producer.

Regardless of its state, each RTSC package will always have a distinguished XDCspec source file named package.xdc in its corresponding package directory. If buildable using the XDCtools product, the package will also contain a special XDCscript source file named package.bld. Again, we'll revisit both of these files beginning in Lesson 4.

Once built by its producer—and hence usable by other clients, say for testing purposes—the package will also contain a special sub-directory named package that in turn contains a wealth of files generated by the XDCtools product. But ultimately, the producer would use the XDCtools to manufacture released forms of the package—identified through a generated package/package.rel.xml file—ready for delivery to package consumers.

Note that, by definition, all released packages are built packages; but a released package is not necessarily a buildable package—unless its original producer took explicit steps to make it so.

Archive file. Not surprising, producers deliver released RTSC packages in the form of a package archive file—typically a .zip file, though XDCtools supports tar.gz files as well—which can trivially recreate the structure and contents of a released package directory at the consumer's site. Returning to our example, you'll soon install the acme.utils package that presently resides in a package archive file named acme_utils.zip. Peeking inside, this archive preserves the acme/utils package directory along with the appropriate package* files illustrated above; and of course, this archive preserves the "real" content of acme.utils which we'll consume later on in Lesson 3.

Though not always obvious at first, the name of the package archive file need not precisely mirror the name of the package itself—though producers will typically choose archive names suggestive of their content. As it turns out, producers can manufacture multiple releases of the same package—say, one that contains buildable sources and another that only supports the Texas Instruments TMS320C64+ processor family—and will choose distinct file names for the corresponding package archives. We'll revisit this topic in Lesson 6.

The same holds true for Java .jar files, which typically coalesce multiple Java packages into a single archive. What really matters for programmers consuming Java content are the names of packages stored in the archive, and not the name of the archive itself.

Populating a package repository

As hinted above, a package archive file serves as an transient form of a RTSC package—one optimized for delivery by producers to consumers—that eventually must reconstitute itself as a released package directory somewhere in the consumer's file-system. The question now becomes one of where—in the case of acme.utils, where should we root the acme/utils package directory currently archived in acme_utils.zip. The answer is, "Anywhere you want"....

This rather direct response brings us to the next basic concept in RTSC packaging—package repositories, which are just ordinary directories within your file-system that we'll populate with package directories such as acme/utils. Whereas package directories must follow a canonical naming pattern, no such convention exists for package repositories; since you ultimately own and control the repository directories, name them whatever you wish.

So now, let's imagine a newly-created directory named myrepo rooted somewhere within your file-system, which we'll symbolically refer to as «local»/myrepo in the following examples. At this point, we could easily extract the contents of the acme_utils.zip package archive (found in «examples»/archives) into the empty «local»/myrepo package repository; the directory «local»/myrepo/acme/utils would then hold the contents of our acme.utils package.

Using repoman. Instead, we recommend performing this (trivial) installation step using a command-line tool known as xdc.tools.repoman—bundled with the XDCtools product you've already downloaded in Lesson 0. As the name suggests, repoman performs a variety of tasks related to managing package repositories; and you'll learn more about this handy tool in Lesson 2, where we'll populate multiple repositories with multiple packages.

For now, though, we'll just use a series of elementary repoman commands: 1 to first inventory our package archive; 2 to next extract its contents into our newly-created package repository; and 3 to finally inspect the results.

1

2

3

%> xs xdc.tools.repoman -n «examples»/archives/acme_utils.zip
acme.utils

%> xs xdc.tools.repoman -x -v -r «local»/myrepo «examples»/archives/acme_utils.zip
xdc.tools.repoman: extracting package(s)...
xdc.tools.repoman: checking compatibility prior to extracting...
xdc.tools.repoman: extracting acme.utils from «examples»/archives/acme_utils.zip
xdc.tools.repoman: extracting «examples»/archives/acme_utils.zip to «local»/myrepo

%> xs xdc.tools.repoman -n -p «local»/myrepo
acme.utils

Needless to say, the symbol «examples» seen here in the command input/output designates the actual directory where you've unpacked the examples back in Lesson 0; the symbol «local»/myrepo similarly refers to the location of our newly-created package repository.

Compared with using standard Windows or Linux tools to inspect the directory structure of acme/utils—whether archived inside acme_utils.zip or extracted into myrepo—the output of repoman -n at lines 1 and 3 enables you to view each RTSC package as a single logical entity rather than as a mass of physical files; you'll certainly come to appreciate this feature when managing multiple packages. Similarly, the output of repoman -x at line 2 hints at some of the extra steps taken by this tool beyond simply extacting acme_utils.zip; more to come in Lesson 2.

Locating packages in repositories

To review.... RTSC package contents must reside in a canonically-named package directory; but RTSC package directories can reside in arbitrarily-named package repositories. All of this then leads to the last of our basic concepts and the top of the RTSC packaging hierarchy—the package path, which is a list of package repositories ultimately used by the XDCtools to locate individual packages and to retrieve their contents for client application use.

And once again, RTSC defers to the Java classpath as a model for its own package location and retrieval mechanism.

Default package path. As it turns out, XDCtools will always define a package path—even if you've just installed the product as directed in Lesson 0. To verify, we'll use another command-line tool named xdc.tools.path to first display the (default) package path and then to list all RTSC packages currently found along this path.

1a

%> xs xdc.tools.path -p
«xdcroot»/packages;
2a

%> xs xdc.tools.path -n
gnu.gdb.jserver
gnu.targets.arm
    ...
xdc.tools.path
xdc.tools.path.sg
xdc.tools.repoman
xdc.tools.repoman.sg
    ...
xdc.utils

Applying basic concepts we've already introduced, the output of the path -p command at line 1a suggests that the XDCtools product—installed in a directory we've referred to as «xdcroot»—itself incorporates a package repository named packages. The output of the path -n command at line 2a then alphabetically lists all of the RTSC packages found in this one repository alone—about 150 of them, if you've actually run the command yourself.

As a rule, the directory «xdcroot»/packages will always appear within the current package path—typically, at the end

Perhaps you're sensing a pattern here—virtually everything within the world of RTSC resides in some package, including hosted tools like xdc.tools.path and xdc.tools.repoman used to manage other RTSC packages. Written in XDCscript—the RTSC meta-language, which plays a central role for package producers and consumers alike—the special xs command located in «xdcroot» invokes these tools by locating their corresponding package directory which in turn holds the necessary XDCscript sources. The xs command forwards any remaining arguments after the package name to the application's main function. The application is the package, and vice versa.

Extending the package path. To quickly add our own package repository to the current package path—the final step in deploying the acme.utils package for use in client applications—simply assign the absolute directory name «local»/myrepo to the XDCPATH environment variable. To verify, re-run the earlier path -p and path -n commands.

1b

%> xs xdc.tools.path -p
«local»/myrepo;«xdcroot»/packages;
2b

%> xs xdc.tools.path -n
acme.utils
gnu.gdb.jserver
gnu.targets.arm
    ...
xdc.utils

As apparent from the output following line 1b, the special «xdcroot»/packages repository bundled with the XDCtools product itself appears after your own contribution(s) to the RTSC package path; the next Lesson explores some consequences of this ordering amongst the package repositories. And as apparent from the alphabetically-sorted output following line 2b, our acme.utils package has finally "made the list" in the eyes of the XDCtools product.

The XDCtools also include graphical variants of the command-line path and repoman tools, which you should eventually explore. As a first step, xs xdc.tools.path.sg will fire-up a GUI application—written in XDCscript, of course—that enables you to truly "see" all of the RTSC packages already found along the current package path. Enjoy!!

See also

Managing the Package Path | Introduction to managing package paths
Command - xdc.tools.repoman | Repository management tool
Command - xdc.tools.path | Package path display tool

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Managing the Package Path - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Managing the Package Path

Introduction to managing package paths

Contents

  • 1 The Package Path
  • 2 The XDCPATH prefix
    • 2.1 XDCPATH syntax
    • 2.2 XDCPATH contents
    • 2.3 Defining XDCPATH
    • 2.4 Examples
  • 3 Managing multiple versions of the same package

The Package Path

Source code often needs to reference files contained in packages. Files contained in a package are always found along the "Package Path", which is simply a semicolon-separated list of package "repositories". A repository is just a directory that contains installed packages. The Package Path is always defined as follows:

Package Path

«XDCPATH»;«XDCROOT»/packages;^

In this definition, «XDCPATH» is a semicolon-separated set of repositories specified by the user (either on the command line, within an IDE project's settings, or via an environment variable named XDCPATH). «XDCROOT»/packages is the repository of packages included with the XDCtools product. The '^' character denotes the current package's repository (if there is a current package). For most tools, the current package is defined as the package named by a package.xdc file in the current working directory. If no such file exists, then any repository name containing the '^' character expands to the empty string "".

For example, when no current package exists, a package path defined with «XDCPATH» set to "^/../imports" is just «XDCROOT»/packages. On the other hand, if there is a current package and its repository is /home/me/work/src then the package path is /home/me/work/imports;«XDCROOT»/packages;/home/me/work/src.

«XDCPATH» = ^/../imports
Package Path (no current package) | Package Path (current package repository = /home/me/work/src)
«XDCROOT»/packages | /home/me/work/imports;«XDCROOT»/packages;/home/me/work/src

Because «XDCROOT»/packages is always part of the package path, XDCtools can automatically find its own packages. However, if you have other products that are delivered as a packages (such as DSP/BIOS), you need to set the «XDCPATH» to include the repositories containing packages you require.

You may be wondering why the definition of the Package Path puts the XDCtools packages repository in front of the current package's repository rather than the reverse. By placing «XDCROOT»/packages ahead of the current package's repository, you can't "override" any of the packages necessary for the proper operation of XDCtools by inadvertently creating a package with the same name as one in «XDCROOT»/packages. Moreover, if you ever need to switch the order this can be done by simply setting «XDCPATH» to "^".

All source files, whether they are part of a package or your application, should always reference files contained in a package by prefixing the file name with the package's directory name. For example, to include the Task.h header in the ti.sysbios.knl package, your source files should #include <ti/sysbios/knl/Task.h>.

When compiling your sources, you should add a -I option for each repository named in the Package Path in the same order that they appear in the Package Path. Following this pattern allows you to easily add/remove/override packages without having to update your build system. You can simply install (or remove) a package into one of the repositories, add (or remove) the reference from your sources, and rebuild.

Since virtually all build tools support an option similar to -I, this pattern works for linker command files, assembly language files, scripts, and even makefiles.

The XDCPATH prefix

XDCPATH syntax

XDCPATH syntax. In the Package Path, you control the XDCPATH portion. This prefix is a string of ';' separated directories (repositories) that contain packages.

All directories referenced in XDCPATH must use forward slashes (/) as separators instead of the Windows-standard backslash (\). For example, use "c:/os;c:/drivers;c:/framework".

XDCPATH contents

XDCPATH contents. The definition of XDCPATH, like that of your PATH command shell environment variable, usually names a sequence of absolute directory paths. This enables your source files to avoid the use of absolute paths when referencing files contained in packages and, as a result, keeps your sources "portable" to other development environments. This is especially useful when exchanging packages between different developers.

It is usually a mistake to use a relative path in the XDCPATH prefix. Relative paths in XDCPATH reference directories relative to the current working directory but package names often have differing number of levels; e.g., xdc and xdc.runtime. Thus, a fixed relative path refers to a different repository when working with different packages that are installed in the same repository.

To avoid this problem, you should use the '^' character in the XDCPATH definition to refer to the "current package's" repository. Using the "^" character allows you to specify path that are relative to the current package's repository rather than the current working directory. So, if you have a repository that is always in a fixed location relative to all of your package's repositories, it's possible to create a single XDCPATH setting that works for all your packages and does not include any absolute paths.

Suppose, for example, that your build system places all prerequisite packages in an "imports" repository prior to building the packages in a "src" repository and the imports and src repositories are sibling directories in the file system. The following XDCPATH setting is sufficient to build all packages in the src repository.

set XDCPATH=^/../imports
Defining XDCPATH

Defining XDCPATH. Since the Package Path is central to the operation of package-based tools and the XDCPATH prefix is how you control the Package Path, there are several ways to define XDPATH so as to make it easy to control XDCPATH from virtually any development environment. XDCPATH can be defined by

  • an environment variable;
  • the --xdcpath option of any command-line tool; or
  • within a command-line option file

If XDCPATH is specified on the command-line and as an environment variable, the command line definition always takes precedence.

Examples

Examples. XDCPATH can be defined by simply setting an environment variable named XDCPATH.

set XDCPATH="^/../imports;/usr/local/packages"

If you do not want to specify XDCPATH using and environment variable, you can use the --xdcpath option for any command-line tool. Again, specifiying --xdcpath on the command line overrides any definition in the environment.

xdc --xdcpath="^/../imports;/usr/local/packages"

Alternately, you can place the --xdcpath command-line option in a text file, say mysettings.txt, and specify the file on the command line of the xs and xdc commands. This is useful in makefiles, which can define a dependency on the text file so that the appropriate files are properly rebuilt whenever the package path changes. Consider the following command-line option file.

mysettings.txt

--xdcpath
^/../imports;/usr/local/packages

The xs command line would reference this file as shown below.

xs @mysettings.txt

Similarly, the xdc command also accepts command-line option files.

xdc @mysettings.txt

Managing multiple versions of the same package

Multiple versions of the same package can appear along the Package Path. The Package Path can name multiple repositories that can contain a package directory with the same name. When searching for a package, the first repository that contains a directory matching the package's name is used. Thus, even if two packages with the same name appear in the package path, only one will ever be found-the first one in the order specified in the package path.

Thus, it is possible to quickly update selected packages by adding an "updates" repository at the front of XDCPATH. If the updates are successful, you can "permanently" remove the old versions; otherwise you can quickly revert to the previous versions by simply removing the updates repository from XDCPATH.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Command - xdc.tools.repoman - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Command - xdc.tools.repoman

Repository management tool

Contents

  • 1 Synopsis
  • 2 Description
  • 3 Additional command-line options
  • 4 See also

Synopsis

xs xdc.tools.repoman [options ...]

For a complete description of this tool's options, see its Cdoc reference page xdc.tools.repoman.

Description

The repoman tool creates and manages package repositories. It displays information about archived packages, extracts archived packages, extracts repositories from bundles and deletes packages from repositories. Both textual and graphical versions of this tool are provided. The textual tool is xdc.tools.repoman and the graphical tool is xdc.tools.repoman.sg.

The repoman tool, especially its current command-line option set, is preliminary and subject to change in a future release. See the online documentation for the xdc.tools.repoman and xdc.tools.repoman.sg packages to get the most recent information about this tool.

For the command-line tool, the main options are:

-t
Display package info for an archive directory or tar file.
-n
Display package names only.
-x
Extract packages from an archive directory or tar file.
-d
Delete packages from a repository.
-c
Copy packages to a repository.
-o
Save repository information to a file.
--rrestore
Restore one or more repositories from information in a file.
--rcreate
Create one or more repositories from information in a file.

Several of these options require the specification of a packagename or packagearchive.

packagename
A package name to use. May contain wildcards. For example, ti.platforms.sim6xxx or ti.catalog.c??00 or ti.platforms.*.
A version/key can also be attached to a package name as follows: ti.platforms.c6000[1,0,0,0,313835]. A prefix of the full version/key may also be used as follows: ti.platforms.c6000[1,0]. If a package name has multiple matches either with or without a version/key specified, the most recent is selected.
packagearchive
The name of a package archive to use. May contain wildcards. For example, ti_platforms_sim6xxx.zip or ./depot/*.zip.

There are a number of other options that can be used in conjunction with these options, but one of these options is required on the command line to tell repoman what action it is supposed to take. This document describes the main functions first and gives the syntax for each. Later, it lists the various extra options you can use in combination with the main options.

The -t and -n options display information. The -t option displays the file, release name, label, version, category, buildable, required packages, references, and description. The -n option displays only the name. The syntax for these informational functions is:

xs xdc.tools.repoman -t [-v] [-p path ] [ packagename... | packagearchive... ]
xs xdc.tools.repoman -n [-v] [-p path ] [ packagename... | packagearchive... ]

The -x option can extract packages from an archived directory or tar file to a destination repository. If any of the packages in the specified package list are not compatible, the operation is not performed. The syntax is:

xs xdc.tools.repoman -x [-v] [-D] [-R] [-f] [-r destrepo ]
                     [-p path ][-b [ bundlerepository... ]]
                     [ packagename... | packagearchive... ]

The following example extracts the package ti.platforms.sim6xxx from an archive in /db/trees/app-a01 to c:/xdc/packages:

xs xdc.tools.repoman -x -r c:/xdc/packages -p /db/trees/app-a01 ti.platforms.sim6xxx

The following example extracts the examples repository from c:/xdc-Win32.tar.gz to c:/myexamples:

xs xdc.tools.repoman -x -r c:/myexamples -b examples c:/xdc-Win32.tar.gz

The -d option deletes a package from a repository. If the package has any subdirectories 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 are deleted, too.

The syntax is:

 xs xdc.tools.repoman -d [-v] [-r destrepo ] packagename...

The following example deletes the package ti.platforms.sim6xxx from c:/xdc/packages:

xs xdc.tools.repoman -d -r c:/xdc/packages ti.platforms.sim6xxx

The -c option copies packages to a destination repository. The syntax is:

xs xdc.tools.repoman -c [-v] [-r destrepo] [-p path]
packagename...

The following example copies the package ti.catalog.c6000 from c:\srcdir\packages to c:\destdir\packages:

xs xdc.tools.repoman -c -r c:\destdir\packages -p c:\srcdir\packages ti.catalog.c6000

The -o option saves repository information to the "outfile" file to be used in a subsequent restore or create operation. The syntax is:

xs xdc.tools.repoman -o outfile [-p searchpath] repository ...

The following example saves package information for repository c:/myrepo to the c:/myrepo.rmn file. It also saves the c:/pkgarchives;c:/testpkgs search path:

xs xdc.tools.repoman -o c:/myrepo.rmn -p "c:/pkgarchives;c:/testpkgs" c:/myrepo

The --rrestore option restores one or more repositories from information in the "infile" file. The syntax is:

xs xdc.tools.repoman --rrestore -i infile [-p searchpath] [infile_repo_indicies]

The following example restores all the packages in c:/myrepo from information that was saved to the file c:/myrepo.rmn. It uses the search path c:/pkgarchives;c:/testpkgs to find and copy the packages. The example creates c:/myrepo if it doesn't exist.

xs xdc.tools.repoman -rrestore -i c:/myrepo.rmn -p "c:/pkgarchives;c:/testpkgs"

The --rcreate option creates one or more repositories from information in the "infile" file. The syntax is:

xs xdc.tools.repoman --rcreate -i infile [-p searchpath]
                     [infile_repo_indicies] dest_repo0 ...

The following example creates the new repository c:/mynewrepo from information that was saved to the file c:/myrepo.rmn for the repository c:/myrepo. It uses the search path c:/pkgarchives;c:/testpkgs to find and copy the packages. When created, c:/mynewrepo will be identical to c:/myrepo when its package information was saved with the -o option.

xs xdc.tools.repoman -rcreate -i c:/myrepo.rmn -p "c:/pkgarchives;c:/testpkgs" c:/mynewrepo

Additional command-line options

The other options that can be used on the repoman command line with the main options described in the previous section are as follows:

-b
The repositories to be extracted when -x is used to extract repositories from a bundle. In this case, the last argument specifies the bundle file to extract from. If omitted, use "packages". Use with: -x.
-D
Also extracts dependent packages. Use with: -x.
-f
Force all packages to be extracted, regardless of incompatibilities. Use with: -x.
-p path
Search the specified directory. If the -p option is omitted, the current directory is searched. Use with: -t, -n, -x, -c.
-r destrepo
Use specified destination repository. If omitted, use the repository for the current package. If there is no current package, use the current working directory. Use with: -x, -d, -c.
-R
Also recursively extracts dependent packages. Use with: -x.
-v
Print informative messages during execution. Use with: all.

See also

Command - xdc.tools.repoman.sg | Interactive repository management tool
xdc.tools.repoman | Client documentation for xdc.tools.repoman

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Command - xdc.tools.path - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Command - xdc.tools.path

Package path display tool

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

xs xdc.tools.path [options ...]

For a complete description of this tool's options, see its Cdoc reference page xdc.tools.path.

Description

The path tool displays the packages located along the specified package path. Both textual and graphical versions of this tool are provided. The textual tool is xdc.tools.path and the graphical tool is xdc.tools.path.sg.

By default, the path tool displays a list of all packages found in the repositories referenced by the package path.

For example, output for the xdc.tools.cdoc.sg package is similar to this:

Package Name: xdc.tools.cdoc.sg
Repository: C:\xdc_2_94_01\packages
Release Name: xdc_tools_cdoc_sg
Label: default
Compatibility Key: 1, 0, 0, 62
Date: 04/25/2007 19:07

The following command-line options are available:

-n
Display only the names of the packages.
-p
Echo only the current package path.
-d
Display information about the packages in the specified repository
only. For example:
xs xdc.tools.path -d C:/CCStudio_v3.3/bios_5_31/packages

See also

Command - xdc.tools.path.sg | Interactive Package Path browser tool
xdc.tools.path | Client documentation for xdc.tools.path

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


RTSC Packaging Primer/Lesson 2 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

RTSC Packaging Primer/Lesson 2

Repository management — deploying charlie_mathsuite_2_71

Building upon the basic concepts of RTSC packaging introduced in Lesson 1—while still focusing upon the package path-repository-directory hierarchy—we'll once again install an inbound package archive and then deploy its contents for use within the sample application covered in Lesson 3. Unlike acme.utils, however, the (somewhat oddly-named) charlie_mathsuite_2_71 package actually constitutes what RTSC informally terms a product bundle—a top-level "wrapper" package whose contents in turn include a repository pre-populated with other RTSC packages.

Though seemingly still a "toy" example, deploying the charlie_mathsuite_2_71 product bundle illustrates most of the common practices followed by content consumers when managing multiple packages installed across multiple repositories—and even multiple variants of the package path composed from distinct sets of package repositories.

Contents

  • 1 Working with product bundles
  • 2 Adding versus merging repositories
  • 3 Handling per-package updates
  • 4 Defining alternate package paths
  • 5 See also

Working with product bundles

To gain some more insight into its internal organization, we'll once again invoke the repoman -n command to now inspect the charlie_mathsuite_2_71.zip package archive file found in «examples»/archives.

1
2

%> xs xdc.tools.repoman -n «examples»/archives/charlie_mathsuite_2_71.zip
charlie_mathsuite_2_71
  packages/
    charlie.sqrtlib
    charlie.sqrtlib.samples

As you might have guessed, the output at line 1 confirms the presence of a RTSC package with the (somewhat odd) name of charlie_mathsuite_2_71—signifying, say, the MathSuite v2.71 product available from Charlie & Co. And while this top-level package may contain some important collateral—such as release notes—an internal packages repository flagged at line 2 appears to hold the "real" product content within other charlie.* packages.

Taking this scheme one step further, Charlie & Co. would deliver a future version of this product—say, MathSuite v3.14—as a (different) RTSC product bundle named charlie_mathsuite_3_14, though internally structured along similar lines. In effect, a top-level product "wrapper" package like charlie_mathsuite_2_71 becomes a one-shot, never re-released under the same name by its supplier; by contrast, "bundled" packages like charlie.sqrtlib would hopefully maintain backward compatibility—same package name, same package content—despite any enhancements from one product version to the next. More on this topic in Lesson 9.

Following a similar progression in how we handled acme.utils in the last lesson, let's imagine a (different) package repository—«shared»/products—into which we'll install charlie_mathsuite_2_71 using the repoman -x command.

3

%> xs xdc.tools.repoman -x -v -r «shared»/products «examples»/archives/charlie_mathsuite_2_71.zip
xdc.tools.repoman: extracting package(s)...
xdc.tools.repoman: checking compatibility prior to extracting...
xdc.tools.repoman: extracting charlie_mathsuite_2_71 from «examples»/archives/charlie_mathsuite_2_71.zip
xdc.tools.repoman: extracting «examples»/archives/charlie_mathsuite_2_71.zip to «shared»/products

%> xs xdc.tools.repoman -n -p «shared»/products
charlie_mathsuite_2_71

The output of the repoman -n command at line 3 appears to have omitted the internal packages repository reported earlier at line 2, where we inspected the charlie_mathsuite_2_71.zip archive prior to installation. But now let's stop and think about it: the other charlie.* packages aren't rooted within «shared»/products at all, but rather in a different repository found at «shared»/products/charlie/mathsuite_2_71/packages.

Using a different form of the path command from what we'd illustrated in the previous lesson, we can discover "interior" packages such as charlie.sqrtlib by recursively searching arbitrary directories and then displaying a full slate of information about each package found—including the full path to its parent repository.

4

%> xs xdc.tools.path -PR «shared»/products
Package Name:    charlie_mathsuite_2_71
Repository:      «shared»/products
    ....
Package Name:    charlie.sqrtlib
Repository:      «shared»/products/charlie/mathsuite_2_71/packages
    ....
Package Name:    charlie.sqrtlib.samples
Repository:      «shared»/products/charlie/mathsuite_2_71/packages
    ....

Adding versus merging repositories

To complete the task, we'll now deploy the charlie_mathsuite_2_71 product for use within client applications—such as the program we'll develop in the next lesson, which happens to depend upon the contents of the charlie.sqrtlib package as well as acme.utils. Since charlie.sqrtlib already resides within a package repository—the one reported at line 4 of the last example—we can simply append this directory to the XDCPATH environment variable and inspect the results by invoking path -p and path -n commands.

1a

2a

%> xs xdc.tools.path -p
«local»/myrepo;«shared»/products/charlie_mathsuite_2_71/packages;«xdcroot»/packages;

%> xs xdc.tools.path -n
acme.utils
charlie.sqrtlib
charlie.sqrtlib.samples
gnu.gdb.jserver
gnu.targets.arm
    ...
xdc.utils

Note that the current package path echoed after line 1a does not include the «shared»/products package repository, hence charlie_mathsuite_2_71 itself does not appear amongst the currently deployed packages listed after line 2a. As suggested earlier, you'd typically find programming artifacts needed by client applications—such as C language headers and libraries—within a "bundled" package such as charlie.sqrtlib in lieu of top-level "wrapper" packages crafted for a particular product version.

Scaling the pattern. Should you ever obtain additional product packages from others structured along lines similar to charlie_mathsuite_2_71—a very real possibility—the process of deployment could take a fairly predictable course:

  • extract the new product package archive into the existing «shared»/products directory;
  • locate the "interesting" package repository(s) bundled with the product; and
  • append these additional repository locations to the current package path.

In theory, this pattern scales indefinitely—with the advantage that the package path naturally reflects the present roster of product releases through repository filenames like «products»/charlie/mathsuite_2_71/packages. In practice, though, the sheer length of the RTSC package path might become a limiting factor in your development environment as the number of product bundles reaches into the dozens—another very real possibility.

As an alternative, we can leverage a fundamental property of each RTSC package—its globally-unique name—and consider merging multiple package repositories into one. With unique names like acme.utils and charlie.sqrtlib dictating correspondingly distinct directory paths—acme/utils and charlie/sqrtlib—these two packages could safely coexist within the same package repository. In theory, we could deploy all inbound packages within a single repository—say, «local»/myrepo—without conflict; and we'd certainly have a shorter package path.

To illustrate, let's first invoke a repoman -c command variant to copy all of the charlie.* packages into the «local»/myrepo—the only repository we'd then have to include on the package path.

%> xs xdc.tools.repoman -c -v -r «local»/myrepo -p «shared»/products/charlie_mathsu.../packages charlie.*
xdc.tools.repoman: copying charlie.sqrtlib from «shared»/products/cha.../packages to «local»/myrepo
xdc.tools.repoman: copying charlie.sqrtlib.samples from «shared»/products/cha.../packages to «local»/myrepo

Next, let's invoke the same forms of the path command used earlier and then compare the results.

1b

2b

%> xs xdc.tools.path -p
«local»/myrepo;«xdcroot»/packages;

%> xs xdc.tools.path -n
acme.utils
charlie.sqrtlib
charlie.sqrtlib.samples
gnu.gdb.jserver
gnu.targets.arm
    ...
xdc.utils

Despite a shorter package path reported at line 1b compared with line 1a above, the deployed packages listed after lines 2a and 2b remain identical—we'd successfully deploy acme.utils and charlie.sqrtlib using either scheme.

Similar tradeoffs occur when managing executable programs on your host computer, assuming these programs have distinct names: do we deploy most if not all programs in a single directory already in your search PATH; or do we maintain separate directories for distinct groups of programs organized (say) along product lines, but then continually expand the search PATH with each new set of programs.

Handling per-package updates

Though inconsequential so far, you should understand that the XDCtools perform an ordered search of the package path when locating individual packages. Returning to the original deployment scenario at line 1a of the earlier example, consider what might happen if (say) a version of charlie.sqrtlib exists in more than one repository on the package path—perhaps Charlie & Co sent you a "new-and-improved" charlie.sqrtlib package in a standalone form, which you'd install into «local»/myrepo following the same procedure used with acme.bench.

To help manage cases when updates arrive on a per-package basis, the unabridged output of the path command would here draw attention to the second occurrence of charlie.sqrtlib—the version originally found in the «shared»/products/charlie/mathsuite_2_71/packages repository—as a "duplicate" worthy of closer inspection.

1

2

%> xs xdc.tools.path
Package Name:      acme.utils
Repository:        «local»/myrepo
    ....
Package Name:      charlie.sqrtlib
Repository:        «local»/myrepo
Release Name:      charlie_sqrtlib
Label:             default
Compatibility Key: 1, 0, 4, 3
Date:              08/08/2008  08:08

Package Name:      charlie.sqrtlib
Repository:        «shared»/products/charlie/mathsuite_2_71/packages
Release Name:      charlie_sqrtlib
Label:             default
Compatibility Key: 1, 0, 2, 6
Date:              07/07/2007  07:07
    ....

Beginning in Lesson 4, we'll have more to say about the attributes reported here (Release Name, Label, Compatibility Key) and how package producers can effect their respective values. Suffice it to say, the version of charlie.sqrtlib reported at line 1 does indeed appears "more recent" than the version bundled with charlie_mathsuite_2_71 and reported at line 2.

In this particular deployment, client application programs requiring C language headers and libraries logically contained inside of the charlie.sqrtlib package would find these under the charlie/sqrtlib package directory rooted in «local»/myrepo—the repository at the front of the package path—effectively overriding the (older) original version under «shared»/products co-located with the rest of the charlie_mathsuite_2_71 product bundle.

Any manner of ordered directory search—whether the executable PATH, -I compiler flags, or the RTSC package path itself—ultimately gives you the flexibility to supersede a "shared" artifact seen by many (whether a program, a header, or a package) with a "local" artifact of the same name. Our use of «local»/myrepo as a staging ground for deploying product patches alongside standalone packages proves invaluable for this task; anyone working with RTSC should likewise maintain their own private repository at the front of the package path.

Defining alternate package paths

Suppose, now, Charlie & Co delivered a new release of their MathSuite product—bundled as charlie_mathsuite_3_14 and perhaps containing versions of charlie.sqrtlib with expanded functionality as well as entirely new packages not offered before. Following protocol, we'd extract the corresponding package archive file into the same «shared»/products directory already holding the current product release—with no conflict here, since the top-level "wrapper" packages have distinct names tied to MathSuite v2.71 versus MathSuite v3.14.

Deploying the latest MathSuite product then requires us to alter the current package path, replacing repositories rooted under «shared»/products/charlie_mathsuite_2_71 with alternates under .../charlie_mathsuite_3_14. We'd also need to remove any isolated updates to packages like charlie.sqrtlib which might currently reside in other repositories like «local»/myrepo and inadvertently preempt an even more recent version of this package bundled with the latest product.

The path tool—or its GUI counterpart, the path.sg tool—can assist in locating duplicate packages found along the current package path as illustrated earlier. To remove any unwanted duplicates—which would override access to a newer version of some package—use the repoman -d command whose additional arguments name the repository and the package(s).

But after making all of these adjustments to the package path (enabling us to start working with MathSuite v3.14) the challenge now becomes one of simultaneously supporting existing applications tied to the earlier MathSuite v2.71 product—which requires the previous form of the package path, prior to making any changes. Clearly, the XDCtools can only see one package path at a time; but can we at least streamline the task of "switching context"—changing the set of currently deployed packages—without having to constantly update the XDCPATH environment variable.

As it turns out, the underlying xs command we've used all along to launch tools like path or repoman supports a special --xdcpath option enabling us to explicitly enumerate the package repositories comprising the current package path; if present on the command-line, the --xdcpath option would override the current XDCPATH environment variable.

To keep command-line input manageable—as well as to facilitate sharing amongst developers—the xs command also accepts an @«opts-file» argument. For example, we can first populate oldpath.opts and newpath.opts with different settings for the package path and then invoke xdc.tools.path with each.

oldpath.opts

--xdcpath=«local»/myrepo;«shared»/products/charlie_mathsuite_2_71/packages

newpath.opts

--xdcpath=«local»/myrepo;«shared»/products/charlie_mathsuite_3_14/packages

1

2

%> xs @oldpath.opts xdc.tools.path
acme.utils
charlie.sqrtlib
charlie.sqrtlib.samples
    ...
xdc.utils

%> xs @newpath.opts xdc.tools.path
acme.utils
charlie.sqrtlib
charlie.sqrtlib.samples
charlie.triglib
    ...
xdc.utils

Needless to say, these *.opts files can reside anywhere within your file-system—including centrally-managed project-wide directories like «shared» where judicious use can ensure consistent package deployment across of team of software developers. To handle even more complex variations of the package path—each representing different combinations and permutations amongst multiple product bundles—one @«opt-file» can even reference another.

See also

TODO: write it

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


RTSC Packaging Primer/Lesson 3 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

RTSC Packaging Primer/Lesson 3

Client Applications — consuming deployed package content

Having deployed both acme.utils and charlie.sqrtlib, we'll turn now to a small yet typical client application that consumes the target content of these packages—which, in the final analysis, boils down to a set of C header files and function libraries. Along the way, we'll introduce one of most important facets of RTSC from the content consumer's perspective—program configuration—which enables RTSC packages to become active participants within the familiar process of compiling/linking your program.

Much of the material presented here, though self-contained, receives more thorough treatment within the first two lessons of the RTSC Module Primer. While not a prerequisite to understanding RTSC packages, we'd still encourage you to learn about RTSC modules as well.

Contents

  • 1 Reading the program
  • 2 Configuring RTSC programs
  • 3 Building and running the program
  • 4 See also

Reading the program

Our client application program—whose source resides in the charlie.sqrtlib.samples package—benchmarks an integer square-root function (isqrt) available through charlie.sqrtlib itself. To measure performance, our sample program leverages a RTSC module named Bench—found in the acme.utils package—which enables us to sandwich a single isqrt call between a pair of benchmark "begin/end" functions. Besides reporting the measurement in a message, our application outputs the value returned from the isqrt call using a familiar-looking printf function supported by another RTSC module named System—part of the xdc.runtime package contained within the XDCtools product itself.

Looking now at the code, our client application actually comprises a pair of source files. The first file (prog.c) should appear rather ordinary to anyone familiar with C—though our use of multi-segment paths within #include directives may seem unusual at first. By contrast, the second file (prog.cfg) truly represents something new and different here—a RTSC meta-program that configures the corresponding target-program.

If you're not sure what role prog.cfg plays in the overall flow—or for that matter, what language we're even using here—you will by the end of this lesson. If you've already tackled the RTSC Module Primer, however, we've clearly returned to familiar territory.

charlie/sqrtlib/samples/prog.c
1a

2a

3a
4a

#include <acme/utils/Bench.h>
#include <xdc/runtime/System.h>

#include <charlie/sqrtlib/isqrt.h>

int main()
{
    unsigned int x, y;

    x = 1000;
    System_printf("==> isqrt(%d)\n, x");

    Bench_begin("cycle count:");
    y = isqrt(x);
    Bench_end();

    System_printf("<== %d\n", y);
    return 0;
}
charlie/sqrtlib/samples/prog.cfg
1b

2b

3b
4b

var Bench = xdc.useModule('acme.utils.Bench');
var System = xdc.useModule('xdc.runtime.System');

var Settings = xdc.useModule('charlie.sqrtlib.Settings');

Bench.enable = true;
Settings.optimize = Settings.OPTIMIZE_FOR_TIME;

The target-program. Starting with prog.c, this application follows the same pattern used in virtually every other piece of C code—first #include some headers [1a, 2a] and then call some functions defined therein [3a, 4a]. As for the multi-segment paths leading to Bench.h and isqrt.h, you should (obviously!) recognize these as the acme.utils and charlie.sqrtlib package directories—which (obviously!) must contain these header files.

Drilling a little deeper, you might have also sensed some subtle differences between the contents of charlie.sqrtlib compared with the other packages used here. In the case of acme.utils and xdc.runtime, both packages happen to contain full-fledged RTSC modules—cohesive collections of constants, types, and functions with a public specification and a private implementation (not unlike a class in C++ or Java). Though our focus here remains on RTSC packages, you should start to recognize and appreciate the programming style and discipline surrounding RTSC modules.

As it turns out, the charlie.sqrtlib package houses what we'll refer to as legacy content—C language headers and function libraries delivered in their original format rather than under the guise of a specified RTSC module. At the same time, just think of RTSC modules as a more disciplined development approach that ultimately yields the same sorts of artifacts—headers and libraries. Either way, RTSC packaging provide a standardized delivery vehicle and deployment mechanism that can streamline the integration of C-based target content originating from different suppliers.

The meta-program. By design, RTSC target-programs—ordinary C programs with a main entry-point—metaphorically begin life as a corresponding meta-program that executes on your host computer before the final compiling/linking of your application. In our example at hand, the outcome of running the prog.cfg meta-program effectively configures the downstream prog.c target-program—identifying all RTSC modules used in the program [1b, 2b] as well as optionally assigning values to configuration parameters furnished by these modules [3b, 4b].

Here again, charlie.sqrtlib appears to break the pattern used with the other packages, in which xdc.useModule calls within the meta-program strictly mirror #include directives found in the target-program; observe the predictable correspondence between lines 1a and 1b above, an idiom applied with each RTSC module used in the application. But also recall that charlie.sqrtlib houses legacy content—C headers and libraries delivered outside the scope of any specified RTSC module; and yet, charlie.sqrtlib should merit the same level of participation in the RTSC configuration process as afforded module-rich packages such as acme.utils or xdc.runtime.

To achieve parity, charlie.sqrtlib just so happens to furnish a special meta-only module named Settings which effectively serves as a configuration agent for legacy C functions like isqrt contained within this package. Just like the acme.utils.Bench module, the charlie.sqrtlib.Settings meta-module defines configuration parameters that impact the ultimate behavior of the target-program depending upon their value at the end of the meta-program:

  • alternatively assigning the module configuration parameter Bench.enable the built-in value false at line 3b of prog.cfg would effectively turn the runtime calls to the Bench_begin and Begin_end functions beginning at line 3a of prog.c into NOPs; and

  • alternatively assigning the module configuration parameter Settings.optimize the enumerated value Settings.OPTIMIZE_FOR_SPACE at line 4b of prog.cfg would potentially bind the isqrt function call at line 4a of prog.c to a slower but more compact implementation.

As for the programming language used in prog.cfg, you'll (of course!) express RTSC meta-programs using the RTSC meta-language—which is XDCscript, a superset of industry-standard JavaScript that builds upon Mozilla's openly available Rhino implementation. We have in fact extended Rhino/JavaScript to better integrate with other elements in the overall RTSC development flow—for sure, you won't find xdc.useModule described in any JavaScript textbooks.

Recall that XDCscript is one of two special-purpose languages introduced by RTSC under the banner of eXpanDed C—suggesting that C alone is not enough. As we start exploring RTSC packages from the supplier's perspective in the next lesson, we'll introduce the other special-purpose eXpanDed C language—the higher-level XDCspec specification language which works hand-in-hand with XDCscript to enable package producers to satisfy the diverse needs of their consumers.

Configuring RTSC programs

RTSC configuration, as we've already hinted, occurs before the final compile/link of your application: executing the prog.cfg meta-program serves as a "pre-build" step that ultimately affects the compiling and linking of the prog.c target-program. To ease integration into existing program build flows—whether driven by command-line tools or a graphical IDE—we'll rely here on another tool known as configuro to orchestrate the RTSC configuration process:

Included as part of the XDCtools product you've already installed in Lesson 0, configuro generates two output files that in turn become inputs to the compiler and linker when building your target-program:

  • compiler.opt, which sets all -D and -I compiler flags needed to locate any C headers included by this program (such as acme/utils/Bench.h or charlie/sqrtlib/isqrt.h); and

  • linker.cmd, which lists the appropriate C libraries containing implementations of any functions used by this program (such as Bench_begin or isqrt).

Putting some of the pieces together, the #include search-path defined through the -I flags in compiler.opt exactly reflects the current package path on a per-repository basis—which explains how the compiler finds headers named <acme/utils/Bench.h> or <charlie/sqrtlib/isqrt.h>. Rather than collecting all .h files into a centralized include/ directory, C headers delivered within RTSC packages remain in place at the consumer's site to help ensure their integrity. We'd also claim that using package directory paths in #include directives makes code more maintainable, leaving little doubt as to the particular supplier of each file; and this approach further enables different suppliers of (uniquely-named) packages to coincidently choose the same name for a header—say, Types.h.

Besides the prog.cfg meta-program, input to configuro will typically designate a RTSC target as well as a RTSC platform—pre-defined XDCscript recipes that respectively guide the compiling and linking of prog.c in our example at hand:

  • a RTSC target knows how to compile C sources into an object-code library for a particular CPU instruction set and memory model using a specific vendor tool-chain; and

  • a RTSC platform knows how to link and execute a C program for a particular hardware board (real or simulated) featuring a specific complement of processors, memory, and peripherals.

While clearly impacting the contents of compiler.opt and linker.cmd, the wealth of information encapsulated within a RTSC target and RTSC platform is generally available throughout the XDCscript environment—during execution of the prog.cfg meta-program as well as from within special back-end meta-functions we'll encounter later on.

Putting a few more of the pieces together, the generated linker.cmd references function libraries using full directory paths such as «local»/myrepo/acme/utils/lib/acme.utils.a64P. As you'll learn in Lesson 7, RTSC packages play an integral role during program configuration in selecting the set of libraries used for the final link step. As the .a64P suffix may suggest, packages containing libraries compiled for different RTSC targets can query the current target's identify when making this selection. Special XDCscript meta-functions implemented by package suppliers can also reflect upon the current RTSC platform when identifying libraries; or else—in the case of charlie.sqrtlib with its Settings meta-module—use the current value of a client-visible configuration parameter to guide the choice.

Building and running the program

If you're "playing along" with us and actually want to build and run the program at this time, we'd recommend first copying the charlie.sqrtlib.samples package into «local»/myrepo using the repoman -c command. This way, you can freely tweak the application sources without tainting the original package contents which would still remain in «shared»/products/charlie_sqrtlib_2_71/packages.

1

2

%> xs xdc.tools.repoman -c -v -r «local»/myrepo -p «shared»/products/cha.../packages charlie.sqrtlib.samples
xdc.tools.repoman: deleting charlie.sqrtlib.samples from «local»/myrepo
xdc.tools.repoman: checking if charlie.sqrtlib.samples is a bundle
xdc.tools.repoman:     charlie.sqrtlib.samples is not a bundle.
xdc.tools.repoman: deleting contents of directory myrepo/charlie/sqrtlib/demos/package
xdc.tools.repoman: copying charlie.sqrtlib.samples from «shared»/products/cha.../packages to «local»/myrepo

The output between lines 1 and 2 occurs whenever «local»/myrepo already contains a version of the charlie.sqrtlib.samples package. To reinforce the concept of RTSC packages as individual logical entities rather than a mass of physical files, repoman will also delete packages as a unit prior to replacing them with a fresh copy. But why not simply use the native delete and copy commands of your host computer to perform these operations.... For one, because RTSC packages often house complex directory structures of their own which cannot be compromised; but even more important, because RTSC package directories may also serve as stepping-stones to other RTSC packages—try deleting a version of charlie.sqrtlib without removing the contents of charlie.sqrtlib.samples as well.

In addition to prog.c and prog.cfg, the charlie.sqrtlib.samples package contains a standard GNU makefile that enables you to build and run our sample application. Before doing so, however, you'll need to edit a pair of lines at the top of the makefile to reflect the actual directories you've chosen for «xdcroot» and «c6xtools» back in Lesson 0.

charlie/sqrtlib/samples/makefile

XDCROOT = «xdcroot»
C6XTOOLS = «c6xtools»
   ...

Windows-hosted developers should surround «xdcroot» or «c6xtools» with double-quotes "..." if these directory paths contain any spaces in their names.

Linux-hosted developers should also edit the definition of the RMCMD symbol per instructions found in the makefile.

Using a version of gmake bundled with XDCtools—and assuming you've added «xdcroot» to your PATH—invoking the command gmake all from the charlie/matlib/samples package directory (now) residing within the «local»/myrepo package repository should yield the following messages:

1

2
3

%> gmake all
«xdcroot»/xs xdc.tools.configuro -c «c6xtools» -t ti.targets.C64P -p ti.platforms.sim64Pxx -o cfgsite prog.cfg
making package.mak (because of package.bld) ...
generating interfaces for package cfgsite (because package/package.xdc.xml is older than package.xdc) ...
configuring prog.x64P from package/cfg/prog_x64P.cfg ...
cl64P package/cfg/prog_x64P.c ...
«c6xtools»/bin/cl6x -q -@cfgsite/compiler.opt -c prog.c
«c6xtools»/bin/lnk6x -q -z -c prog.obj cfgsite/linker.cmd -o prog.out -l «c6xtools»/lib/rts64plus.lib

Lines 1, 2, and 3 respectively follow the flow outlined in the earlier figure, but now with all the details of invoking these tools made explicit. Looking at little closer at the options passed to configuro at line 1, suffice it to say that ti.targets.C64P designates a meta-module—the RTSC target—which guides compilation of this program and that ti.platforms.sim64Pxx identifies a package—the RTSC platform—which directs program linking and loading.

To read more about the hundreds of RTSC packages and modules bundled with the XDCtools product—and hence already found along the current package path—just fire-up xdc.tools.cdoc.sg using the standard xs command to interactively browse client documentation originally sourced in XDCspec files contained in each package; you'll even see some documentation for third-party packages, such as acme.utils and charlie.sqrtlib. (You can also visit rtsc.eclipse.org for a snapshot of the latest XDCtools package documentation.)

To execute the program, simply invoke the gmake test command:

%> gmake test
==> isqrt(1000)
cycle count: [63]
<== 31

At this point, feel free to explore the effect upon program output when you vary the value passed to the isqrt(x) function call on line 4a of prog.c; or else, when you assign Settings.OPTIMIZE_FOR_SPACE on line 4b of prog.cfg. After you make any changes, (re-)invoking the gmake test command will first perform the requisite build-steps—but only what's needed, given the structure of our makefile—before executing the program. To rebuild the all of the pieces from scratch, first invoke gmake clean to remove all generated files.

See also

Consuming Configurable Content | Introduction to the RTSC configuration process
Command - xdc.tools.configuro | Target content configuration tool
The XDCscript Language | XDCscript overview

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


The XDCscript Language - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

The XDCscript Language

XDCscript overview

Contents

  • 1 Introduction
  • 2 JavaScript language overview
    • 2.1 Common misconceptions about javaScript
  • 3 The print() method
  • 4 The java object
    • 4.1 File manipulation with Java
      • 4.1.1 Reading files
      • 4.1.2 Writing files
      • 4.1.3 Deleting files
      • 4.1.4 Copying files
  • 5 JavaScript verses Java strings
  • 6 The environment and arguments objects
    • 6.1 The environment object
    • 6.2 The arguments object
  • 7 The xdc object
    • 7.1 Methods for loading other files
    • 7.2 Methods for generating other files
  • 8 Running scripts
  • 9 JavaScript and Java references
  • 10 See also

Introduction

XDCscripts, such as configuration scripts, are written in the JavaScript language. This document does not provide details on the syntax of the JavaScript language. However, several concepts are important when using JavaScript within XDCscripts. This section provides an overview of such concepts. See "JavaScript and Java References" below for JavaScript reference sources.

JavaScript language overview

JavaScript syntax, operators, and flow-control statements are similar to those in the C language. It includes if, else, switch, break, for, while, do, and return statements which behave almost identically to their C counter-parts. As a result, C programmers can easily read and modify most JavaScript scripts.

JavaScript is a loosely-typed language. Variables in JavaScript are more flexible than variables in C or Java. Variables do not need to be explicitly declared, and the same variable can store different data types at different points within a script. These types are number, string, Boolean value, array, object, function (which is actually an object itself), and null. Operators automatically convert values between data types as necessary.

Variables can be local to a function or global to the entire JavaScript environment. Variable and object names may not contain spaces or punctuation other than "_" or "$". In addition, variable and object names can include numbers but must not begin with a number.

JavaScript does not have pointers and does not deal with memory addresses.

Common misconceptions about javaScript

If you've used JavaScript before, you have probably added scripts to a web page. It's important to clear up misconceptions some programmers may have about JavaScript when used outside the context of web pages:

  • JavaScript is a general-purpose, cross-platform programming language. While it was developed for use in web-browsers, it has a number of features that make it useful for application configuration. It is easy to learn and use, the syntax is similar to C, it is object oriented, and it is widely documented.
  • JavaScript is standardized. The language is also called ECMAScript, and the ECMA-262 standard defines the language (see http://www.ecma.ch/ecma1/STAND/ECMA-262.HTM). The basic syntax and semantics of the language are stable and standardized.
  • When you use JavaScript in a web page, the objects you use are defined by the Document Object Model (DOM). These objects include window, document, form, and image. The DOM is not part of the JavaScript standard; nor is the DOM part of XDCscript.
  • Other object models can be defined for use with JavaScript. Instead of the DOM, XDCscript often runs in the context of an "object model" containing one or more global objects; for example, configuration scripts are run in a context in which the global variable Program is defined.
  • JavaScript is not a part of Java. These are two different languages that have similar names for historical marketing reasons. However, XDCscript does allow scripts to call arbitrary Java functions, including any method provided by the the standard Java Runtime Environment.
  • For security reasons within web browsers, JavaScript does not provide built-in support for file services. However, by virtue of providing access to the Java Runtime Environment, XDCscript has full access to a complete (and standard) set of file-system services.
  • RTSC Modules run JavaScript only on the host PC, UNIX, or Linux machine. JavaScript code is not run on the embedded target (yet).

The print() method

The print() method is an extension to JavaScript that sends the result of the expression passed to the method to stdout. When running the a script via xs at the command line, for example, the print() statement is displayed in the command shell's window.

In this example, if obj is an array, these statements print a list of the objects in the array.

for (var i = 0; i < obj.length; i++) {
    print("obj[" + i + "] = " + obj[i]);
}

The following statements display the names of all public properties of the object obj and their values.

for (var p in obj) {
    print("obj." + p + " = " + obj[p]);
}

The java object

For security reasons, the JavaScript language does not provide any built-in file services. In a web browser, the lack of file services prevents most forms of file access on your computer. XDCscript, however, builds atop the Rhino JavaScript interpreter and this interpreter provides unrestricted to any Java class via LiveConnect. As a result, all of the classes in the standard Java Runtime Environment, such as the java.io classes, can be used from XDCscript.

File manipulation with Java

Calls to the java.io classes from a script look just like JavaScript function calls. For example, these statements display the path to a file if it exists:

var file = new java.io.File(fileName);
if (file.exists()) {
    print(file.getPath());
}

Reading files

Reading files. It's even possible to read and write files. For example, it is possible to display the contents of a file with the following few lines:

var line;
var file = new java.io.BufferedReader(new java.io.FileReader("/etc/motd"));
while ((line = file.readLine()) != null) {
    print(line);
}

Writing files

Writing files. The next example illustrates how to create a new file, named "foo.txt", and write to it.

var file = new java.io.FileWriter("foo.txt");
file.write("this is a test");
file.flush();

Deleting files

Deleting files. The java.io.File class also allows you to delete files via a delete() method. However, since delete is a JavaScript keyword it is not possible to directly call this method. Fortunately, because all JavaScript objects are associative arrays, any method or property of an object can be accessed using "array notation".

var file = new java.io.File("tmp.dat");
file.delete();     /* WRONG: this will cause a JavaScript parser error */
file["delete"]();  /* RIGHT: same as above but avoids conflict with 'delete' keyword */
Copying files

Copying files. There are times when you may need to copy a file. Rather than loop over each line of the input file, Java provides a method that can transfer the entire contents of a file into another.

function copy(src, dst)
{
    /* open input and output channels */
    var ins = new java.io.FileInputStream(src);
    var outs = new java.io.FileOutputStream(dst, true);
    var inc = ins.getChannel();
    var outc = outs.getChannel();

    inc.transferTo(0, inc.size(), outc);    /* transfer entire src to dst */

    /* close all streams and channels */
    inc.close();
    outc.close();
    ins.close();
    outs.close();
}

For documentation of the java.io package, see the Java 2 SDK documentation. In particular, see the reference documentation for the java.io package classes File, FileReader, BufferedReader, FileWriter, and BufferedWriter.

JavaScript verses Java strings

The Rhino JavaScript interpreter does its best to enable seamless use of underlying Java classes and objects. Unfortunately, this integration sometimes causes confusion when manipulating strings; both Java and JavaScript define a number of methods that operate on strings and not all of them are the same.

As a result, there are some situations where you must explicitly convert strings returned by Java methods into JavaScript strings. Fortunately, this is simple: either cast the Java string to a JavaScript string using JavaScript's String object or simply append an empty string to the Java string (Rhino automatically converts the Java string to a JavaScript to allow the concatenation).

/* cwd is a Java string */
var cwd = (new java.io.File("foo/bar")).getName();

/* the following will print "true" because cwd ends with "bar" */
print(cwd.endsWith("bar"));

/* convert cwd to a JavaScript string */
cwd = "" + cwd; /* could also convert via "cwd = String(cwd)" */

/* the following triggers a "TypeError": endsWith() isn't a JavaScript string method */
print(cwd.endsWith("bar"));

The environment and arguments objects

The Rhino interpreter also defines two other global objects, environment and arguments, that make it possible to create highly reusable scripts.

The environment object

The environment object. This object is a hash table that maps strings naming Java Runtime Environment (JRE) system properties to their values.

% xs -i

js> print(environment["user.dir"])
/home/dr
js>

Don't confuse values defined in the environment[] with command shell environment variables. JRE properties, while similar to shell environment variables, are not the same as the environment variables passed to processes by the host operating system. If you need to access command line environment variables, you should use the java.lang.System.getenv() method.

% xs -i

js> print(java.lang.System.getenv("USER"))
dr
js>

In addition to the properties provided by the JRE, the xs command adds the following properties to the Java environment.

xdc.path
the full package path
xdc.rootDir
the full path to the XDCtools installation directory
xdc.scriptName
the name of the script passed on the xs command line. If a module or a package is specified on the command line rather than a script file, environment["xdc.scriptName"] is set to the name of the module containing the code to run. For example, the commands "xs xdc.tools.cdoc" and "xs -m xdc.tools.cdoc.Main" both run the main() method defined in the module xdc.tools.cdoc.Main and in both cases environment["xdc.scriptName"] is equal to "xdc.tools.cdoc.Main".

Finally, it is possible to add new name value pairs to environment via the -D command line option of the xs command.

% xs -Dfoo=bar -i

js> print(environment["foo"])
bar
js>

For a complete list of properties provided by the JRE see the Java reference documentation for the java.lang.System.getProperties() method. To see the list of properties provided in your environment, you can use the JavaScript ability to loop over the elements of a hash table and display them using the print() method described above.

% xs -i

js> for (var p in environment) print('environment["' + p + '"] = ' + environment[p])
environment["java.runtime.name"] = Java(TM) 2 Runtime Environment, Standard Edition
environment["user.dir"] = /home/dr
   :
js>
The arguments object

The arguments object. When scripts are run via the xs command, all arguments passed after the name of the script (or package containing a Main.xs script) are passed to the script in the arguments array. This arguments object is an ordinary JavaScript array of strings, one element per argument passed on the command line.

% xs -f args.xs this is 'a test'

arguments[0] = this
arguments[1] = is
arguments[2] = a test
args.xs

for (var i = 0; i < arguments.length; i++) {
    print('arguments[' + i + '] = ' + arguments[i]);
}

The xdc object

In addition to the global objects added by Rhino to the JavaScript environment, XDCscript has an additional global object named xdc. This object servers as a "container" for a collection of methods and state common to all of XDCscript. This section summarizes some of the more commonly used methods. For a complete list of methods available see XDCscript Language Reference.

Methods for loading other files

XDCscript can load another script file. When a script file is loaded, any statements that are outside any function are executed. The functions and variables defined in the loaded script are available to the script that loaded the file.

On Windows-based hosts, directory paths specified in JavaScript statements can use either "\\" or "/" as a directory separator. However, UNIX-based hosts require you to use "/" to separate directory names within a file name. To ensure portability, you should always use "/" to separate directory names.

XDCscript provides the following methods for finding and loading files contained in packages:

  • xdc.loadCapsule() - An extension to JavaScript that runs JavaScript statements in any file and returns an object containing the variable and functions defined within the file.
  • xdc.findFile() - The method used to locate files based on either a package path relative name, an absolute path name or a current working directory relative name.
  • xdc.loadXML() - An extension to JavaScript that parses the specified XML file and returns an E4X object representing the contents of the file.

Suppose you find that you have some common code in a number of different configuration scripts. You can factor out and parameterize this common code by placing it in a separate script file, say bios_utils.xs, and place it in a package, say common.scripts, that appears on your package path. Now any script that would otherwise duplicate the code contained in bios_utils.xs can simply load it via xdc.loadCapsule().

var bios_utils = xdc.loadCapsule("common/scripts/bios_utils.xs");
bios_utils.doSomethingUseful();

Suppose you adopt a convention that every package has contains contains a file named version.txt containing package version information. The script below uses xdc.findFile() to locate the version.txt file in the package named my.pkg and prints its contents.

/* locate my.pkg's version.txt file */
var path = xdc.findFile("my/pkg/version.txt");

/* print its contents */
var file = new java.io.BufferedReader(new java.io.FileReader(path));
var line;
while ((line = file.readLine()) != null) {
    print(line);
}

Finally, the next example illustrates how to use xdc.loadXML() and E4X to display all of a package's external references. Every package contains a ./package subdirectory with several XML files that describe the package. One file, package.rel.xml, contained in all released packages contains a list of all external references. The example below displays this list for the xdc.runtime package. Note that like xdc.loadCapsule(), xdc.loadXML() searches the package path.

/* load the xdc.runtime package's release XML file */
var ext = xdc.loadXML("xdc/runtime/package/package.rel.xml");

/* use E4X extensions to get and display information from this file */
var references = ext.references["package"];
print("package " + ext["package"].@name + " references the following packages:");
for (var i in references) {
    print("    " + references[i].@name + " [" + references[i].@version + "]");
}

Methods for generating other files

While it is relatively easy to use the ability to write files (shown above) to create any text file, it is sometimes easier to use and maintain a "template" that is used to create a new file. For example, suppose you need to generate a C file whose contents are almost always the same except for a few computed data tables. Using a template allows you to easily adjust the output rather than wading through long sequences of 'file.write(" \n");' statements.

The XDCscript provides a few methods to simplify the generation of files based on templates.

  • var tplt = xdc.loadTemplate(template)
    read template into memory and return an object that can be used to "expand" the template into an output stream or into a new file.
  • tplt.genFile(fileName, thisObj, args, clobber)
    generate output to fileName, which is created if necessary. Unless clobber is true, an existing file is overwritten only when its content has truly changed.
  • tplt.genStream(outStream, thisObj, args)
    generate output to outStream, an instance of class java.io.PrintStream. All three parameters are passed to the underlying template generation function.

Template files contain lines of text that genFile() and genStream() automatically output when invoked. Templates also contain lines of XDCscript that are executed during expansion and can reference any object in the current environment – with $out, this, and $args bound to parameters of genStream().

The syntax of templates is quite simple. Lines that begin with the '%' character are treated as XDCscript and are not output. Line that don't begin with '%' are simply output without change unless they contain tokens within between back quotes (`...`). In this case the characters between the back quotes are evaluated as XDCscript expression and the resulting value replaces the expression in the output line.

The following examples summarize the statements that can appear in templates.

text`script expression`text …

A line of text to be output at this point. All expressions between `s are replaced with their (textual) value in the current context.

% script …

A single line of script to be executed at this point during expansion.

%%{

   stmt …

   stmt …

%%}

 Multiple lines of script to be evaluated at this point during expansion.  Variable and functions defined in such a block can be used in other lines, blocks, or expressions.

Example (generating copyrights from a template).   The following script and template illustrate many of the capabilities of templates.

 gen.xs

var template = xdc.loadTemplate("copyright.xdt");
template.genStream(java.lang.System.out, this,
    ["TI", arguments]);

 copyright.xdt

%%{
    var NAME = $args[0];
    var CTRB = $args[1];
    var DATE = new Date().getFullYear();
%%}
/*  Copyright `DATE` by `NAME`.
 *  All rights reserved. Property of `NAME`.
 *  Contributions from:
%for (var i = 0; i < CTRB.length; i++) {
 *      `CTRB[i]`
%}
 */

Running this script produces the following output.

 xs -f gen.xs bob carol ted alice

/*  Copyright 2008 by TI.
 *  All rights reserved. Property of TI.
 *  Contributions from:
 *      bob
 *      carol
 *      ted
 *      alice
 */

 Running scripts

TODO:   move to beginning or remove reference to xs above

In addition to using JavaScript and the extensions described above for configuration and build scripts, XDCtools provides a command line utility, xs, that allows you to run arbitrary scripts.  This allows you to easily experiment with XDCscript and create powerful utilities that don't require any additional tools.  For example, it is possible to use the xs command to start an interactive session that allows you to repeatedly enter XDCscript statements and see their results.

 % xs -i

js> print("hello");
hello
js> "this.is.a.test".replace(/\./g, '/')
this/is/a/test
js> quit
%

It is also quite easy to create and run arbitrary scripts.  For example, we can encapsulate the E4X example above to create a reusable script that displays any package's external references.

 refs.xs

function main(args) {
    /* convert package name to release XML file name */
    var file = args[0].replace(/\./g, '/') + "/package/package.rel.xml";
    print("loading " + file + " ...");

    /* load the specified package's release XML file */
    var ext = xdc.loadXML(file);

    /* use E4X extensions to get and display information from this file */
    var references = ext.references["package"];
    print("package " + ext["package"].@name + " references the following packages:");
    for (var i in references) {
        print("    " + references[i].@name + " [" + references[i].@version + "]");
    }
}

This script can be run using the -c option of the xs command.

 % xs -c refs.xs xdc.runtime

    loading xdc/runtime/package/package.rel.xml ...
    package xdc.runtime references the following packages:
        xdc.utils.tconf [1, 0, 0, 0]
        xdc.services.global [1, 0, 0]
        xdc.services.spec [1, 0, 0, 0]
        xdc.corevers [16, 0, 1, 0]
        xdc.bld [1, 0, 0, 0]
        xdc.services.intern.cmd [1, 0, 0, 0]
        xdc.services.intern.xsr [1, 0, 0]
        xdc [1, 1, 0, 0]
        xdc.shelf [1, 0, 0, 0]
        xdc.services.intern.gen [1, 0, 0, 0]
%

For more information about running XDCscript, see the xs Command Reference and for help debugging scripts see XDCscript Debugging.

 JavaScript and Java references

This document does not provide details on the syntax of the JavaScript language or on the Java packages that can be used. For reference information, we recommend the following sources:

  • JavaScript, The Definitive Guide, 3rd Edition, David Flanagan; O'Reilly 1998

  • ECMA-262 standard: http://www.ecma.ch/ecma1/STAND/ECMA-262.HTM

  • Rhino JavaScript interpreter: http://www.mozilla.org/rhino

  • LiveConnect: http://developer.mozilla.org/en/docs/LiveConnect

  • Java 2 SDK: http://java.sun.com/j2se/1.3/docs

  • java.io package: http://java.sun.com/j2se/1.3/docs/api/java/io/package-summary.html

 See also

Command - xs | XDCscript interpreter
XDCscript Debugging | Overview of script debugging techniques
XDCscript - xdc.traceEnable | Enable debug trace output
XDCscript - xdc.loadCapsule | Load specified capsule
XDCscript - xdc.findFile | Find file along the package path
XDCscript - xdc.loadXML | Load an XML file
XDCscript - xdc.loadTemplate | Create a template object from a template file

   [printable version]  [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"

Views

  • Special
    •

Personal tools

  • Log in / create account
    •

Navigation

  • RTSC-pedia home
    •

  • RTSC project home
    •

  • News & support
    •

  • Help
    •

binders

  • General Information
    •

  • RTSC Programming
    •

  • User's Guide
    •

  • Reference Manual
    •

package reference

  • XDCtools packages
    •

lists

  • Master doc-map
    •

  • Category query
    •

  • Redirected pages
    •

tools

  • Find+Replace (grep)
    •

  • RSS feed
    •

more tools

  • Upload file
    •

  • Special pages
    •

  Powered by MediaWiki

  • Privacy policy
    •

  • About RTSC-Pedia
    •

  • Disclaimers
    •


RTSC Packaging Primer/Lesson 4 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

RTSC Packaging Primer/Lesson 4

Elementary Packages — producing charlie.sqrtlib.samples

From this point forward, we'll explore RTSC packaging from the perspective of the producer—a content supplier looking to deliver collections of software artifacts housed within individual RTSC packages, ready for consumption by multiple clients using the tools and techniques illustrated in the last three lessons. With charlie.sqrtlib.samples serving as our first exemplar, we'll mainly focus upon the release phase of the package life-cycle—the process of manufacturing package archive files once the producer has built the package's contents.

You'll recall that charlie.sqrtlib.samples contains some source files used in the client application presented in Lesson 3; from the package producer's perspective, however, "building" the contents of this particular package becomes trivial.

Despite their overt simplicity, examining elementary packages like charlie.sqrtlib.samples reveals structural traits common to all RTSC packages—whether delivered independently or bundled as part of a larger product offering, or whether containing full-fledged RTSC modules built for multiple targets or just a handful of sample source files.

Contents

  • 1 Specifying the package
  • 2 Scripting package production
  • 3 Using the xdc command
  • 4 See also

Specifying the package

As shown pictorially back in Lesson 1, a RTSC package must contain a distinguished XDCspec source file named package.xdc within its corresponding package directory. While other special files and directories described shortly will potentially come and go as the package progresses through its natural life-cycle, both the presence and contents of package.xdc remain invariant—a trait shared by all RTSC packages, as they journey from producer to consumer.

In general, package.xdc specification files will define a number of high-level, client-visible features of the package at hand—including its mandatory globally-unique name. In the case of charlie.sqrtlib.samples, its package.xdc file actually contains very little beyond the bare minimum:

charlie/sqrtlib/samples/package.xdc
1
2

/*! Sample programs using charlie.sqrtlib */
package charlie.sqrtlib.samples {
    /* no module declarations */
}

Before we talk about the all-important package declaration, however, a few words about the comment preceding it at line 1: Most modern programming languages offer direct support for special documentation comments that you can embed within source files—Java offers "JavaDoc", Perl offers "PerlDoc", and so forth; integrated tooling then automatically generates appropriate user (client) documentation that in turn includes these comments. The XDCspec language follows suit, enabling content producers to embedded "XDoc" comments within .xdc specification files; utilities like xdc.tools.cdoc.sg in turn synthesize documentation for the content consumer.

In general, XDoc comments follow conventions already familiar to users of doxygen, a popular tool amongst C programmers for annotating headers files with a similar style of commentary—one coincidently rooted in the look-and-feel of JavaDoc. But setting syntax aside, don't forget the real purpose behind embedding XDoc comments in .xdc source files: to define a programmatic contract between client and supplier, which realistically requires a mixture of formal XDCspec declarations amplified with informal textual commentary.

Using a notation suggestive of a C struct, the XDCspec package declaration at line 2 should remind you that charlie.sqrtlib.samples ultimately represents a programmatic namespace that scopes all of the software artifacts contained within this package—just as C structures would scope individually named fields declared therein. And while this package contains no modules—unlike charlie.sqrtlib, which we'll explore in later lessons—the corresponding charlie/sqrtlib/samples package directory nevertheless serves as a kind of "protective domain" for the sample files delivered with this package.

Clearly, this package declaration tells us nothing about these sample files—their names, how to build them, where to modify them, and so forth. In practice, more XDCspec documentation comments could surely help here, yielding a concise yet complete reference page for clients consuming this package. To see what's possible, fire-up xdc.tools.cdoc.sg and browse to (say) the xdc.runtime package; there, you'll find a link to a viewable form of the xdc/runtime/package.xdc file that originally sourced this material (click on the text "sourced in xdc/runtime/package.xdc".)

Scripting package production

If we think of package.xdc as publicizing the external (client-visible) face of a RTSC package, the other special file depicted in the original figure from Lesson 1—namely package.bld—generally plays a more internal (supplier-centric) role in orchestrating package production. Unless suppliers make explicit provisions when releasing packages—that is, when manufacturing package archive files for delivery to clients—the special package.bld file generally stays behind.

Another difference between package.xdc and package.bld mirrors some distinct characteristics of the eXpanDed C languages respectively used to source their contents:

  • package.xdc files (written in the XDCspec specification language) will seem very declarative in nature, playing a role not unlike a C header file though on a somewhat grander scale; whereas

  • package.bld files (written in the XDCscript meta-language) will look more like an executable program that "does something", albeit expressed in a somewhat higher-level manner than possible with C.

Illustrating this point with a concrete example, we'll turn to the rather sparse package.bld script that actually drives production of the charlie.sqrtlib.samples package—which, if you recall, just contains a few sample files.

charlie/sqrtlib/samples/package.bld
1

2
3

var Pkg = xdc.useModule('xdc.bld.PackageContents');

Pkg.attrs.archiver = "zip";
Pkg.otherFiles = ["makefile", "prog.c", "prog.cfg"];

Details aside, the programming idioms used in this package.bld script in fact mimic what you've already seen in the prog.cfg meta-program presented in Lesson 3—another example of some XDCscript code that "does something". Back to package.bld, execution of this script effectively assigns some parameters of xdc.bld.PackageContents—a special meta-module bundled with XDCtools—much as prog.cfg assigned Bench.enable and Settings.optimize.

For C programmers unfamiliar with the "object-oriented" syntax of JavaScript—and hence XDCscript—the «object».«property» idiom at lines 2 or 3 are not unlike accessing a struct field in C. The root object here—held in a (local) variable named Pkg for brevity—results from a call to the useModule property of a special (global) object named xdc on line 1. The «object».«property» idiom is in fact more general than a simple field access, and also subsumes function calls of the form «object».«function»( «args» ); object-oriented languages often term functions invoked in this manner as methods.

After importing the PackageContents module at line 1, the assignment at line 2 selects which archive format to generate here—overriding the default value of "tar". The statement at line 3 then names an array of files (all found in the charlie/sqrtlib/samples package directory) to include within the generated package archive.

The array of otherFiles assigned at line 3 can in general name any sort of artifact rooted in the current package directory—source files, binary files, even other directories. Using the package.xdc spec and package.bld script listed here as templates—any collection of legacy content can become an elementary RTSC package.... It's just that simple!!

Barring any further assignments to the (many!) parameters of PackageContents, the package.bld script as it now stands prescribes that the charlie.sqrtlib.samples package will release a package archive named (by default) charlie_sqrtlib_samples.zip.

To appreciate its richness, fire-up xdc.tools.cdoc.sg and browse to the PackageContents module within the xdc.bld package; or alternatively visit rtsc.eclipse.org and browse through the set of statically-generated HTML pages found there—generated, incidentally, using a companion command-line utility know as xdc.tools.cdoc.

Using the xdc command

With the necessary package.xdc and package.bld files for charlie.sqrtlib.samples now in place, we'll proceed to build and release the package using another special command bundled with XDCtools. Appropriately named xdc, this command fundamentally performs the following sequence of steps when invoked from within a package directory:

  • parses the package.xdc file, which specifies many top-level features of the package at hand;
  • executes the package.bld script, the final state of which prescribes "what to produce"; and
  • generates package.mak, a standard GNU makefile which then controls the rest of the process.

If you're "playing along" and want to try running the xdc command, you'll first have to re-define the current package path (say, by setting the XDCPATH environment variable) to only contain the «examples» directory created back in Lesson 0. Unlike the released forms of the charlie.* packages consumed in the previous lessons, the «examples» repository holds buildable forms of these packages as evidenced by their supplier-centric package.bld files—a necessary requirement for using the xdc command.

The xdc command operates very much like gmake used in Lesson 3, in that both commands take "goals" as their arguments to designate a particular end-result. For example, invoking xdc clean from within any package directory (in our case, «examples»/charlie/sqrtlib/samples) would remove all generated files resulting from any prior use of the xdc command—such as package.mak as well as the special package/ sub-directory.

Similarly, invoking xdc release would build and release the contents of the current package according to the prescription laid out in package.bld, yielding the following output for this example:

1

2

3

%> xdc release
making package.mak (because of package.bld) ...
generating interfaces for package charlie.sqrtlib.samples (because ... ) ...
all files complete.
generating schema include file list ...
generating external package references package/package.ext.xml ...
generating package references graph package/package.rel.dot ...
making release file charlie_sqrtlib_samples.zip (because ... ) ...

Dissecting the output, line 1 confirms generation of the package.mak file—which only occurs when necessary, such as after editing package.bld. The output leading up to line 2 then reflects all of the steps actually needed to build the contents of the package—which here boils down to just creating and populating a special package sub-directory that holds additional generated files; for packages like charlie.sqrtlib, compilation of C source code into function libraries for one or more RTSC targets would happen at this point in the flow. Invoking xdc all (or just xdc by itself), drives the process to this juncture—yielding a built package.

Once built, the output leading up to line 3 reflects the release phase of the package life-cycle, culminating here with production of a single package archive file ready for delivery to any prospective client(s). The archive itself contains many (but by no means all) of the generated files placed in the special package sub-directory along the way. More important, perhaps, the package archive does contain the mandatory package/package.rel.xml file—which not only distinguishes a released package, but also contains a wealth of information accessed by hosted utilities such as xdc.tools.repoman and xdc.tools.path.

For all intent and purposes, the xdc command is gmake—invoking xdc will quickly transfer control in a very precise manner to a specific version of gmake bundled with the XDCtools product. But unlike our earlier example from Lesson 3 which contained a hand-crafted makefile, the xdc command instructs gmake to operate on the generated package.mak file found in all RTSC packages; and through the magic of gmake (evidenced by line 1 in the earlier output), package.mak will itself be (re-)generated from package.bld only when absolutely necessary. The xdc command handles (re-)parsing of the package.xdc spec file in a similar way.

See also

Command - xdc | eXpanDed C package build command
xdc.bld.PackageContents | Client documentation for xdc.bld.PackageContents
xdc.tools.cdoc.Markup | Client documentation for xdc.tools.cdoc.Markup

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


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 Wed, 08 Dec 2010 20:07:42 GMT


RTSC Packaging Primer/Lesson 5 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

RTSC Packaging Primer/Lesson 5

Package Build — compiling charlie.sqrtlib libraries

Continuing to examine packages from their producer's perspective, charlie.sqrtlib in many ways represents one of the "sweet spots" of RTSC—a standardized vehicle for delivering and deploying C headers and libraries, ultimately consumed within the sorts of client applications presented in Lesson 3. Unlike charlie.sqrtlib.samples (which, if you recall from the last lesson, housed only a handful of files delivered "as is"), producing a package such as charlie.sqrtlib requires us to first address the mechanics of package build—prescribing the compilation of a common base of C source code into multiple function libraries for multiple RTSC targets.

We'll in fact continue to examine charlie.sqrtlib over the next few lessons, exploring different dimensions of RTSC packaging from the producer's perspective. In several cases, we'll further refine the package.xdc and package.bld files first introduced in this lesson.

Contents

  • 1 Specifying the package
  • 2 Preparing config.bld
  • 3 Prescribing "what" to build
  • 4 Using the xdc command
  • 5 See also

Specifying the package

The XDCspec package.xdc file for charlie.sqrtlib follows the same pattern seen first in Lesson 4, but now adds an explicit declaration of its Settings meta-module within the scope of this package.

charlie/sqrtlib/package.xdc

1

/*! Library of square-root functions */
package charlie.sqrtlib {
    module Settings;
}

The declaration at line 1 merely introduces the Settings module; Lesson 7 will examine a separate XDCspec source file that further specifies client-visible features at the module level—such as the Settings.optimize configuration parameter used back in Lesson 3.

As with any programmatic scope—whether fields within a struct or local variables within a function—all modules must have unique names within the domain of their containing package. But since every RTSC package would already have a globally-unique name, the Settings module declared at line 1 likewise acquires its own (globally-unique) canonical identifier—charlie.sqrtlib.Settings in this case—which clearly distinguishes this particular module from any others with the same name, but in different packages.

More on package names. Recalling our use of multi-segment paths within #include directives from Lesson 3—the standard C idiom for identifying header files housed inside RTSC packages, such as charlie/sqrtlib/isqrt.h—we can't emphasize enough the importance of each package having a globally-unique name. Just as other RTSC packages can (and already do!) define their own Settings module, the supplier of charlie.sqrtlib also need not worry about potential clashes at the client's site with identically-named header files delivered in differently-named packages.

Mapping globally-unique package names to corresponding package directory paths simply reinforces this scheme, since (by definition) the charlie/sqrtlib directory can contain no more than one file named isqrt.h; searching the ordered set of repositories comprising the current package path—each of which (by definition) can have no more than one directory named charlie/sqrtlib beneath them—simply completes the story.

But with one critically important caveat: RTSC package names should only appear in lowercase, and not UPPERCASE or even camelCase. Following this naming convention—borrowed from Java, of course—not only allows us to easily spot RTSC packages in context, but also dances gracefully around the case-insensitivity of the Windows file-system.

So please, no packages named charlie.sqrtLib; and likewise, no packages with a pair of files named isqrt.h and ISQRT.h.

In the final analysis, though, the real challenge becomes choosing meaningful and stable programmatic identifiers for each RTSC package—no less important than the intellectual effort we already spend as C programmers naming our public types and functions. Said in other words, renaming a RTSC package once released has the same repercussions as renaming symbolic constants in headers or altering function signatures in libraries—each of these acts breaks existing programmatic contracts between suppliers and their clients, with untold impact to legacy applications.

While each RTSC package name canonically maps to a directory name, don't conversely presume that existing directory structures used in your current development flow provide a ready-made set of meaningful and stable RTSC package names. In practice, these directory trees often reflect transient organizational traits—a project code-name, the team's location, current status of the software—rather than persistent structural or functional qualities of the content itself; RTSC package names should try to emphasize the latter. Worse, these hierarchies can become excessively deep—again, often reflecting organizational complexities rather than architectural richness; exercise restraint here, since the RTSC package names you choose eventually become programmatic identifiers in someone else's source code.

Preparing config.bld

Before moving on to the package.bld script for charlie.sqrtlib, you'll need to prepare a special source file named config.bld which plays an important role within the overall RTSC build flow. Also written in XDCscript, config.bld provides a centralized locale for encapsulating the setup of individual RTSC targets and platforms—often involving information very specific to your development environment. Since execution of config.bld always occurs at the very beginning of the RTSC build flow, individual package.bld scripts can in general remain insulated from the specific palette of targets and platforms currently in play.

In practice, one config.bld script will typically define a common set of targets and platforms used consistently across an entire family of packages during production. To facilitate sharing, simply place your config.bld script at the root of some active package repository; the XDCtools in fact locate the current config.bld file by searching the current package path.

Since our package path now consists of just the «examples» directory, you'll find the current script in «examples»/config.bld.

config.bld
1

2a
2b

3a

3b

4

var Build = xdc.useModule('xdc.bld.BuildEnvironment');

var C64P = xdc.useModule('ti.targets.C64P');
var GCC = xdc.useModule('gnu.targets.Mingw');

C64P.rootDir = "«c6xtools»";
C64P.platform = 'ti.platforms.sim64Pxx';

GCC.rootDir = "«gcctools»";

Build.targets = [C64P, GCC];

Working backwards, the assignment at line 4 defines the array of RTSC targets actually used when we'll build the charlie.sqrtlib package later on; Build refers here to the special BuildEnvironment meta-module imported at line 1 which, as we'll see shortly, works hand-in-hand with the PackageContents module first introduced in Lesson 4. The Build.targets array itself consists of XDCscript objects corresponding to other distinctly-named RTSC modules first imported at lines 2a and 2b.

In the final analysis, setting up package build targets boils down to configuring modules like ti.targets.C64P—just as we've already configured the Bench and Settings modules back in Lesson 3, or how we've already assigned PackageContents parameters in Lesson 4. Like prog.cfg and package.bld, config.bld clearly "does something".

If you're "playing along", alter the strings on lines 3a and 3b to respectively reference the installation directories for the C6000 and GCC tools chosen back in Lesson 0. Linux-hosted developers should also substitute the 'gnu.targets.Linux86' module on the line 2b.

Prescribing "what" to build

Similar to what you've already seen in Lesson 4, the package.bld script for charlie.sqrtlib will programmatically define "what" to produce—for now, prescribing that this particular package will build a pair of function libraries named isqrt_loop and isqrt_unroll for each RTSC target.

charlie/sqrtlib/package.bld

1
2

var Build = xdc.useModule('xdc.bld.BuildEnvironment');
var Pkg = xdc.useModule('xdc.bld.PackageContents');

/* ---- what to build ---- */

for each (var targ in Build.targets) {
    Pkg.addLibrary("lib/isqrt_loop", targ).addObjects(["isqrt_loop.c"]);
    Pkg.addLibrary("lib/isqrt_unroll", targ).addObjects(["isqrt_unroll.c"]);
}

/* ---- what to release ---- */
    ...

With config.bld fresh in your mind—and in fact executed ahead of entering package.bld—the reference to the Build.targets array here on line 1 indeed tracks its earlier assignment back at line 4 of the config.bld script found along the current package path. In this particular setting, we've bound the loop variable targ to each successive element of the Build.targets array using a standard JavaScript for each statement—a very expressive XDCscript programming idiom which we'll use whenever iterating over a set of values.

Inside this for loop, the addLibrary calls at line 2 fully characterize the pair of C libraries compiled later on for each pre-configured target. In its simplest form, the addLibrary function inputs the prospective library's generic name (given as a relative path with respect to the current package directory, minus any target-specific file extensions) plus a specific RTSC target (bound here to the local variable targ). The newly-created XDCscript object returned by addLibrary further supports an addObjects function whose input consists of an array of source-file names.

The RTSC build flow in general and the xdc.bld.Library meta-module in particular support a wealth of more advanced features that give package producers complete control of the underlying compilation steps—adding -I and -D options to the command-line, selecting pre-defined compilation profiles such as "debug" or "release", or even overriding standard file extensions such as .a64P. Where appropriate, these attributes can apply to individual files within the library or else to the library as a whole. Package producers can furthermore override built-in defaults more globally, either by assigning corresponding attributes of the PackageContents module within individual package.bld files or else by configuring RTSC targets such as ti.targets.C64P within a more centralized config.bld script.

Portable Sources. Though it might seem a bit off-topic, let's take a quick look at some C source code—specifically, the space-efficient variant of the isqrt function declared within isqrt.h and implemented within isqrt_loop.c.

charlie/sqrtlib/isqrt.h

extern unsigned int isqrt( unsigned long val );

charlie/sqrtlib/isqrt_loop.c

unsigned int isqrt( unsigned long val )
{
    unsigned long temp, guess = 0, mask = 0x8000, shift = 15;

    do {
        if (val >= (temp = (((estimate << 1) + mask) << shift--))) {
           estimate += mask;
           val -= temp;
        }
    } while (mask >>= 1);

    return guess;
}

Those of you with a background in numerical analysis will recognize the Newton-Raphson method behind this rather compact piece of code. In the interest of space [sic!], we'll skip the rather lengthy time-efficient variant implemented within isqrt_unroll.c. You'll find more information on these (and many other) implementations of square-root in C here.

Needless to say, isqrt_loop.c is portable C source code—or at least "portable enough" that we can confidently compile the same source file using different RTSC targets corresponding to different C compilers generating object code instructions for different processor architectures. As C programmers, portability always remains an admirable and desirable objective whenever producing target content.

Our package.bld script has in fact achieved a similar level of portability—focusing on "what" to build rather than the details of "how" to build for a particular target. To really appreciate what we've achieved here, imagine maintaining a makefile (like the one found in charlie/sqrtlib/samples) which builds code using two (or three, or N) different tool-chains—all while hosted on Windows and Linux!!

Indeed, both the generality and scalability of our package.bld script over (say) a more declarative makefile results from something that lies at the very core of programming itself—the for loop back at line 1, which allows us to formulate a closed expression of the problem at hand.

We don't expect to change isqrt_loop.c for each new target.... So why can't package.bld remain portable as well?

Using the xdc command

Courtesy of the xdc command introduced in Lesson 4, we'll now clean-and-rebuild charlie.sqrtlib by invoking xdc clean followed by xdc all from within the package directory. Output from the latter command (edited slightly to improve readability) traces all the steps involved in transforming charlie.sqrtlib into a built package.

1

2

3a
3b
3c

4c

5c

6c

%> xdc all
making package.mak (because of package.bld) ...
generating interfaces for package charlie.sqrtlib (because ...) ...
    translating Settings

cl64P isqrt_loop.c ...
cl64P package/package_charlie.sqrtlib.c ...
archiving package/lib/.../isqrt_loop.o64P ... into lib/isqrt_loop.a64P ...

cl86GW isqrt_loop.c ...
cl86GW package/package_charlie.sqrtlib.c ...
archiving package/lib/.../isqrt_loop.o86GW ... into lib/isqrt_loop.a86GW ...

cl64P isqrt_unroll.c ...
cl64P package/package_charlie.sqrtlib.c ...
archiving package/lib/.../isqrt_unroll.o64P ... into lib/isqrt_unroll.a64P ...

cl86GW isqrt_unroll.c ...
cl86GW package/package_charlie.sqrtlib.c ...
archiving package/lib/.../isqrt_unroll.o86GW ... into lib/isqrt_unroll.a86GW ...

all files complete.

No different from when we built charlie.sqrtlib.samples in Lesson 4, the output at line 1 confirms generation of package.mak based upon the outcome of executing package.bld (which further leverages the results of first running the config.bld script found along the package path). In light of our earlier comments about the portability of package.bld versus a makefile, think of the xdc command as akin to a high-level language compiler—essentially transforming package.bld source code into package.mak object code that ultimately does the "real work".

When yesterday's source code becomes tomorrow's object code, that's progress.... Just as C compilers mechanically generate elaborate assembly language sequences that no programmer would necessarily craft by hand nor wish to maintain over time, the (often lengthy!) package.mak file generated by the xdc command after first running your package.bld likewise leverages many advanced features of the underlying gmake tool. Besides accurately capturing a wealth of inter-file dependencies that minimize re-build—a tedious process without automated support—the generated package.mak file also can robustly support parallel builds on multi-processor hosts by invoking the command xdc --jobs=N .... In general, the xdc command will simply forward any gmake options its receives to the underlying tool.

Moving on, command output at line 2 reflects some processing of a separate XDCspec source file associated with the Settings module introduced earlier at line 1 of the package.xdc for charlie.sqrtlib; more about this in Lesson 7. The remaining output delineates compilation of (portable) C source files into function libraries, yielding one pair of libraries for each RTSC target configured at line 4 of config.bld.

Using the isqrt_loop.a64P library as an exemplar for the others, the output at line 3a first confirms compilation of one of this package's source files (isqrt_loop.c) into a corresponding object file (isqrt.o64) buried (far!) beneath the special package sub-directory found in all built packages. Creating the library itself at line 3c will then pick up this previously generated object file—along with any others slated for inclusion in this particular library.

Rationalizing the generated package/package_charlie_sqrtlib.c source file compiled here at line 3b would take us far off-course from the topic at hand. Suffice it to say that the resulting .o64 object file—likewise archived into isqrt_loop.a64 at line 3c—has no effect upon client applications linking against this library further downstream.

Finally, we should once again emphasize that the xdc command will not only generate package.mak when needed, but will also forward this synthesized file to gmake which in turn dispatches the individual steps actually required to build the package. As you'd expect from gmake, invoking xdc all after modifying (say) isqrt_loop.c would only trigger a re-build of the libraries identified at lines 3c and 5c; but modifying (say) the common isqrt.h header included by each .c source file would trigger a re-build of all libraries. Needless to say, changes further upstream to package.bld (adding another library) or config.bld (adding another target) would force re-generation of package.mak itself.

See also

Managing Compiler Toolchains | How to manage XDCtools use of your compiler toolchain
xdc.bld.BuildEnvironment | Client documentation for xdc.bld.BuildEnvironment

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Managing Compiler Toolchains - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Managing Compiler Toolchains

How to manage XDCtools use of your compiler toolchain

Contents

  • 1 Background
  • 2 Configuring targets for your development environment
  • 3 How and when config.bld is used
    • 3.1 During package creation
    • 3.2 During configuration
  • 4 Leveraging an existing config.bld file
  • 5 Managing multiple toolchains

Background

The embedded C/C++ programmer's development environment often contains multiple C/C++ compiler toolchains from different vendors. It's not uncommon, for example, to use native C/C++ toolchains to develop and test large portions of an embedded code base before cross-compiling for execution on an embedded device. Native development is often used to enable software development to precede the availability of embedded hardware, allowing hardware and software development to proceed in parallel. But because each toolchain has unique project files, different compiler options, and unique tool usage requirements, native development is often supplanted by pure embedded development after hardware platforms become available. Maintaining two unique sets of project files is a luxury most teams can't afford and later regret when, late in a project, intermittent failures — easily debugged on native platforms — require heroic efforts by the best developers to find using the limited tools typically available on embedded devices.

XDCtools is designed to make the transition between different C/C++ toolchains as seamless as possible. This has several advantages for embedded development:

  • testing and debugging - by making it easy to move back and forth between native and embedded development environments at any point in the development cycle, you can always quickly leverage the best debugging, profiling, and analysis tools of any toolchain as well as state of the art runtime error trapping provided by native platforms that allow you to trap NULL pointer use (via native platform MMU support) and even use of uninitialized data (via tools like valgrind);
  • porting to new devices - support for new devices often requires no change to any source files including project build files that are usually tied to specific toolchains; and
  • product-line reuse - projects can simultaneously support multiple devices with little or no effort, even devices with completely different instruction sets (e.g, a TI C6x DSP and an Arm with custom accelerators).

To enable these benefits, XDCtools "abstracts" cross-development toolchains by always referencing these toolchains through a single fixed interface (xdc.bld.ITarget). This means that any toolchain supporting this interface can be used with XDCtools. Toolchains support this interface by providing one or more targets; i.e., modules that implement the ITarget interface. Most developers never need to implement this interface, they simply use a target supplied by someone else: typically the first developer who needs to use a particular toolchain for a project. While creating a target often requires fairly intimate knowledge of the toolchain and the C language, once it's created, all other developers use it by simply passing its name to those tools requiring use of the toolchain.

Configuring targets for your development environment

In order for targets to work in your development environment, you must "configure" each target with information specific to your development host. You must, at a minimum, specify the installation directory of each compiler toolchain you plan to use. This information is specified in a special file named "config.bld" and, although this file is an XDCscript file, its contents are often quite simple.

config.bld
1
2

var C64P = xdc.module("ti.targets.C64P");
C64P.rootDir = "/user/local/ti/c64/6.1.2";

Line 1 loads the specified target, returning an object whose configuration parameters can be set on subsequent lines. Line 2 of this script specifies the only required parameter to use a target: rootDir — the installation directory of the compiler. This simple two line file is sufficient to enable the full functionality of XDCtools with TI's C64P compiler tool chain. As you might expect, adding support for other toolchains amounts to adding another two lines per toolchain.

While using a hard coded path in a config.bld script is the simplest way to get started, when integrating with an existing development environment, the fact that config.bld is an XDCscript script means that it's also easy to seamlessly inter-operate with existing tools. It's possible to reference environment variables, read external files, load XML files, and even run external commands. Suppose, for example, that your development group maintains all cross-development tools on a shared network drive and that the location of these tools is specified by an environment variable named TOOLS. The following config.bld script uses TOOLS to configure the ti.targets.C64P target.

config.bld
1
2
3

var tools = java.lang.System.getenv("TOOLS");
var C64P = xdc.module("ti.targets.C64P");
C64P.rootDir = tools + "/c64/6.1.2";

Line 1 gets the value of the TOOLS environment variable, line 2 loads the ti.targets.C64P target, and line 3 sets the rootDir configuration parameter to the value of TOOLS followed by "/c64/6.1.2". For more information about the capabilities of XDCscript scripts see The XDCscript Language.

Addition of strings in XDCscript results in a new string formed by concatenating the operands.

In addition to bridging XDCtools with your existing development environment, config.bld is used to centralize the definitions of target-specific or development-group-specific options enabling you to avoid duplicating this information in every project's build files. Duplication of this information is generally a bad practice as it makes it difficult to change or fix bugs in options passed to your compiler(s). Suppose, for example, that your development group has a convention that all debug builds have the C macro definition DEBUG defined and no code should disable interrupts for more than 100 instruction cycles. Starting with the config.bld file above, the following example configures the ti.targets.C64P target to support both of these new requirements.

config.bld

var tools = java.lang.System.getenv("TOOLS");
var C64P = xdc.module("ti.targets.C64P");
C64P.rootDir = tools + "/c64/6.1.2";
/* define group-specific macros for debug builds */
C64P.profiles["debug"].compileOpts.defs = "-DDEBUG";
/* never disable interrupts for more than 100 cycles */
C64P.ccOpts.prefix = "-mi=100";

Every project using this config.bld can rely on the DEBUG macro being defined for debug builds and, perhaps more importantly, you can be sure that all such projects are compiled in such a way that the compiler never allows loops to disable interrupts for more than 100 cycles. If, in the future, you decide that it would be better to allow 150 cycles (to give the compiler more optimization flexibility and get some performance gain), you can change this single file and simply rebuild all affected projects.

For more information about configuration options available, see the xdc.bld.ITarget reference for options supported by all targets and the reference documentation for individual targets for options specific to that target; for example, the ti.targets.C64P reference page lists configuration options specific to the C64P target.

As you can see, config.bld files for mature development efforts can easily grow to more than the two lines shown above. Fortunately, since config.bld files are XDCscript files, it is possible to factor common settings into a single file and then load and modify these setting on an as needed basis. The section Leveraging an existing config.bld file below illustrates this technique.

How and when config.bld is used

There are several points in the development process where information about your C/C++ toolchains and hardware platforms is required by XDCtools:

  • as part of the configuration process, xdc.tools.configuro generates a C file which is compiled into an object file that must be linked into the final application
  • during the creation of a package, the xdc command determines and records the versions of the compilers used to build the package, and
  • if you opt to use xdc to build your C/C++ sources, the makefiles generated by xdc contain references to each of your toolchain's tools (compilers, linkers, and archivers).
During package creation

During package creation. The xdc command is used to create one or more releases of a package — simple archives (.tar, .tar.gz, or .zip) containing all the files necessary to use a package. A single version of a package can have multiple releases. For example, you may produce two releases of a codec package from a common set of sources, one that runs on a C6x architecture and one that runs on an Arm.

The xdc command is capable of compiling your sources or simply assembling files created via some other tools. But, whether you use xdc to compile your sources or not, the xdc command must be used to create releases of a package. This ensures that each release archive has the appropriate meta-data properly collected and stored in the specially named files which enables other tools to "see" and operate on the package as a whole. It's the meta-data about the package that allows package display tools to report package version numbers and release labels, the configuration tool to validate compatibility of the packages used in an application, and the repository management tools to know which packages are supplied by product bundles and to validate the compatibility of the packages placed in a repository.

The xdc command distinguishes between packages that are "buildable" from those that are not by the existence of a file named package.bld. As you might have guessed from this file's suffix, package.bld is related to config.bld and is also an XDCscript file. The package.bld script specifies what each release of a package must contain. During the processing of package.bld, this script reads information from the xdc.bld.BuildEnvironment module and updates the information maintained by the xdc.bld.PackageContents module. The contents of each release of a package is entirely determined by the state of the xdc.bld.PackageContents module at the conclusion of package.bld. But, before processing package.bld, the xdc command first runs config.bld to "configure" your build environment and set options that are shared across multiple packages.

config.bld

var Build = xdc.module("xdc.bld.BuildEnvironment");
var Pkg = xdc.module("xdc.bld.PackageContents");

var C64P = xdc.module("ti.targets.C64P");
C64P.rootDir = "«compiler_install_dir»";
Build.targets = [C64P];         /* only build using C64P target */

Pkg.attrs.archiver = "zip";     /* package archive format is .zip */
Pkg.attrs.profile = "debug";    /* default build profile is "debug" */

As a rule, config.bld contains settings that are specific to your development environment (installation directories of compiler tool chains, optional compiler flags, etc.) whereas package.bld only specifies what should be in each package release. By keeping development environment specific information out of package.bld, your packages become portable; any developer can re-build the package without making any changes to the files within the package itself. The config.bld file becomes a convenient place to specify "global" conventions shared by all packages; e.g., the package archive format, compiler-specific options that control the level of warnings, etc.

Since config.bld scripts are used to initialize xdc.bld.BuildEnvironment, which is the input to package.bld scripts, the xdc command requires a config.bld file and, unless it's explicitly specified on the command line or it exists in the current package being built, xdc looks for it along the package path. This allows each package to easily override global conventions set by a shared config.bld or to simply use a shared config.bld.

During configuration

During configuration. The xdc.tools.configuro tool automatically generates a config.bld file based on its command line parameters. The configuro tool's command line parameters allow you to either explicitly name the installation directory of your compiler (convenient within makefiles that often already have this information) or specify the location of a hand-crafted config.bld file. If you pass a config.bld file to configuro on the command line, the config.bld file generated by configuro loads the hand-crafted file, chooses a single target, and sets the compiler's installation directory (if it was specified in the command line).

For example, command line "xs xdc.tools.configuro -t «target_name» -c «compiler_install_dir» ..." causes configuro to create and use a config.bld file whose contents are shown below.

config.bld (generated by configuro)
1
2
3

var target  = xdc.module("«target_name»");
target.rootDir = "«compiler_install_dir»";
Build.targets = [target];

Line 1 loads the target specified on the command line, line 2 configures the target's installation directory, and line 3 tells the XDCtools build engine to only build for this one target.

Similarly, if you also specify a hand-crafted config.bld to be used (via -b «config_bld_file»), configuro will generate the following config.bld for its use.

config.bld (generated by configuro)
1

xdc.loadCapsule("«config_bld_file»");
var target = xdc.module("«target_name»");
target.rootDir = "«compiler_install_dir»";
Build.targets = [target];

In this case, the user specified «config_bld_file» is loaded on line 1 and this file can configure the target «target_name» with additional compiler flags, a different default platform, new or modified profiles, etc.

As you can see from the generated config.bld files, configuro always specifies a single target. Even if your config.bld file configure multiple targets, configuro always assigns Build.targets an array containing a single target.

Leveraging an existing config.bld file

Sometimes a project simply needs to augment or slightly modify a config.bld that is shared among a set of related projects. Since config.bld files are XDCscript files that can load and execute other scripts, it's easy to create a simple config.bld that loads a "common" config.bld and makes minor changes. This technique allows you to maintain central control with a single config.bld while still allowing for the rare (but inevitable) exception.

One technique for sharing a common config.bld, while still allowing minor changes, is to place the shared config.bld in a sub-directory, say ./common, of any repository named on your package path. Whenever you need to create a config.bld script that is a minor variation of the common config.bld, simply use xdc.loadCapsule() to find and load the common file.

config.bld
1

var common = xdc.loadCapsule("common/config.bld");
    :

Since xdc.loadCapsule() searches along the package path for the specified file, line 1 only needs to name the sub-directory and file rather than an absolute or relative path to the shared file. This makes the new config.bld file both portable (to other workstations) and position independent. Even though xdc.loadCapsule() searches along the package path, the sub-directory ./common does not itself have to be a package.

For the sake of creating a complete example, suppose you just need to add the -mo compiler flag to all ti.targets.C64P builds within a project and that this flag should not be used in any other project. Assuming we use a shared config.bld in a ./common sub-directory of some repository named on the package path, the following config.bld will do the trick.

config.bld

var common = xdc.loadCapsule("common/config.bld");
var C64P = xdc.module("ti.targets.C64P");
C64P.ccOpts.prefix = C64P.ccOpts.prefix + " -mo";

Managing multiple toolchains

All of the config.bld examples we've seen so far have configured a single target. After all, when you first start development on a project, you'll generally begin with a single C compiler toolchain. As development matures, however, it's not uncommon to port a code base to another target. Fortunately, adding support for multiple toolchains is quite easy: you simply name the new target and set its rootDir configuration parameter in the same config.bld file that you started with.

Starting with the config.bld above that was used by the xdc command to build content using the ti.targets.C64P target, suppose we want to re-build the same code base for native execution on a Linux platform.

config.bld

1
2
3

var Build = xdc.module("xdc.bld.BuildEnvironment");
var Pkg = xdc.module("xdc.bld.PackageContents");

var C64P = xdc.module("ti.targets.C64P");
C64P.rootDir = "«c64_compiler_install_dir»";
var Linux86 = xdc.module("gnu.targets.Linux86");
Linux86.rootDir = "«linux_compiler_install_dir»";
Build.targets = [C64P, Linux86];  /* build using both C64P and Linux86 targets */

Pkg.attrs.archiver = "zip";       /* package archive format is .zip */
Pkg.attrs.profile = "debug";      /* default build profile is "debug" */

As before, line 1 loads the new target, line 2 configures this target's installation directory, and line 3 tells the XDCtools build engine to build for both targets. If your packages use xdc to compile your sources and these sources are portable C, these three lines are sufficient to build your packages for both native execution on a Linux platform and execution on an embedded C64P device; no changes to individual packages are required.

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


RTSC Packaging Primer/Lesson 6 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

RTSC Packaging Primer/Lesson 6

Package Release — manufacturing charlie.sqrtlib archives

Having finally built charlie.sqrtlib, we'll return again to the process of creating deliverable archives during the release phase of package production. Using charlie.sqrtlib as illustrative of a "typical" RTSC package that houses target content, we'll now explore some more advanced capabilities of the xdc.bld meta-modules which ultimately give the package producer greater control at the tail-end of RTSC build flow.

This lesson will also expose even more of XDCscript as a general-purpose programming language, useful for scripting a wide-range of hosted tasks often required when producing a RTSC package.

Contents

  • 1 Releasing multiple archives
  • 2 Filtering released content
  • 3 Using the xdc command
  • 4 See also

Releasing multiple archives

The basic xdc.bld mechanisms first introduced in Lesson 4 for defining the contents of the (default) package archive file can in fact scale to handle scenarios when a single package yields multiple archives. As an example, let's assume the supplier of charlie.sqrtlib wants to manufacture three distinctly named package archives:

  • charlie_sqrtlib.zip, which delivers (binary) libraries compiled for all RTSC targets;
  • charlie_sqrtlib-DSP.zip, which delivers (binary) libraries compiled only for one target; and
  • charlie_sqrtlib-SRC.zip, which delivers a buildable (source) form of the original package.

Another variation on this theme occurs when suppliers wish to deliver a special "evaluation-only" release of their content that may lack certain features otherwise available in the default "production-quality" offering.

To illustrate the technique, we'll now complete the package.bld script for charlie.sqrtlib begun in the last lesson—filling in the details of what to release as well as what to build.

charlie/sqrtlib/package.bld

1

2

3

4

5

var Build = xdc.useModule('xdc.bld.BuildEnvironment');
var Pkg = xdc.useModule('xdc.bld.PackageContents');

/* ---- what to build ---- */

for each (var targ in Build.targets) {
    Pkg.addLibrary("lib/isqrt_loop", targ).addObjects(["isqrt_loop.c"]);
    Pkg.addLibrary("lib/isqrt_unroll", targ).addObjects(["isqrt_unroll.c"]);
}

/* ---- what to release ---- */

Pkg.attrs.archiver = "zip";
Pkg.otherFiles = ["isqrt.h"];

var relDSP = Pkg.addRelease("charlie_sqrtlib-DSP");
relDSP.otherFiles = ["lib/isqrt_loop.a64P", "lib/isqrt_unroll.a64P"];
relDSP.attrs.label = "DSP";

var relSRC = Pkg.addRelease("charlie_sqrtlib-SRC");
relSRC.attrs.exportAll = true;
relSRC.attrs.label = "SRC";
relSRC.attrs.relScript = "./copyright.rel";

With multiple releases defined here, the pair of assignments at line 2 in fact prescribe characteristics common to all archives produced by this package—not just the package's "default" archive (automatically added under the name "charlie_sqrtlib" and labeled as "default"). In this example, all package releases would use .zip files; and all package releases would include the isqrt.h header.

Explicit calls to the addRelease meta-function at lines 3 and 4 then return new XDCscript objects with an analogous set of assignable properties, selectively updated to override or else extend default values taken from the PackageContents module itself. Looking closer at the DSP-only release defined after line 3, the assignment here to otherFiles effectively adds these two libraries to the array of files already common to all releases—just isqrt.h in our case; the assignment of "DSP" to attrs.label, by contrast, replaces its original "default" value.

You might note that adding the same pair of function libraries (compiled for "all" targets) to the default package release happens implicitly here—a convenient side-effect of the fact that we've already named these libraries as generated artifacts via the addLibrary calls after line 1. Suffice it to say that the RTSC package build flow already comprehends many different categories of generated files; and the default package release will automatically contain an appropriate subset of these if the supplier takes no further action.

In the case of the source-code release defined after line 4, setting attrs.exportAll effectively adds all of the files not generated during package build to this particular archive—including the package.bld file itself. As a further consequence of the addLibrary calls after line 1, this set includes the C source files directly used when generating the lib/isqrt_loop and lib/isqrt_unroll libraries.

In cases where a package producer must deliver libraries built outside of the RTSC build flow—but nevertheless still rooted in the current package directory—simply follow the protocol first illustrated in Lesson 4 and add their paths to the otherFiles array. Along these lines, we should mention that the PackageContents meta-module has a makePrologue and makeEpilogue property through which producers can furnish customized gmake command sequences that will bracket the generated package.mak file. Strange as it might seem, the xdc command (alias gmake) could in fact fire off a legacy build flow for some legacy content; and by applying the techniques illustrated between lines 2 and 5 of the earlier package.bld script, the containing package could even release a buildable form of itself.

Filtering released content

Besides prescribing the file-level contents of individual archives manufactured during package release, more advanced mechanisms exist that allow you to filter individual files as well—programmatically transforming a copy of the file itself just before adding it to one of the released package archives. As a motivating (and not uncommon) example, let's assume the supplier of charlie.sqrtlib wants to add a special comment of the form /* Copyright Charlie & Co. */ at the top of each .c file included in this package's source-code release.

The assignment to attrs.relScript at line 5 of the package.bld script presented above already sets the stage, naming yet another XDCscript source file which then organizes and performs the filtering per se. As evidenced from the form of its name, the ./copyright.rel file presumably exists within the charlie/sqrtlib package directory.

In practice, a file like copyright.rel might reside within a separate package—say, charlie.common—used to house artifacts shared across Charlie & Co. Our package.bld script would then reference this file as "charlie/common/copyright.rel" using a stable canonical name ultimately resolved by searching the current package path—no differently from the #include directive used in Lesson 3.

charlie/sqrtlib/copyright.rel
1

2

3

4

5

6

7

8

var Manifest = xdc.useModule('xdc.bld.Manifest');

for each (var fname in Manifest.files) {
    if (!fname.match(/[\/]package[\/]/) && fname.match(/[\.]c$/)) {
        var filter = new Manifest.Filter();
        filter.operation = addComment;
        Manifest.filterMap[fname] = filter;
    }
}

var COPYRIGHT_COMMENT = "/* Copyright Charlie & Co. */\n\n";

function addComment( filter, src, dst, base )
{
    print("copyrighting " + base + " ...");

    var infile = new java.io.BufferedReader(new java.io.FileReader(src));
    var outfile = new java.io.BufferedWriter(new java.io.FileWriter(dst));

    outfile.write(COPYRIGHT_COMMENT);

    var line;
    while ((line = infile.readLine()) != null) {
        outfile.write(line);
    }

    infile.close();
    outfile.close();
}

Similar to how package.bld manipulates PackageContents, this script works with parameters of the special Manifest meta-module imported at line 1—likewise found in the xdc.bld package bundled with XDCtools. The main portion of this script iterates over each file name contained in the Manifest.files array, beginning at line 2. Using a built-in XDCscript method for matching character strings against regular expressions (courtesy of the underlying JavaScript engine), files not found within the special package/ sub-directory and whose names end with .c become entries in the Manifest.filterMap at line 4.

Our copyright.rel script bypasses generated C files like package/package_charlie_sqrtlib.c, discussed briefly back in Lesson 5.

Each entry in Manifest.filterMap—an XDCscript hash-table keyed by the names of individual files—itself represents another XDCscript object of type Manifest.Filter, newly-created back at line 3. The value then assigned to this object's operation property further identifies an XDCscript function called addComment, also defined inside of copyright.rel beginning at line 5.

Other properties of Manifest.Filter objects not only enable you to pass additional arguments to the operation function, but also give you the flexibility to actually choose a different name for the corresponding file. Taking matters one step further, your release script can directly manipulate the Manifest.files arrays—not only removing unwanted files but even adding (newly-generated!) files at this time. Collectively, these capabilities allow package producers to accommodate a wide range of physical designs when manufacturing package archives—even legacy designs that don't necessarily align with RTSC conventions.

Turning now to the body of addComment—which may even surprise some readers already familiar with JavaScript—this function basically writes the COPYRIGHT_COMMENT string to the output file (named dst) [7] followed then with each successive line read from the input file (named src) [8]. Note that while dst will generally reference a temporary directory used in manufacturing package archives, the base argument to addComment printed at the outset [6] mirrors the original file name contained in the Manifest.files arrays searched back at line 2; for completeness, the filter argument to addComment tracks the Manifest.Filter instance object originally created back at line 3.

Contrary to what the textbooks may tell you, JavaScript can script Java—or at least the Rhino/JavaScript engine underlying XDCscript can, using a technology known as LiveConnect. In a nutshell, this technology grants scripts access to any of the public fields or functions available through any Java class—no differently from how we've already accessed client-visible properties of native XDCscript objects. This bridge to the world of Java consequently puts a large, robust, and widely-deployed base of general-purpose capabilities—file management, network services, graphics toolkits, and so forth—at the immediate disposal of XDCscript content developers.

Using the xdc command

Invoking the xdc release command—first illustrated back in Lesson 4—would here manufacture all three of the package archives prescribed in the package.bld script for charlie.sqrtlib. Alternatively, you can manufacture just one of these package archives by invoking (say) xdc release,charlie_sqrtlib-SRC from within the package directory.

1

2

%> xdc release,charlie_sqrtlib-SRC
all files complete.
making release file charlie_sqrtlib-SRC.zip (because of ...) ...
copyrighting charlie/sqrtlib/isqrt_loop.c ...
copyrighting charlie/sqrtlib/isqrt_unroll.c ...

The output at line 1 reflects the fact that we've already built this package; otherwise, you'd see output commensurate with invoking xdc all immediately before running this command. As you'd expect from any flow based on gmake, the generated package.mak file for this package enforces this dependency and re-builds when necessary.

The output at line 2 tracks the print statement at line 6 of copyright.rel—not only confirming that we've extracted the correct files from the Manifest.files array beginning at line 2 of the same file, but also reinforcing the fact that copyright.rel executes near the end of the RTSC build flow.

To increase your understanding here, try dropping a print statement inside of the package.bld script after line 1 which then displays the current value of the targ.isa property—the "instruction-set architecture" for this particular target. Upon re-entering the same xdc release,charlie_sqrtlib-SRC command, you'd now see additional output with values like "64P" or "x86" at the very beginning of the process—when package.bld itself executes prior to generating the package.mak file which then manages the rest of the flow.

See also

TODO: write it

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


RTSC Packaging Primer/Lesson 7 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

RTSC Packaging Primer/Lesson 7

Program Configuration — selecting charlie.sqrtlib libraries

Having finally built and released the charlie.sqrtlib function libraries—one pair per RTSC target—we'll turn now to the task of selecting the appropriate library from this set during program configuration at the client's site. While the configuration process in general affords packages many opportunities to become active participants in building client applications—which we'll highlight towards the end of this lesson—selecting the appropriate function libraries that satisfy a particular set of program requirements becomes another "sweet spot" of RTSC packaging.

As you may recall from the flow introduced in Lesson 3, program configuration requires that the client designate a particular RTSC target as an input to the process—clearly one factor in guiding library selection. But you may also recall that the client configured the optimize parameter of the charlie.sqrtlib.Settings module in prog.cfg—an additional piece of data used internally by the package when choosing between the isqrt_loop and isqrt_unroll libraries for the current target.

Contents

  • 1 Specifying the Settings module
  • 2 Implementing the getLibs function
  • 3 The xdc.IPackage interface
  • 4 See also

Specifying the Settings module

From the very outset, we've exposed you to a wide range of RTSC modules used in a variety of contexts:

  • acme.utils.Bench, with its begin and end functions and its enable configuration parameter;
  • xdc.bld.PackageContents, with its addLibrary function and otherFiles parameter;
  • ti.targets.C64 and gnu.targets.Mingw, with their rootDir parameters; and now
  • charlie.sqrtlib.Settings, with its optimize configuration parameter.

As a rule, content suppliers will explicitly declare the public (client-visible) features of a RTSC module—its constants, types, parameters, functions—through a separate XDCspec source file found in the corresponding package directory. Applying a simple physical design pattern borrowed from Java, the specification for the charlie.sqrtlib.Settings module must reside in a file named Settings.xdc housed in the charlie/sqrtlib package directory.

charlie/sqrtlib/package.xdc

1

/*! Library of square-root functions */
package charlie.sqrtlib {
    module Settings;
}

charlie/sqrtlib/Settings.xdc

2

3

4

/*! Controls library selection during program configuration */
metaonly module Settings {

    enum OptType {
        OPTIMIZE_FOR_SPACE,
        OPTIMIZE_FOR_TIME
    };

    config OptType optimize = OPTIMIZE_FOR_TIME;
}

To complete the picture, we've also listed the package.xdc specification file for charlie.sqrtlib which first introduces the Settings module within the scope of this package at line 1.

Even more suggestive of a header file—but clearly expressed in a higher-level language than C—Settings.xdc like package.xdc before it defines its own namespace that in turns scopes other programmatic identifiers. In the case of the module declaration beginning at line 2—again, using a notation suggestive of a C struct—we've then introduced OptType and optimize within the scope of Settings itself.

The enum declaration at line 3 mirrors the syntax and semantics of C, and merits no further explanation at this point. As for the config declaration at line 4—a new keyword to match a new construct—suffice it to say that optimize becomes a property of the XDCscript object representing the Settings module with the client's prog.cfg file, with OPTIMIZE_FOR_TIME serving as its initial (default) value. Not unlike variables or fields in C, config declarations will effectively constrain the type of values this parameter can receive during assignment.

As a practical matter, virtually any sort of declaration normally placed within a C language header file—constants, types, functions—can appear within an XDCspec module specification with little or no change. Suffice it to say that you'd find const, typedef, struct, and extern amongst the keywords of the XDCspec language; a cursory scan through some of the module specifications bundled with the XDCtools product—viewed using xdc.tools.cdoc.sg or else by browsing rtsc.eclipse.org—would also reveal an XDCspec type system that effectively supersets standard C.

Implementation domain. Whereas all RTSC modules will uniformly define their public client-visible features through a corresponding XDCspec source file—invariably found within the containing package directory, and viewable through client documentation utilities such as xdc.tools.cdoc.sg—internal implementation strategies can vary considerably from one module to the next:

  • acme.utils.Bench has C-based implementations for its begin and end functions, callable from within executable target programs at runtime; whereas

  • xdc.bld.PackageContents has an XDCscript-based implementation for its addLibrary function, callable from within hosted scripts generally running in a very specific context.

Our charlie.sqrtlib.Settings module of course has no functions at all, just a configuration parameter plus some supporting types and constants; practically speaking, the module does not require a private implementation in either programming language. Still, to reinforce the fact that its features remain limited to the client's configuration meta-program—as opposed to also having a presence in the client's executable target-program—we've qualified the declaration back at line 2 with the metaonly keyword.

By contrast, a module like acme.utils.Bench—whose XDCspec specification omits the metaonly keyword—maintains a presence in the domain of XDCscript and C. In particular, the final value held by the assignable Bench.enable parameter at configuration-time becomes the initial value of the Bench_enable const at run-time—used internally within the C implementation of the Bench_begin and Bench_end functions. The concept of a single XDCspec specification—one set of constant, type, parameter, or function declarations in a C-based notation—driving a realization within the XDCscript meta-language as well as the C target-language remains a basic premise of RTSC.

Implementing the getLibs function

Back to the task at hand—selecting the appropriate set of libraries during program configuration—RTSC packages can explicitly participate at this stage of the process by implementing a special meta-function named getLibs. Sourced in XDCscript and found in a special file named package.xs within the corresponding package directory, the getLibs function returns a string naming each library actually used further downstream when linking the current program.

The makefile and prog.cfg script used to build and configure the client application in Lesson 3 respectively selected ti.targets.C64P as the program's target and assigned OPTIMIZE_FOR_TIME to the Settings.optimize configuration parameter. As you'd discover by inspecting the program linker.cmd file generated through the RTSC configuration process, this particular combination of inputs selects lib/isqrt_loop.a64P as the library contribution from the charlie.sqrtlib package.

charlie/sqrtlib/package.xs

1
2

3

4

5

function getLibs( prog )
{
    var pkg = this;
    var Settings = pkg.Settings;

    var suffix = prog.build.target.findSuffix(pkg);
    var name;

    switch (Settings.optimize) {
        case Settings.OPTIMIZE_FOR_SPACE:
            name = "isqrt_loop";
            break;
        case Settings.OPTIMIZE_FOR_TIME:
            name = "isqrt_unroll";
            break;
    }

    if (suffix && name) {
        return "lib/" + name + ".a" + suffix;
    }
    else {
        return null;
    }
}

Automatically invoked during the final stages of RTSC configuration—well after first executing the client's prog.cfg script—the getLibs function has access to two important XDCscript objects used when constructing the list of libraries contributed by this package:

  • prog (an explicitly named argument to getLibs) references an object whose properties characterize the program as a whole—including information about the current target extracted at line 3; and

  • this (an implicit argument to getLibs) references an object representing the charlie.sqrtlib package per se—bound here to the local variable pkg at line 1 to improve readability.

In object-oriented languages such as XDCscript, calls of the form «object».«function»( «args» )—sometimes termed a method invocation—would here bind the distinguished variable this to the value of «object» once inside the body of «function». Said another way, the configuration process automatically invokes the getLibs method on each XDCscript «package-object» corresponding to some RTSC package contributing directly or indirectly to the current program.

Working backwards now, the string returned at line 5 relies on earlier assignments to suffix and name—which would here assume the values "isqrt_loop" and "64P" in light of our client application from Lesson 3. In general, the string returned by getLibs can name multiple libraries with ";" as a delimiter; and, in cases where a particular package has no libraries to contribute, getLibs can return an empty string "" or else the special value null.

Moving up the page, the switch statement beginning at line 4 discriminates amongst the set of possible values currently held by Settings.optimize—values of type OptType specified earlier at line 3 of Settings.xdc—and then appropriately assigns the local variable name. As for the binding of Settings at line 2 of getLibs, we've accessed the XDCscript object representing this module using a «package-object».«module-name» idiom, where pkg (alias this) here references the charlie.sqrtlib package object.

As an alternative, we could have called xdc.useModule('charlie.sqrtlib.Settings') at line 2 to retrieve the corresponding module object, though somehow leveraging the package object already available to getLibs seems more self-contained in this example.

Completing the story now, the assignment to suffix at line 3 starts with the object bound to the prog argument of getLibs and then eventually navigates to a findSuffix function defined on targets; taking the current package object as its argument, findSuffix reflects on all targets used when building this package and returns the suffix "most compatible" with the target selected for this program configuration. Internally, findSuffix comprehends the rather rich backward-compatibility relationships that often exist amongst targets—for instance, "newer" targets (like ti.targets.C64P) can often link libraries compiled with "older" targets (like ti.targets.C62).

To test your understanding, the value of this within the body of the findSuffix function would here reference an XDCscript object corresponding to the ti.targets.C64P target—the same meta-module we've configured earlier within the config.bld script prepared at the producer's site and executed prior to building the charlie.sqrtlib package.

The xdc.IPackage interface

Besides getLibs, package producers can elect to implement other meta-functions in package.xs called at different points within the program configuration process—from when the package first enters the current configuration through final generation of the linker.cmd output file.

init
called upon importing this package into the current configuration, usually via xdc.useModule
close
called when the client's script completes its contribution to the current configuration
validate
called before generation of output files begins, giving the package one last opportunity to issue errors/warnings
exit
called after the current configuration has been successfully validated, immediately before generation
getSects
called during generation, to elicit contributions to linker.cmd beyond the libraries returned by getLibs

Like virtually everything within the world of RTSC, this set of functions ultimately belongs to a larger programmatic entity specified within an XDCspec source file—in this case, a RTSC interface named xdc.IPackage. Following the same pattern introduced earlier with the charlie.sqrtlib.Settings module, the special xdc package—bundled with the XDCtools product—indeed contains an XDCspec source file named IPackage.xdc.

xdc/package.xdc

1

package xdc {
    interface IPackage;
}

xdc/IPackage.xdc
2

3

metaonly interface IPackage {
        ...
    function close();
    function exit();
    function getLibs(prog);
    function getSects();
    function init();
    function validate();
}

Here again, line 1 of xdc/package.xdc first introduces IPackage within the scope of the xdc package per se, followed then with a more comprehensive specification in IPackage.xdc; and not unlike Settings.xdc, the metaonly keyword at line 2 implies that none of the xdc.IPackage features specified here have a presence within the target-program during execution. Note also how the function keyword in the XDCspec declaration at line 3 mirrors the syntax of its XDCscript implementation back in package.xs. Needless to say, the "real" xdc.IPackage.xdc interface specification bundled with the XDCtools product contains considerably more detail than shown here.

Similar to the modules we've already encountered, a RTSC interface defines a programmatic contract that aggregates a related set of constants, types, parameters, and functions. But unlike a RTSC module—which couples a client-visible specification with a distinct supplier-proprietary implementation at any point in time—a RTSC interface can simultaneously support multiple implementations. Said a little differently, any package producer can elect to furnish a specific implementation of the xdc.IPackage functions within their package.xs file—effectively superseding default implementations otherwise invoked during the program configuration process.

In the same vein, the xdc.bld.ITarget interface specifies a collection of features shared by all RTSC targets; reviewing the current config.bld script, you'll recall that ti.targets.C64P and gnu.targets.Mingw each have an assignable rootDir property. In general, RTSC (meta-)modules like ti.targets.C64P can inherit client-visible features specified elsewhere within a RTSC (meta-)interface, can extend these features on a per-module basis, and can override default parameter values or function implementations as appropriate.

See also

Writing getLibs() | Guidelines for package getLibs() functions
xdc.IPackage | Client documentation for xdc.IPackage

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Writing getLibs() - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Writing getLibs()

Guidelines for package getLibs() functions

Contents

  • 1 Introduction
  • 2 Configuration phase
  • 3 Program configuration parameters
  • 4 Target parameters
    • 4.1 Target compatibility
  • 5 Use cases
    • 5.1 Packages built with XDCtools 3.00 and other build systems
    • 5.2 Packages loaded by XDCtools 3.05 and earlier
    • 5.3 Supplying libraries based on profiles
    • 5.4 Supplying libraries based on device
    • 5.5 Packages with multiple releases
  • 6 Changing compatibleSuffixes

Introduction

Configuration is one of the phases of the RTSC flow. During configuration, a program configuration script loads a set of packages that contribute source code and libraries to the generated executable image. Packages may control which libraries they contribute by implementing getLibs() in their package.xs file. This document provides a guide to RTSC package producers for writing getLibs() for the most frequent use cases.

Configuration phase

The function getLibs() is used during RTSC configuration model’s generation phase. After the user’s configuration script finishes, and all loaded packages finish running their close() and validate() functions, RTSC configuration model invokes getLibs() for each loaded package.

{caption Figure 1}

Each package's getLibs() function returns libraries and/or object files, which are then forwarded to a linker command file template. The target-specific template transforms the list of libraries into a linker command file with the target-specific syntax. In the figure above, the linker command file contains the syntax specific to TI targets.

Program configuration parameters

The content of getLibs() consists of querying various configuration parameters of the global object Program, which represents properties of the executable being built. This module is globally available during RTSC configuration, and can be referred to simply as Program, but is also passed as the only argument to getLibs(). Based on Program's parameters, one or more of a package's libraries is supplied.

In most cases, a package selects libraries to supply based on:

  • which target is being used,
  • which CPU core is being used,
  • which device and platform are being used.

The following configuration properties of the module Program contain that information:

  • Program.build.target – an object representing RTSC build target, i.e. the target for which the executable is built
  • Program.cpu – an object representing the hardware for which the executable is built, including a specific device and CPU core
  • Program.platformName – the name of the platform

Target parameters

The recommended target parameter that package producers should use to identify the build target is suffix, which can be accessed during configuration phase as Program.build.target.suffix. The parameter suffix is a string that a target package producer assigns to its target as a unique readonly identifier.

Ideally, any other target that generates binary compatible code would have the same suffix, to advertise the compatibility with the original target. For example, two targets that use GCC compilers to generate code for Arm v5T architecture should have the same suffix.

Different GCC compilers configured for a same Arm architecture can still generate incompatible code, depending on the used compiler options. A producer of a RTSC target package must ensure that his target and an existing target are compatible, if they are going to use the same suffix. XDCtools do not have any additional mechanisms that test the compatibility between the targets.

Target compatibility

However, it is possible that independent producers select different suffixes for their compatible targets, and the package producers would have to be aware of compatibility of different suffixes to be able to supply the most compatible libraries. Also, if a new target backward compatible with an existing target is released after the package producer releases his package, the package may not be able to recognize that the libraries built for the older target can be supplied to builds for the new target.

In XDCtools 3.10, the object Program.build.target is enriched with a new target compatibility API. This API allows producers of RTSC target packages to declare compatibility between their targets and other existing RTSC targets. It also allows producers of RTSC packages to build their packages in such a way that the packages can be consumed in builds for targets that were not known at the time their packages were produced.

The API consists of a configuration parameter compatibleSuffixes and the function findSuffix(). The parameter compatibleSuffixes allows the target producers who created compatible targets with different suffixes to declare their targets compatible. Also, compatibleSuffixes allows target producers to declare one-way compatibility, where code produced by one target can be linked into an executable built by another target, but not the other way around.

In the case of two compatible targets mentioned above, each of them would have the other target's suffix in its own compatibleSuffixes array. In the case of one-way compatibility, a target that can accept other targets' code would list those targets' suffixes in its compatibilitySuffixes. For example, an Arm v7A target would have in its compatibleSuffixes array the suffixes for Arm v6 and Arm v5T targets. The suffixes are listed in order of preference, therefore the Arm v6 target should be listed before Arm v5T target.

Use cases

The function findSuffix() compares the list of libraries in a package with the build target's suffix and compatibleSuffixes, and returns suffix that is the best match between the two. The build target's suffix is the preferred match, so if the library package contains libraries for the build target, compatibleSuffixes array will not be considered. If the package does not contain any library compatible with the build target, the function returns null. Here is the sample code that selects a library based on the value returned from findSuffix().

package.xs

function getLibs(prog)
{
    var suffix = prog.build.target.findSuffix(this);
    if (suffix != null) {
        return ("lib/" + this.$name + ".a" + suffix);
    }
    else {
        return (null);
    }
}

Packages built with XDCtools 3.00 and other build systems

The function getLibs(), as written above will work only for packages built by XDCtools 3.05 and newer. Any package using an older XDCtools version or building libraries outside of the RTSC build cannot rely on the function findSuffix() to determine which libraries are available in the package. Such packages must explicitly supply a list of suffixes to findSuffix() and the function will return the suffix that is the preferred one by the build target. For example, if the package producer created libraries for targets with suffixes v5T, 470MV, 86U and 64P, the function getLibs() looks as follows:

package.xs

function getLibs(prog)
{
    var suffixes = ["v5T", "470MV", "86U", "64P"];
    var suffix = prog.build.target.findSuffix(suffixes);
    if (suffix != null) {
        return ("lib/" + this.$name + ".a" + suffix);
    }
    else {
        return (null);
    }
}

Packages loaded by XDCtools 3.05 and earlier

Both of the getLibs() examples above are written to be consumed only by XDCtools 3.10 or newer, because the code assumes that findSuffix() is always available. However, since that function was introduced only in XDCtools 3.10, if a package with any of the getLibs() versions above was loaded by an older version of XDCtools, the error TypeError: Cannot find function findSuffix will be displayed. The following version of getLibs() queries Program.build.target for findSuffix and if it is not found, getLibs() reverts to simply using Program.build.target.suffix to look for compatible libraries.

package.xs

function getLibs(prog)
{
    if ("findSuffix" in  prog.build.target) {
        var suffix = prog.build.target.findSuffix(this);
        if (suffix != null) {
            return ("lib/" + this.$name + ".a" + suffix);
        }
    }
    else {
        var lib = "lib/" + this.$name + ".a" + prog.build.target.suffix;
        if (java.io.File(this.packageBase + lib).exists()) {
            return(lib);
        }
    }
    return (null);
}

Supplying libraries based on profiles

Another common case is a package with multiple libraries built for the same target, but one of them built in the debug mode and another one in the release mode. In that case, besides figuring out the right suffix, getLibs() should check the property profile of its own package. That property can be accessed through this.profile in getLibs(). In all functions in package.xs, this refers to the current package.

package.xs

function getLibs(prog)
{
    var suffix = …;

    var lib = "lib/" + this.profile + "/" + this.$name + ".a" + suffix;
    if (java.io.File(this.packageBase + lib).exists()) {
        return(lib);
    }
    else {
        return("lib/release/" + this.$name + ".a" + suffix);
    }
}

The first part of the script, ommitted for brevity, selects a compatible suffix or returns null if there are no suffixes compatible with the build target. Then, the function builds the library name using this.profile. The property this.profile of the current package could be explicitly set in the program configuration script, or if it is not set at all for this package, then it will be set to Program.build.profile property. In any case, the function getLibs() does not change. However, the use case where this.profile can be set to any string allows the package producer to document custom profiles in the package documentation, and then to deliver libraries corresponding to those profiles. For example, a package producer can have two additional libraries in optimize_speed and optimize_space modes for suffixes v5T and 470MV, in addition to common debug and release available for all targets that the package supports. The function getLibs() would not change in that case, but it would still deliver libraries built for custom modes, or release libraries for targets that do not support those custom modes.

Supplying libraries based on device

The mechanism of offering different profiles can allow package producers to build many custom libraries, and to document in which cases such libraries can be used. However, package consumers may want to leave it to the producers to determine the most appropriate library based on different package properties. A package producer may decide to return different libraries for different devices that all build for the same target. For example, the DSP-side of OMAP2530 and OMAP3530 devices may be best served by different libraries, even though they both can run code built for the ti.targets.C64P target with the suffix 64P.

package.xs

function getLibs(prog)
{
    var suffix = …;

    switch (suffix) {
        case "64P":
            if (prog.cpu.deviceName == "OMAP2530") {
                return ("lib/" + this.$name + "_2530.a64P");
            }
            else if (prog.cpu.deviceName == "OMAP3530") {
                return ("lib/" + this.$name + "_3530.a64P");
            }
            else {
                return ("lib/" + this.$name + ".a64P");
            }
            break;
        case default:
            return ("lib/release/" + this.$name + ".a" + suffix);
            break;
    }
}

Please note here that even though we are dealing with devices that have two cores, where the parameter deviceName does not specify if we are building for DSP or GPP core, we did not check which of these cores will be used to run the executable. We relied on the program configuration script or the platform package to ensure that the C64P target is matched with the right hardware platform. Platforms are better equipped to catch such an issue, rather than many different library packages verifying the right match between the target and the platform. But, in the case the package producer needs to check the hardware platform for the OMAP2530 device, for example, there is a property Program.cpu.attrs.cpuCore, which will contain v6 if the program is being built for the Arm core or C64x+ if the program is built for the DSP core.

Don't use platformName to determine the device, for example by searching the platform name for a specific device name. A user can use the same device with different platforms, where platformName may or may not contain the name of a device. For example, a user can use the device OMAP2530 with 'ti.platforms.generic', instead of using evm2530 platform.

Packages with multiple releases

This section relies on undocumented features that are supported in XDCtools 3.10 and earlier releases, but may not be supported later and could be replaced with a different interface for querying the current package release.

Different releases of the same library package may contain only a subset of libraries built in the package. For example, a release delivered to a subset of customers may contain a debug mode version of the supplied libraries, while a release delivered to another subset of customers may contain libraries optimized for speed or memory footprint, but not a debug version of the libraries. In some simple cases, code in getLibs() can simply check the existence of the libraries using java.io.File.exists() interface. However, in more complex cases it must be necessary to know the actual release.

Releases can be identified by the required parameter name. The parameters of a release are available in the XML file package.rel.xml in the directory package of the released package. The parameter name is the string supplied as the name of the release, when calling Pkg.addRelease(), in package.bld.

package.xs

function getLibs(prog)
{
    var release = xdc.loadXML(this.packageBase + "/package/package.rel.xml");
    var releaseName = release.@name;

    if (releaseName == "pkgs_myPkg,full") {
        ...
    }
    else if (releaseName == "pkgs_myPkg,withDebug") {
        ...
    }
    ...
}

Alternatively, the optional parameter label from Release.Attrs can be used.

package.xs

function getLibs(prog)
{
    var release = xdc.loadXML(this.packageBase + "/package/package.rel.xml");
    var releaseLabel = release.@label;

    if (releaseLabel == "default") {
        ...
    }
    else if (releaseLabel == "withDebug") {
        ...
    }
    ...
}

Changing compatibleSuffixes

A package consumer configuring the application can determine that compatibleSuffixes array for his build target is incomplete, i.e. there are some new targets available that the target package producer did not include in compatibleSuffixes. In his config.bld, the package consumer can change compatibleSuffixes configuration parameter.

For example, a user could be building an application for the gnu.targets.arm.GCArmv6 target, whose compatibleSuffixes is set to ["v5T", "470MV"]. If there is a new GCArmv4 target, which generates code compatible with code for GCArmv6, the user can add GCArmv4.suffix to GCArmv6.compatibleSuffixes.

config.bld

var armTargets = xdc.loadPackage("gnu.targets.arm");
armTargets.GCArmv6.compatibleSuffixes = ["v5T", "470MV", "v4"];
...

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


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 relative to the package path or 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 Wed, 08 Dec 2010 20:08:00 GMT


RTSC Packaging Primer/Lesson 8 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

RTSC Packaging Primer/Lesson 8

Package Test — managing a charlie.sqrtlib test suite

Though not obvious at first, package producers will often become consumers of their own packages—such as when managing a suite of application programs that test the target content delivered in packages like charlie.sqrtlib. Following a simple organizational pattern used frequently amongst package producers, we'll construct a companion package named charlie.sqrtlib.test which builds and executes a collection of test programs that in general would exercise client-visible ("black-box") and supplier-proprietary ("white-box") features of charlie.sqrtlib per se.

Don't confuse the role of charlie.sqrtlib.test with that of charlie.sqrtlib.samples, the elementary package produced in Lesson 4 and consumed in Lesson 3 which contains some source files delivered "as is". While both packages invoke features of charlie.sqrtlib, the test package produced here leverages the full power of the RTSC build flow to help manage the daunting number of combinations and permutations that often arise during software testing—multiple programs, multiple targets, multiple configurations, and multiple inputs.

Contents

  • 1 Generalized test packages
  • 2 Prescribing a set of tests
  • 3 Building the programs
  • 4 Running the tests
  • 5 See also

Generalized test packages

To exercise charlie.sqrtlib in a wide-range of potential settings, the charlie.sqrtlib.test package and the programs it contains introduce a level of generality not always seen within individual client applications. To illustrate, we'll study one program named isqrtTest1 that effectively generalizes the client application from Lesson 3—enabling us to invoke the isqrt function with different inputs as well as to configure the Settings.optimize parameter with different values, all while building and executing the same program across multiple targets.

The target-program. Using prog.c as a starting point, isqrtTest1.c allows input values for the isqrt function to enter the program via command-line arguments available to main—nothing unusual here from the perspective of C.

charlie/sqrtlib/test/isqrtTest1.c

1

2

3

#include <acme/utils/Bench.h>
#include <xdc/runtime/System.h>
#include <charlie/sqrtlib/isqrt.h>

#include <stdlib.h>

int main(int argc, char* argv[])
{
    unsigned int x, y;

    x = argc > 0 ? atoi(argv[1]) : 0;
    System_printf("==> isqrt(%d)\n, x");

    Bench_begin("cycle count:");
    y = isqrt(x);
    Bench_end();

    System_printf("<== %d\n", y);
    return 0;
}

Guided by the argc and argv arguments to main declared at line 2, the statement at line 3 conditionally converts the program's first argument (a string, by definition) into the integer it presumably represents using the built-in atoi function declared in the <stdlib.h> header included earlier at line 1. Beyond line 3, the remainder of this test program mirrors prog.c exactly—echoing the input x, benchmarking an isqrt call, and then displaying the output y.

As you'll see shortly, the package.bld script for charlie.sqrtlib.test not only prescribes "what to build" when manufacturing the isqrt program for multiple targets with alternative configurations, but also defines "what to test" when executing this program on a particular platform.

The meta-program. Unlike isqrtTest1.c, the corresponding isqrtTest1.cfg meta-program represents a more significant departure from the original prog.cfg script covered in Lesson 3.

charlie/sqrtlib/test/isqrtTest1.cfg
1

2

3

var Program = xdc.useModule('xdc.cfg.Program');

var Bench = xdc.useModule('acme.utils.Bench');
var Settings = xdc.useModule('charlie.sqrtlib.Settings');
var System = xdc.useModule('xdc.runtime.System');

Bench.enable = (Program.build.target.isa != "x86");

switch (Program.build.cfgArgs.optMode) {
    case "SPACE":
        Settings.optimize = Settings.OPTIMIZE_FOR_SPACE;
        break;
    case "TIME":
        Settings.optimize = Settings.OPTIMIZE_FOR_TIME;
        break;
}

Leveraging the special xdc.cfg.Program meta-module imported at line 1, the isqrtTest.cfg script accesses information originating earlier in the flow, when first running the package.bld script for charlie.sqrtlib.test.

2 Program.build.target
This property returns an XDCscript object whose properties in turn characterize the RTSC target selected for building this program. Here, the target's isa property ultimately determines whether we enable the acme.utils.Bench module at runtime (which, as it turns out, proves woefully inaccurate when used on an "x86" host PC).

3 Program.build.cfgArgs
This property returns an XDCscript object defined within the package.bld script itself. Here, we've used a string previously assigned to this object's optMode property to drive initialization of the Settings.optimize configuration parameter with either OPTIMIZE_FOR_SPACE or OPTIMIZE_FOR_TIME.

The package.bld script introduced momentarily will fill in some important missing details, specifically the idiom used to formulate configuration-time arguments for meta-programs such as isqrtTest1.cfg.

The prog argument passed to the getLibs function that we examined back in Lesson 7 in fact references the same xdc.cfg.Program meta-module imported here at line 1. In both cases, the build.target property of this XDCscript object taps into the same base of information about the current program during its configuration.

The package specification. Needless to say, charlie.sqrtlib.test requires a package.xdc specification file found in the corresponding package directory—just like any other RTSC package.

charlie/sqrtlib/test/package.xdc
1

2

requires acme.utils;
requires charlie.sqrtlib;

/*! Companion tests for charlie.sqrtlib */
package charlie.sqrtlib.test {
    /* no module declarations */
}

Similar to the specification of charlie.sqrtlib.samples from Lesson 4, the package declaration at line 2 introduces no additional programmatic elements into the charlie.sqrtlib.test namespace—in contrast with the charlie.sqrtlib package from Lesson 5, which introduces the Settings module at this point.

But unlike any of the package.xdc files we've already encountered, the specification of charlie.sqrtlib.test explicitly declares its dependency on other RTSC packages via some requires statements beginning at line 1. As a rule, these statements reflect references within the current package's content to programmatic artifacts found in other RTSC packages—such as the reference to acme/utils/Bench.h within isqrtTest1.c or the reference to charlie.sqrtlib.Settings within isqrtTest1.cfg.

The presence of requires statements enables a powerful feature of the xdc command, which we'll illustrate later when we build the charlie.sqrtlib.test package. As a convenience, package.xdc specification files can also omit requires statements that reference packages already bundled with the XDCtools product—such as the xdc.runtime package which houses the System module, or the xdc.cfg package which houses the Program meta-module.

Prescribing a set of tests

In the spirit of the charlie/sqrtlib/package.bld script introduced back in Lesson 5—a portable prescription for building a pair of function libraries across multiple targets, expressed through a single for loop—the package.bld script for charlie.sqrtlib.test takes this idiom to the next level. Structured as a series of nested for loops, the script concisely prescribes multiple test programs built for multiple targets, configured in multiple ways, and executed multiple times with different inputs.

charlie/sqrtlib/test/package.bld

1

2

3
4

5

6
7
8

9

var Build = xdc.useModule('xdc.bld.BuildEnvironment');
var Pkg = xdc.useModule('xdc.bld.PackageContents');

var TEST_INFO = [
    {testName: "isqrtTest1", testValues: ["100", "1000", "65536"]}
];

for each (var testInfo in TEST_INFO) {

    for each (var targ in Build.targets) {
        for each (var optMode in ["SPACE", "TIME"]) {

            var progName = testInfo.testName + "-" + optMode;
            var exe = Pkg.addExecutable(progName, targ, targ.platform)

            exe.addObjects([testInfo.testName + ".c"]);
            exe.attrs.cfgScript = testInfo.testName + ".cfg";
            exe.attrs.cfgArgs = "{optMode: '" + optMode + "'}";

            for each (var v in testInfo.testValues) {
                exe.addTest({groupName: optMode, args: v});
            }
        }
    }
}

The outer for loop beginning at line 2 successively binds the local variable testInfo to each element of the TEST_INFO array defined earlier at line 1—limited here to just one element in the interest of brevity. In general, though, each element of the TEST_INFO array comprises an XDCscript object featuring a testName and testValues property respectively bound to a string and an array of strings. Each element of the latter array in turn defines a distinct command-line argument list passed via argv to this program—which would run three times using this example.

Just as most programming languages support a literal notation for scalar values (the string "foo", the number 3.14, the boolean true), JavaScript supports a literal form for aggregate values as well: the notation [ «element-value», ... ] denotes an n-element array; the notation { «property-name»:«property-value», ... } denotes an compound object with named properties. Almost second-nature to most programmers regardless of their language background, JavaScript Object Notation—popularly termed JSON—has become a viable alternative to XML as a lightweight data-interchange format; visit json.org to learn more.

The next pair of nested for loops first assigns targ at line 3 to each successive element of the Build.targets array—initialized in the current config.bld script—and then assigns optMode at line 4 to each string in the two-element array defined in place. Moving forward, we can now repeatedly invoke addExecutable at line 5 with a unique set of arguments that characterize each test program (of many!) configured, compiled, and linked downstream:

  • the program's name, formed here by mangling testInfo.testName with optName;
  • the program's target, an element of the Build.targets array currently bound to targ; and
  • the program's platform, taken here from a property of targets often assigned within config.bld.

Similar to the addLibrary call seen back in Lesson 5, the XDCscript object returned by addExecutable—bound here to the local variable exe—also supports an addObject function whose input at line 6 consists of an array of C source-file names (eg. isqrtTest1.c). Continuing onward, the assignment at line 7 names this executable's corresponding meta-program (eg. isqrtTest1.cfg); the assignment at line 8 formulates a string that later becomes an XDCscript object with an initialized optMode property, available to the meta-program during configuration.

The idiom pkg.addExecutable("prog", targ, targ.platform).addObjects(["prog.c"]) builds "simple" programs from sources like prog.cfg and prog.c; we only require the extra attribute assignments here because the name of the executable differs from isqrtTest1.cfg [7] and because this configuration script receives an argument object formulated at build-time [8]. To appreciate addExecutable in its purest form, take a quick look at this (portable, scalable, and elegant) example from the RTSC Module Primer and then imagine accomplishing the same steps with a makefile.

Finally, the addTest function call at line 9—performed once for each command-line argument list in the current testInfo.testValues array—associates a unique test run with this executable program. The XDCscript object passed to addTest defines some attributes of the newly-created test (specifically, its groupName and args) whose meaning will become clear once we build and execute all of the programs prescribed by this package.bld script.

Building the programs

Similar to the way we've already built the charlie.sqrtlib libraries back in Lesson 5, we'll now clean-and-rebuild the charlie.sqrtlib.test programs by invoking xdc clean followed by xdc all from within the package directory. Output from the latter command (abbreviated to improve readability) traces the configuration, compilation, and linking of four distinct programs—all leveraging the same isqrtTest1.c and isqrtTest1.cfg source files.

1

2

3

4

%> xdc all
making package.mak (because of package.bld) ...
generating interfaces for package charlie.sqrtlib.test (because ...) ...

configuring isqrtTest1-SPACE.x64P from package/cfg/isqrtTest1-SPACE_x64P.cfg ...
cl64P package/cfg/isqrtTest1-SPACE_x64P.c ...
cl64P isqrtTest1.c ...
lnk64P isqrtTest1-SPACE.x64P ...

configuring isqrtTest1-TIME.x64P from package/cfg/isqrtTest1-TIME_x64P.cfg ...
    ...

configuring isqrtTest1-SPACE.x86GW from package/cfg/isqrtTest1-SPACE_x86GW.cfg ...
    ...

configuring isqrtTest1-TIME.x86GW from package/cfg/isqrtTest1-TIME_x86GW.cfg ...
    ...

all files complete.

Focusing on the steps involved in building isqrtTest1-SPACE.x64P at line 1—configure, compile, link—these mirror the basic program configuration flow introduced back in Lesson 3. Looking closer, the output before and after line 1 in fact follows the same pattern also seen in Lesson 3 when we eventually built our first client application using the configuro command from within a GNU makefile.

Behind the scenes, the xdc.tools.configuro utility automatically produces a RTSC package based on its command-line inputs and then fires-off the xdc command to build this synthesized package—following the same idioms and leveraging the same mechanisms used by any package producer. We've already mentioned how package producers can effectively broaden the scope of the xdc command by contributing a customized gmake prologue/epilogue to the generated package.mak file. At the same time, tools such as configuro demonstrate how the xdc command can become a more compartmentalized building-block [sic] within a very different client build-flow.

Recalling that the xdc command itself generates a special package.mak file after first running the package.bld script—and then forwards this generated file to gmake which actually dispatches the individual build steps—only the minimal amount of re-work takes place when package producers modify sources files like isqrtTest1.c and isqrtTest1.cfg during development and then invoke xdc all.

In situations where producers find themselves working across a set of inter-dependent packages—simultaneously modifying library sources in charlie.sqrtlib as well as test programs in charlie.sqrtlib.test—we recommend using an extended form of the xdc command that operates on a set of packages designated using the -P option and its variants.

xdc [goal ...] -P pkg-dir ... | build goal(s) in each package directory
xdc [goal ...] -PR dir ... | build goal(s) in all packages found by recursively searching each directory
xdc [goal ...] -PD pkg-dir ... | build goal(s) in each package directory along with all dependent packages

For example, you could invoke a single xdc test -PR . command from within the «examples»/charlie/sqrtlib directory to build both packages before executing all test programs. Or, better still, sitting inside the «examples»/charlie/sqrtlib/test package you can achieve the same results by invoking xdc test -PD . which automatically recognizes charlie.sqrtlib as a dependent package (per our package.xdc spec). In the latter case, the -PD option will also re-build the acme.utils package as needed—just in case you happened to make changes to the Bench module.

Finally, the xdc command enables you to build for just one target; for example, invoking xdc all,64P—with or without the -P option—would only manufacture programs (or libraries) using ti.targets.C64P. For even finer control, simply name the individual program (or library) as the xdc command's goal—for example, xdc isqrt1-SPACE.x64P would build only this one program.

Just keeping reminding yourself that the xdc command is really nothing more than a facade sitting atop gmake.

Running the tests

Here too, we'll rely upon the xdc command to run the test programs contained within the charlie.sqrtlib.test package—from executing all programs with all pre-defined inputs to selecting a subset of the package's programs based on test-group name or target.

xdc test
execute all programs for all targets, with all inputs
xdc test,«target-suffix»
execute all programs only for the designated target, with all inputs
xdc «test-group-name».test
execute all programs in the designated test-group, for all targets and with all inputs
xdc «test-group-name».test,«target-suffix»
execute all programs in the designated test-group and only for the designated target, with all inputs

To illustrate, the following form of the xdc command would run all programs in the TIME test-group built for the 64P target, using all pre-defined inputs. Note that each test run has a distinct command-line input, resulting in distinct output from executing the underlying program. Recall that line 9 of the package.bld script examined earlier defines both the test-group name and command-line argument list associated with each of the test programs contained within the charlie.sqrtlib.test package.

-

-

-

%> xdc TIME.test,64P
running isqrtTest1-TIME.x64P 100 ...
==> isqrt(100)
cycle count: [38]
<== 10
running isqrtTest1-TIME.x64P 1000 ...
==> isqrt(1000)
cycle count: [63]
<== 31
running isqrtTest1-TIME.x64P 65536 ...
==> isqrt(65536)
cycle count: [172]
<== 256

While the xdc command can run individual programs (xdc isqrtTest1-TIME.x64P.test exemplifies the pattern), you can't vary the input passed to the program. For more ad hoc testing of individual programs—composing argument lists from the command-line—consider the xdc.tools.loader utility bundled with the XDCtools product as an alternative.

-

-

%> xs xdc.tools.loader isqrtTest1-TIME.x64P 256
==> isqrt(256)
cycle count: [63]
<== 16
%> xs xdc.tools.loader isqrtTest1-SPACE.x64P 256
==> isqrt(256)
cycle count: [190]
<== 16

The xdc.bld.Test module defines other per-test attributes beyond groupName and args, assigned at line 9 of the package.bld script for charlie.sqrtlib.test. Using the refOutput and refExitCode attribute, for instance, producers can designate reference results for each test program in a package—what the test should do. The package.mak file generated via the xdc command would include logic to compare expected versus actual results when running each test program, and then to output an appropriate message. In this capacity, the xdc command becomes an invaluable engine for driving automated regression testing of entire collections of RTSC packages.

See also

TODO: write it

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


RTSC Packaging Primer/Lesson 9 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

RTSC Packaging Primer/Lesson 9

Product Bundles — producing charlie_mathsuite_2_71

While content suppliers can always deliver elementary packages like charlie.sqrtlib on an individual basis—installed and deployed following the pattern first outlined in Lesson 1 using acme.utils—package producers will frequently field product bundles like charlie_mathsuite_2_71 as a convenient vehicle for aggregating multiple packages into a single deliverable. Whereas Lesson 2 focused on installing and deploying product bundles from the consumer's vantage, we'll now examine the internal steps required to orchestrate their production within package.bld scripts.

Recall that the charlie_mathsuite_2_71 product incorporates charlie.sqrtlib.samples as well as charlie.sqrtlib, elementary packages respectively released in Lesson 4 and Lesson 6.

But first, we owe you some explanation behind the name charlie_mathsuite_2_71 itself—which then leads to a broader discussion on how to express software versioning within constituent packages such as charlie.sqrtlib.

Contents

  • 1 Conveying version information
  • 2 Populating internal repositories
  • 3 Building with the xdc command
  • 4 See also

Conveying version information

While we'll often use the terms interchangeably, this lesson will clearly distinquish between different versions versus multiple releases of the same package. As Lesson 6 illustrated using charlie.sqrtlib, multiple releases of the same package (drawing from a common base of content) occur at the same point in time. By contrast, when we refer to different versions of the same package, the dimension of time enters the equation. To complicate matters a bit, we'll routinely use different RTSC idioms for conveying version information in product bundles versus elementary packages.

External product names. Externally branded products—MathSuite v2.71 from Charlie & Co.—will often encode some level of software versioning in their very name; for sure, we'd all recognize MathSuite v3.14 as a more recent (and perhaps improved) version of the same underlying product. But other than the fact that "larger" numbers mean "later" products, these sorts of labeling schemes often say very little about technical changes to programmatic contracts within the product's constituent packages—an important topic we'll address shortly.

The progression of the XDCtools product itself moving from (say) versions 2.95 to 3.00 and then on to versions 3.10 and 3.15 says nothing about the specific versions of the 100+ individual packages actually bundled with this product. The decision as to which digit(s) to step in a new XDCtools release—like so many other products—has more to do with external perception than internal reality.

Mapping external products (MathSuite v2.71) onto RTSC product bundles (charlie_mathsuite_2_71) applies a simple naming convention for the corresponding package—ensuring its global-uniqueness by prefixing the producer's identity (charlie), but using a style that differentiates product "wrapper" packages from elementary "bundled" packages with multi-segment names like charlie.sqrtlib. Following the protocol laid out in Lesson 2 for deploying product bundles, you'd rarely find packages with mangled names like charlie_mathsuite_2_71 along the current package path; rather, you'd see these names within the package path itself, en route to some internal repository contained therein.

This protocol offers a potential benefit for content consumers, who can quickly scan the composition of their package path and "see" which (external) versions of which products currently contribute deployed packages.

In practice, RTSC product bundles become "one-shot" packages: Charlie & Co. would never deliver a later version of the same package named charlie_mathsuite_2_71; instead, they would manufacture a new wrapper package with a different name (say, charlie_mathsuite_3_14) that reflects the product's external positioning. This further confirms that top-level wrapper packages would typically contain artifacts specific to a particular product version (say, its README file); generic content found and consumed along the package path—modules, headers, libraries—would instead reside within elementary packages that populate the product's internal repository(s).

Package compatibility key. Elementary packages like charlie.sqrtlib could presumably reach potential clients as part of many different product bundles, each uniquely named to reflect a particular product version and each released at a unique point in time. But unlike top-level wrapper packages, nothing in the name charlie.sqrtlib conveys any information about the particular version of this package bundled within a particular product deliverable.

Indeed, the name of an elementary package should remain stable over time, from one version to the next—a key facet of what becomes a larger programmatic contract between package producer and package consumer.

And yet, we know (and even come to expect!) that any given package will evolve over the course of time—potentially changing from one version to the next in ways that impact compatibility from the client programmer's perspective:

full binary-compatibility
The supplier may repair defects or improve performance, requiring clients to re-link existing code.
backward binary-compatibility
The supplier may add new functions to existing libraries, also requiring clients to re-link existing code.
source-compatibility
The supplier may add new fields to public structures in headers, now requiring clients to re-compile their code.
in-compatibility
The supplier may elect to remove or alter previously available features, thus requiring clients to re-write their code.

To formally convey this sort of versioning information, suppliers can specify a package compatibility key within the XDCspec package.xdc file that remains inside the package throughout its natural life-cycle. Consider, then, a side-by-side comparison of the charlie/sqrtlib/package.xdc file originally shipped as part of the MathSuite v2.71 product with a newer version of the charlie.sqrtlib package spec that might accompany (say) MathSuite v3.14.

charlie/sqrtlib/package.xdc

1a

/*! Library of square-root functions */
package charlie.sqrtlib [1,0,2,6] {
    module Settings;
}
charlie/sqrtlib/package.xdc

1b

/*! Bigger and better library of square-root functions */
package charlie.sqrtlib [1,0,4,3] {
    module Settings;
}

Even without reading the commentary here, the package compatibility key spec'd at line 1b intuitively seems "more recent" than the one associated with the (earlier) version spec'd at line 1a. To the point, though, comparing keys of the form [M,S,R,P] precisely communicates what sort of compatibility the supplier has maintained between these two different versions of the charlie.sqrtlib package released at different points in time:

full binary-compatibility
same [M,S,R] but different P, where P designates the patch level of this package
backward binary-compatibility
same [M,S] but different R, where R designates the radius level of this package
source-compatibility
same [M] but different S, where S designates the source level of this package
in-compatibility
different M, where M designates the major level of this package

Stated in other terms, suppliers of target content who promise binary-compatibility to their clients—a very admirable objective, and one apparently maintained here by charlie.sqrtlib—would effectively step just the P or R values of the key from one package version to the next:

  • changing internal function implementations while preserving all current programmatic contracts would result in a patch, stepping only the P value; but

  • adding new client-visible functions conceptually widens the radius of any prior contract, reflected by stepping the R value while resetting P.

Put another way, packages whose compatibility keys change in their M or S values from one version to the next have apparently required their clients to minimally re-build—and possibly even re-write—their own content. While often unavoidable in practice, suppliers should nevertheless weigh the cumulative impact of these sorts of changes when their clients themselves become producers of other RTSC packages.

Populating internal repositories

Turning now to the general process of manufacturing RTSC product bundles, recall again from Lesson 2 how the charlie_mathlib_2_71 wrapper package itself houses a repository (named packages) which in turn contains released forms of the charlie.sqrtlib and charlie.sqrtlib.samples packages. As with elementary packages, the package.bld script within the wrapper package defines the inventory of the product bundle in its deliverable form; and once again, the xdc.bld.PackageContents meta-module plays a central role in capturing this information.

To aid your understanding of the process, we'll present three successive package.bld scripts that trade-off simplicity for generality.

Importing named releases. In its simplest form, the package.bld script for charlie_mathlib_2_71 would populate its internal packages repository by directly importing individual packages releases referenced through strings of the form "«package-name»:«release-name»". Consider our first variant of package.bld:

charlie_mathlib_2_71/package.bld

1

2
3

/* first variant */
var Pkg = xdc.useModule('xdc.bld.PackageContents');

var PKG_RELEASES = [
    "charlie.sqrtlib:charlie_sqrtlib",
    "charlie.sqrtlib.samples:charlie_sqrtlib_samples"
];

var repo = Pkg.addRepository("packages");
repo.addPackages(PKG_RELEASES);

Pkg.attrs.archiver = "zip";

After creating an XDCscript object representing the newly-named repository at line 2, the call to addPackages at line 3 defines the set of package release archives to effectively "install" into this particular repository when releasing charlie_mathlib_2_71 itself. While each element within the PKG_RELEASES array defined at line 1 happens to reference the default archive name associated with these packages, you can surely imagine generalizations of this idiom with multiple repositories in the wrapper package populated with distinct releases of other elementary packages.

The choice of packages for the name of our repository follows a pattern already established within the world of RTSC. As you may recall from Lesson 1, the current package path always contains the directory «xdcroot»/packages—a repository delivered as part of the XDCtools product that holds the vast majority of the packages seen throughout this Primer. Adding product bundles such as charlie_mathsuite_2_71 which then contain their own packages repository—as we did later in Lesson 2—merely reinforces this naming convention. But like any package repository in RTSC, you can practically call it whatever you want.

Importing labeled releases. To shield the package.bld script within the wrapper package from the actual release names chosen for each of the elementary packages, we can alternatively import the appropriate release by using its label; recall from Lesson 6 that you can assign a meaningful label to each archive file manufactured by a particular package. Consider our second variant of package.bld, which now features a nested pair of for loops each iterating over successive elements of some XDCscript array:

charlie_mathlib_2_71/package.bld

1

2

3

4

5

6

/* second variant */
var Build = xdc.useModule('xdc.bld.BuildEnvironment');
var Pkg = xdc.useModule('xdc.bld.PackageContents');

var REQUIRED_PKGS = ["charlie.sqrtlib", "charlie.sqrtlib.samples"];

var pkgReleases = [];

for each (var pname in REQUIRED_PKGS) {
    for each (var relDesc in Build.getReleaseDescs(pname)) {
        if (relDesc.label = "default") {
            pkgReleases.push(pname + ":" + relDesc.name);
        }
    }
}

var repo = Pkg.addRepository("packages");
repo.addPackages(pkgReleases);

Pkg.attrs.archiver = "zip";

Working backwards from line 6, notice that we've computed the array of "«package-name»:«release-name»" strings passed to addPackages here. First initialized with an empty array on line 3, the standard JavaScript function push invoked at line 5 repeatedly extends this array with strings formed by concatenating pname [«package-name»] with the relDesc.name property [«release-name»]. The local variable pname used here iterates over each package named in the REQUIRED_PKGS array, initialized back at line 2.

In the case of relDesc, the for loop at line 4 successively binds this local variable to each element of an array of xdc.bld.Release.Desc objects—whose label and name properties we've accessed in the lines that follow. As a final note, we've once again imported the xdc.bld.BuildEnvironment meta-module in the package.bld script and then bound the corresponding XDCscript object to the local variable Build at line 1.

Importing required packages. As it turns out, the same XDCspec requires statement already seen in Lesson 8 can essentially obsolete the REQUIRED_PKGS array initialized above at line 2. Besides publicly specifying the inventory of other packages released as part of a particular product bundle, the requires statement allows suppliers to designate specific versions of these packages identified by their compatibility key.

You may also recall that the requires statement enables us to build and release these packages as a set, which we'll see momentarily when we once again leverage the potent xdc -PD command.

charlie_mathlib_2_71/package.xdc
1

2

requires charlie.sqrtlib[1,0,2,6];
requires charlie.sqrtlib.samples;

/*! Charlie & Co. MathSuite 2.71 product bundle */
package charlie_mathsuite_2_71 {
}

Because of their "one-shot" nature, specifying a compatibility key on line 2 for wrapper packages such as charlie_mathsuite_2_71 has little practical value; we've instead conveyed (external) version information through the package name itself. Elementary packages such as charlie.sqrtlib.samples that contain miscellaneous artifacts similarly derive no real value from specifying a compatibility key—unlike charlie.sqrtlib, whose constituent modules, headers, and libraries truly define a programmatic contract with the client.

Returning again to the package.bld script for charlie_mathlib_2_71, our final variant will now programmatically retrieve the names of those dependent packages specified through the requires statements beginning at line 1 of the corresponding package.xdc file.

charlie_mathlib_2_71/package.bld

1

2

/* final variant */
var Build = xdc.useModule('xdc.bld.BuildEnvironment');
var Pkg = xdc.useModule('xdc.bld.PackageContents');

var pkgReleases = [];

for each (var pname in Pkg.imports) {
    print("requires: " + pname);
    pname = pname.substr(0, pname.indexOf("{"));
    for each (var relDesc in Build.getReleaseDescs(pname)) {
        if (relDesc.label = "default") {
            var imp = pname + ":" + relDesc.name;
            print("importing: " + imp);
            pkgReleases.push(imp);
        }
    }
}

var repo = Pkg.addRepository("packages");
repo.addPackages(pkgReleases);

Pkg.attrs.archiver = "zip";

The for loop at line 1 binds the local variable pname to successive elements of Pkg.imports—an array of strings of the form "«package-name»{«optional-compatibility-key»", with the text after the "{" character omitted if the corresponding package has no specified key. After printing its original value, the script extracts the «package-name» portion of pname at line 2 using some built-in string functions courtesy of JavaScript. The remainder of the script mimics our second variant of package.bld.

Building with the xdc command

And now comes the fun part.... Simply invoke the xdc release -PD . command from within the charlie_mathlib_2_71 package directory, and let's just see what happens:

1

2

3

4

5

6

%> xdc release -PD .
    ...
making package.mak (because of package.bld) ...
requires: charlie.sqrtlib{1, 0, 2, 6
importing: charlie.sqrtlib:charlie_sqrtlib
requires: charlie.sqrtlib.samples{
importing: charlie.sqrtlib.samples:charlie_sqrtlib_samples
    ...

======== release [«examples»/charlie/sqrtlib] ========
all files complete.
    ...
making release file charlie_sqrtlib.zip (because ...) ...

======== release [«examples»/charlie/sqrtlib/samples] ========
all files complete.
    ...
making release file charlie_sqrtlib_samples.zip (because ...) ...

======== release [«examples»/charlie_mathsuite_2_71] ========
all files complete.

installing charlie.sqrtlib [release charlie_sqrtlib.zip] ...
installing charlie.sqrtlib.samples [release charlie_sqrtlib_samples.zip] ...
    ...
making release file charlie_mathsuite_2_71.zip (because of ...) ...

Starting at the top, we've (re-)generated package.mak for charlie_mathlib_2_71 by first executing what became the final variant of its package.bld script; the messages following line 1 originate with print statements embedded within the script itself. Moving on, the output at lines 2 and 3 reflects the prior release of the charlie.* packages named in the requires statements within the package.xdc spec—(re-)building these dependent packages on an as-needed basis, thanks to their generated package.mak files.

With all requisite packages now up-to-date, the formal release of charlie_mathsuite_2_71 begins at line 4 by first ensuring the current package has built all of its artifacts (if relevant). As suggested by the output at line 5, released forms of the dependent charlie.* packages then find themselves installed into a newly-created packages repository rooted under the charlie_mathsuite_2_71 package directory. The final step at line 6 would automatically include the packages repository—plus the released forms of the charlie.* packages it now contains—within the generated charlie_mathsuite_2_71.zip package archive.

All we can say about this incredibly powerful generalization of the already-potent xdc command is: try it, you'll like it!

See also

TODO: write it

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


RTSC Packaging Primer/Lesson 10 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

RTSC Packaging Primer/Lesson 10

Next steps — Learning more about RTSC

TODO: write it

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript Language Reference - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript Language Reference

Elements of the RTSC meta-language

Contents

  • 1 Root object
  • 2 Object model
  • 3 Capsules
  • 4 Templates
  • 5 Packages
  • 6 Interfaces
  • 7 Modules
  • 8 Instances
  • 9 Proxies
  • 10 Structs
  • 11 Vectors
  • 12 Maps
  • 13 Typed Objects
  • 14 See also

This reference provides reference material for the methods and objects available to all XDCscript code. For overview information about XDCscript programming see the XDC Script User's Guide.

Although the script language used throughout XDCtools is JavaScript, these tools also provide a set of XDCtools-specific functions that allow scripts to load and manipulate "typed objects" defined by the XDCscript Language Summary. These objects include all modules, interfaces, and packages. In addition, XDCscript JavaScript embedding provides access to any Java class—including the entire Java Runtime Environment (JRE) . This enables these scripts to portably run on any host and perform any function that a Java program can perform, including running and interacting with external command line utilities.

Root object

XDCscript - xdc | The distinguished root object
XDCscript - xdc.csd | Get current script directory
XDCscript - xdc.curPath | Return the current package path
XDCscript - xdc.exec | Execute external command
XDCscript - xdc.findFile | Find file along the package path
XDCscript - xdc.getErrors | Return array of errors
XDCscript - xdc.getWarnings | Return array of warnings
XDCscript - xdc.getPackageBase | Return a package's base directory
XDCscript - xdc.getPackageRepository | Return a package's repository
XDCscript - xdc.global | The original JavaScript Global object
XDCscript - xdc.loadCapsule | Load specified capsule
XDCscript - xdc.loadPackage | Load specified package
XDCscript - xdc.loadTemplate | Create a template object from a template file
XDCscript - xdc.loadXML | Load an XML file
XDCscript - xdc.jre | Top-level Java Runtime Environment object
XDCscript - xdc.module | Return specified module or interface object
XDCscript - xdc.om | Top-Level object of current domain model
XDCscript - xdc.print | Print a message
XDCscript - xdc.setCurPkgBase | Set the current package base
XDCscript - xdc.traceEnable | Enable debug trace output
XDCscript - xdc.useModule | Specify that a module is used in a configuration

Object model

XDCscript - xdc.om | Top-Level object of current domain model
XDCscript - xdc.om.$curpkg | A model-specific current package
XDCscript - xdc.om.$homepkg | A model-specific home package
XDCscript - xdc.om.$modules | Array of all modules in the current model
XDCscript - xdc.om.$name | Model name
XDCscript - xdc.om.$packages | Array of all packages within the current model
XDCscript - xdc.om.$root | A model-specific root object
XDCscript - xdc.om.Package-Name | A hash table of all loaded packages

Capsules

Capsules are the fundamental unit of implementation for the meta-domain. Each capsule exposes a set of public variables and functions to its client.

XDCscript - xdc.loadCapsule | Load specified capsule
XDCscript - Capsule-Object | under construction
XDCscript - Capsule-Object.$trace | Print a trace message
XDCscript - Capsule-Object.$traceQuery | Query whether capsule debug trace is enabled
XDCscript - Capsule-Body | Contents of a capsule

Templates

Templates are objects used to generate a formatted output text stream following a prescribed pattern specified by a template file. Clients invoke templates with specific arguments and designate a sink for all generated output.

XDCscript - xdc.loadTemplate | Create a template object from a template file
XDCscript - Template-Object | under construction
XDCscript - Template-Object.genFile | Generate textual output file from a template
XDCscript - Template-Object.genStream | Generate textual output stream from a template
XDCscript - Template-Body | Contents of the template file

Packages

XDCscript - xdc.loadPackage | Load specified package
XDCscript - Package-Object | Object containing package-wide features of a package
XDCscript - Package-Object.$interfaces | Array of interfaces contained in this package
XDCscript - Package-Object.$modules | Array of modules contained in this package
XDCscript - Package-Object.$name | Name of the package
XDCscript - Package-Object.$spec | Package specification object
XDCscript - Package-Object.$vers | The version of this package
XDCscript - Package-Type.$patch | Patch a package method
XDCscript - Package-Body | Implementation of base package methods

Interfaces

XDCscript - Interface-Object.Instance | under construction
XDCscript - Interface-Object.Module | under construction
XDCscript - Interface-Object.$name | under construction
XDCscript - Interface-Object.$package | under construction
XDCscript - Interface-Object.$super | under construction
XDCscript - Interface-Object.Constant-Name | under construction
XDCscript - Interface-Object.EnumVal-Name | under construction
XDCscript - Interface-Object.Extern-Name | under construction
XDCscript - Interface-Object.Struct-Name | under construction
XDCscript - Interface-Object.Typedef-Name | under construction
XDCscript - Interface-Body | under construction

Modules

XDCscript - xdc.module | Return specified module or interface object
XDCscript - xdc.useModule | Specify that a module is used in a configuration
XDCscript - Module-Object | Object containing per-module-features of a module
XDCscript - Module-Object.construct | under construction
XDCscript - Module-Object.create | Create a new Instance object managed by this unit
XDCscript - Module-Object.Instance | under construction
XDCscript - Module-Object.Module | under construction
XDCscript - Module-Object.Params | Module's instance creation parameters
XDCscript - Module-Object.PARAMS | Module's default instance creation parameters
XDCscript - Module-Object.$addrof | under construction
XDCscript - Module-Object.$instances | An array of instance objects managed by this module
XDCscript - Module-Object.$logError | Log an error from this module
XDCscript - Module-Object.$logFatal | Throw fatal exception from this module
XDCscript - Module-Object.$logWarning | Log a warning from this module
XDCscript - Module-Object.$name | Canonical name of the module
XDCscript - Module-Object.$objects | An array of embedded instance objects managed by this module
XDCscript - Module-Object.$package | Package object of package containing the module
XDCscript - Module-Object.$private | Private state object of the module
XDCscript - Module-Object.$spec | Module specification object
XDCscript - Module-Object.$super | The interface from which this module inherits
XDCscript - Module-Object.$used | under construction
XDCscript - Module-Object.Config-Name | under construction
XDCscript - Module-Object.Constant-Name | under construction
XDCscript - Module-Object.EnumVal-Name | under construction
XDCscript - Module-Object.Extern-Name | under construction
XDCscript - Module-Object.Function-Name | Module method
XDCscript - Module-Object.Proxy-Name | under construction
XDCscript - Module-Object.Struct-Name | under construction
XDCscript - Module-Object.Typedef-Name | under construction
XDCscript - Module-Body | The implementation of a module
XDCscript - Module-Body.module$meta$init | Initialize meta-domain module state
XDCscript - Module-Body.module$static$init | Initialize module's State object
XDCscript - Module-Body.module$use | Use other modules required by this module
XDCscript - Module-Body.module$validate | Validate current domain object model

The table below provides reference information for the meta-language functions that implement the module methods common to all modules. These functions enable every module to interact with its environment at key points of the module's lifecycle.

  • when the module is first loaded;
  • when the module is used;
  • when instance objects are created; and
  • as part of model validation just prior to any generation process.

XDCscript - Module-Body.module$meta$init | Initialize meta-domain module state
XDCscript - Module-Body.module$static$init | Initialize module's State object
XDCscript - Module-Body.module$use | Use other modules required by this module
XDCscript - Module-Body.module$validate | Validate current domain object model

Instances

XDCscript - Instance-Object | Object containing per-instance-features of a module
XDCscript - Instance-Object.$index | Serial number of the instance
XDCscript - Instance-Object.$module | The Module object that manages this instance
XDCscript - Instance-Object.$name | Canonical name for the instance
XDCscript - Instance-Object.$package | The Package object containing the module managing this instance
XDCscript - Instance-Object.$private | Private state object of the instance
XDCscript - Instance-Object.$super | Instance of the inherited-interface
XDCscript - Instance-Object.Config-Name | under construction
XDCscript - Instance-Object.Function-Name | Instance method
XDCscript - Instance-Body | The implementation of a module's instance methods
XDCscript - Instance-Body.instance$meta$init | Initialize a meta-only module's instance
XDCscript - Instance-Body.instance$static$init | Statically initialize a target module's instance object

Proxies

XDCscript - Proxy-Object | Module object for a proxy
XDCscript - Proxy-Object.delegate$ | Module that implements the proxy's interface

Structs

XDCscript - Struct-Object | A typed structure object
XDCscript - Struct-Object.$addrof | under construction
XDCscript - Struct-Object.$alignof | The target alignment of a structure
XDCscript - Struct-Object.$private | Private state object of the struct
XDCscript - Struct-Object.$sizeof | The target size of a structure
XDCscript - Struct-Object.Field-Name | under construction

Vectors

XDCscript - Vector-Object | A typed JavaScript array
XDCscript - Vector-Object.length | Get or set the number of values in a vector
XDCscript - Vector-Object.$add | Append element to the end of a vector
XDCscript - Vector-Object.$addrof | Get address of vector element
XDCscript - Vector-Object.Element-Index | under construction

Maps

XDCscript - Map-Object | An ordered hash table type
XDCscript - Map-Object.length | under construction
XDCscript - Map-Object.Element-Index | under construction
XDCscript - Map-Object.Element-Name | under construction

Typed Objects

XDCscript - Typed-Object | Objects specified by the RTSC Interface Definition Language
XDCscript - Typed-Object.$copy | under construction
XDCscript - Typed-Object.$orig | The most specific typed-declaration for this object
XDCscript - Typed-Object.$seal | Seal a typed object or one of its fields
XDCscript - Typed-Object.$sealed | Test a typed object or one of its fields for being read-only
XDCscript - Typed-Object.$self | This object
XDCscript - Typed-Object.$type | under construction
XDCscript - Typed-Object.$unseal | Unseal a typed object or one of its fields

See also

The XDCscript Language XDCscript overview

NOTE: The following documents are obsolete but contain information that has yet to be moved to the current document

XDCscript Language Summary XDCscript language quick reference

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Embedded Instances - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Embedded Instances

When (and when not) to use the type Object

This article introduces an advanced RTSC programming feature known as embedded instances, which affords the developer of RTSC modules some additional opportunities for optimizing run-time performance. Building upon the foundation put in place within the RTSC Module Primer—material we assume you've already mastered—the embedded instances feature described here largely boils down to disciplined use of the type Object within module source files.

The XDCtools product has supported embedded instances for quite some time now, albeit as an "undocumented" feature used only by a select set of BIOSv6 module developers. Consider, then, this article as the first publication of the embedded instances feature!

NOTE: The XDCtools 3.10 product, while supporting this feature, could do a better job of flagging incorrect use of the type Object.
NOTE: The programming rules for using Object enumerated throughout this article will be more strictly enforced in XDCtools 3.15.
NOTE: Current developers using embedded instances should review their code along these lines, to avoid breakage in the future.

Contents

  • 1 The types Handle, Struct, and Object
  • 2 Performance impact of linking versus embedding
  • 3 An idiomatic example of embedded instances
  • 4 Implications for binary compatibility
  • 5 See also

The types Handle, Struct, and Object

Client perspective. By way of review, clients of a RTSC module hypothetically named ModA will interact with underlying instance objects (presumably) managed by this module using pointer-sized values of type ModA_Handle within their C code. As illustrated in Lesson 4 of the RTSC Module Primer, values of type ModA_Handle can originate from a variety of sources:

  • from calls to the ModA_create function, which returns values of this type;
  • from the special conversion function ModA_handle, applied to a ModA_Struct pointer; and
  • from extern variables of this type referencing static instances, created during program configuration.

In all cases, clients should treat a Handle as an opaque reference to some underlying instance object originally manufactured in one of several different ways. Though technically a C typedef that equates to a ModA_Object* pointer, clients of ModA must absolutely ignore this fact. As a client, you should instead regard ModA_Handle as a unique C type (distinct from any other module's Handle) whose true meaning derives from the per-instance functions of ModA which ultimately manipulate values of this type.

From XDCtools 3.15 onward, ModA_Object will remain as an incomplete C struct during client compilation—further preventing clients of ModA from making any assumptions whatsoever about the size of this structure, let alone its contents. For all practical purposes, clients of ModA must never declare variables of type ModA_Object in their code.

Clients wishing to explicitly allocate space for an instance object can always declare a C variable of type ModA_Struct, passing its address to the ModA_construct function to complete the initialization process; as noted above, you can obtain corresponding values of type ModA_Handle referencing newly-constructed instance objects via the ModA_handle conversion function. If necessary, you should review this programming example in Lesson 4 to clarify the relationship between the types ModA_Handle and ModA_Struct.

While certainly not an incomplete C struct (like ModA_Object, whose size remains unknown at compile-time), clients should nevertheless treat ModA_Struct as an opaque type—one representing a "chunk" of memory large enough to hold the internal state of an instance object, but without any further details exposed at this point.

From XDCtools 3.15 onward, the definition of type ModA_Struct will have fictionalized field names, preventing (accidental) attempts by clients to access supplier-proprietary instance state variables via structures of this type.

Supplier perspective. Unlike its clients, the supplier of the ModA module both defines and manipulates internal state variables associated with each ModA instance object. Originally defined as elements of a well-known Instance_State structure found in the internal section of the module's specification (ModA.xdc), these state variables become fields of the type ModA_Object within the module's target-implementation in C. A quick glance through Lesson 8 of the RTSC Module Primer should refresh your memory on these points.

Though no longer an incomplete struct, the ModA supplier will nevertheless access ModA_Object fields—corresponding to instance state variables—exclusively via pointers to this type of structure, conventionally passed as the first argument to all per-instance functions. Whereas clients of ModA shouldn't even mention the type ModA_Object by name within their own source code, declarations of type ModA_Object* will conventionally appear throughout the supplier's target-implementation in C.

Even the ModA supplier must never declare variables of type ModA_Object, as you'll come to understand shortly. Unlike ModA clients—who would encounter compile-time errors from XDCtools 3.15 onward—module suppliers (for now) must exercise vigilance, following prescribed programming idioms that rely upon pointers of type ModA_Object* instead.

Performance impact of linking versus embedding

Often, the supplier of ModA becomes a client of another module ModB—in particular, when the implementation of ModA instance objects internally rely upon ModB instances. Practical examples of this pattern occur throughout "real-world" products composed out of RTSC modules, such as BIOSv6: Semaphore instances internally manage a Queue instance; Mailbox instances internally manage two Semaphore instances plus a Queue instance of their own; and so forth.

As a rule, ModA interacts with ModB no differently than any other client; and above all, ModA can make no assumptions about the internal implementation of ModB (which, in general, could reside in a different package). Following protocol, ModA may specify instance state variables of type ModB.Handle in the ModA.xdc specification; these in turn become fields of type ModB_Handle in ModA.c, manipulated as part of the module's implementation in the target-domain.

pkg1/ModA.xdc

1

import pkg2.ModB {
module ModA {
    ...
internal:
    struct Instance_State {
        ModB.Handle mbInst;
        Int x;
    };
}
pkg1/ModA.c

2

#include <pkg2/ModB.h>
#include "package/internal/ModA.xdc.h"

Void ModA_Instance_init(ModA_Object *obj, const ModA_Params *params)
{
    obj->mbInst = ModB_create( ... );
    obj->x = ... ;
}

This pattern extends analogously to the implementation of ModA in the meta-domain, where the special instance$static$init function defined in ModA.xs would mimic line 2 and assign obj.mbInst the results of calling ModB.create during program configuration.

Taken to the limit, instance objects managed by one RTSC module can (recursively) compose instances managed by other RTSC modules—with opaque Handle references at the center of the client-supplier contract found at each level of this arbitrarily-rich hierarchy of modules. While easy to comprehend and straightforward to implement, this general design pattern does have one major drawback:

Excessive of use opaque Handle references—especially when composing small and/or frequently-accessed instance objects—can potentially degrade run-time performance in time as well as space.

Suppose, now, that the per-instance state of a ModB object required only two words of memory: the pointer-sized ModB_Handle then retained by ModA within each of its own instance objects would introduce a space overhead of 50% under this scenario. Even with somewhat larger instance objects, what effectively becomes pointer-based linkage between instances can potentially increase fragmentation of memory pools and decrease locality of reference during program execution—especially since each call to ModA_create (or ModA_construct) at run-time would trigger a corresponding call to ModB_create; calls to ModA_delete (or ModA_destruct) would likewise invoke ModB_delete.

For the record, BIOSv6 Queue and Semaphore instance objects respectively consume two (2) and six (6) words of memory apiece.

The ModB_Handle retained by ModA also represents a potential time overhead, logically requiring an additional memory fetch of obj->mbInst each time a ModA per-instance function becomes a client of ModB. Even when applying the most aggressive modes of whole-program optimization—in which ModB calls become automatically inlined—retention of the ModB_Handle by ModA will always incur some residual cost.

The answer, quite simply, boils down to embedding a ModB instance object directly within the representation of an ModA instance object, rather than linking to a ModB instance via the mbInst state variable currently of type ModB_Handle. The real question, then, becomes finding an appropriate type (other than Handle) for mbInst per se.

Seemingly, declaring mbInst as a ModB.Struct at line 1 above would signify instance embedding versus instance linking; not so, since the XDCspec language doesn't even recognize Struct as a legal type! More to the point, however, the C type ModB_Struct will generally reserve more storage than actually required to hold a ModB instance object—whose final size, it turns out, depends upon program configuration parameters known after compilation of ModA.c. At the end of the day, we need a way to reconcile C's innate requirement for fixed struct sizes at compile-time versus RTSC's unique ability to impact the size of module instance objects at config-time.

An idiomatic example of embedded instances

As hinted by the sub-title of this article, the type Object does play a central role when realizing embedded instances. Turning first to ModA.xdc—where we had originally declared mbInst of type ModB.Handle back at line 1—we'll alternatively ascribe the XDCspec type ModB.Object to the same state variable.

pkg1/ModA.xdc

3

import pkg2.ModB {
module ModA {
    ...
internal:
    struct Instance_State {
        ModB.Object mbInst;
        Int x;
    };
}

While we've effectively banned direct use of the C struct type ModB_Object by clients and suppliers alike, you will encounter the corresponding XDCspec type ModB.Object within module specifications—though only in a limited set of contexts. As a rule, the type Object can only appear inside the special internal structures Instance_State and Module_State, respectively used to define the per-instance and module-wide state variables that form the backbone of a module's proprietary implementation.

From XDCtools 3.15 onward, the XDCspec translator will flag any inappropriate usage of the type Object as an error.

Turning now to ModA.c, we've finally come to the heart of the matter—a new C programming idiom used within RTSC module implementations to retrieve a Handle referencing a corresponding Object embedded within this module's state.

pkg1/ModA.c

4

5

#include <pkg2/ModB.h>
#include "package/internal/ModA.xdc.h"

Void ModA_Instance_init(ModA_Object *obj, const ModA_Params *params)
{
    ModB_Handle mbH = ModA_Instance_State_mbInst(obj);

    ModB_construct(ModB_struct(mbH), ... );
    obj->x = ... ;
}

Conceptually, the automatically-generated "getter" function called at line 4 means &(obj->mbInst), an expression denoting the address of the ModB_Object stored in the mbInst field of obj (that is, a value of type ModB_Handle); in reality, the ModA_Object structure has no field named mbInst whatsoever. Since ModA cannot make any assumptions about the actual size of a ModB_Object, the definition of the ModA_Object structure seen when compiling ModA.c cannot include an incomplete field of this type.

From XDCtools 3.15 onward, the expression obj->mbInst (even within ModA.c) would result in a compile-time error.

The name itself of the special getter called at line 4 suggests this idiom extends not only to multiple per-instance state variables holding embedded objects (each of a potentially different Object type), but to module-wide state variables as well. In the latter case, parameter-less calls of the form Mod_Module_State_var() inside of Mod.c conceptually mean the same thing as the expression &(module->var), yielding a Handle to the embedded Object held in the module-wide state variable named var.

From the perspective of ModA, its module-wide state variables not only can hold embedded ModB.Object instances but in fact can hold one or more of its own ModA.Object instances as well; not as exotic as you might imagine, this design pattern effectively enables the ModA implementation to maintain its own private pool of statically-created instances apart from those fabricated through calls by others to ModA.create in the meta-domain. At the same time, an unresolvable self-referential type definition would prevent the per-instance state of ModA from itself further embedding any ModA.Object instances.

Wrapping up ModA.c, the value of type ModB_Handle returned by the getter at line 4 subsequently becomes input to the ModB_construct call at line 5—with the special conversion function ModB_struct effectively casting mbH into a corresponding value of type ModB_Struct*. Though not shown here, an implementation of ModA_instance_finalize would feature an analogous call to ModB_destruct with a similar set of preparatory steps. Needless to say, the implementation of any per-instance ModA function that in turn becomes a client of some ModB per-instance function would likewise invoke the ModA_Instance_State_mbInst getter to obtain a suitable ModB_Handle for input.

And finally, let's take a quick look at the special meta-function instance$static$init defined in ModA.xs:

pkg1/ModA.xs

6

var ModB = xdc.useModule('pkg2.ModB');
    ...
function instance$state$init( obj, ... )
{
    ModB.construct(obj.mbInst, ... );
    obj->x = ... ;
}

While clearly mirroring line 5 of ModA.c, the rather uncluttered call to ModB.construct here at line 6 reflects upon the higher-level nature of the XDCscript meta-language versus standard C.

Implications for binary compatibility

Ideally, "new-and-improved" versions of ModB would maintain binary backward-compatibility whenever possible. While the supplier of ModB continues to innovate—not only by adding new functionality, but also by improving the internal implementation of current functionality—clients such as ModA need not continuously track these sorts of changes within a programmatic contract already put in place. Said another way, re-compiling ModA.c should become unnecessary—"old" ModA libraries will continue to link and run against "new" (binary-compatible) versions of ModB.

Notwithstanding the growing trend towards "open-source" software—enabling integrators to re-build all inbound components at will—we firmly believe the discipline required to maintain binary compatibility significantly boosts overall software quality by keeping contracts between suppliers and their clients front-and-center. If nothing else, binary compatibility re-affirms the application integrator's ability to mix-and-match otherwise discrete, independently developed software elements—a distinguishing characteristic of any robust component-based ecosystem.

More to the point, suppose the supplier of ModB in some way changes the number or type of (internal) instance state variables required in the module's (internal) implementation—whether to optimize performance of current client-visible functionality in some way, or else to support expanded client-visible functionality in a new version of ModB. Either way, the actual size of the structure representing a ModB instance object could change—normally implying that clients such as a ModA who elected to embed ModB instances within their own internal state would need to re-build and re-release their own content against these changes.

Even without new versions of ModB that change the size of its instances, program integrators can optionally configure ModB to automatically retain a textual name (optionally) provided by clients upon instance creation. Setting the special module-wide config parameter ModB.common$.namedInstance to true effectively enlarges the ModB instance object by adding an internal field that retains the value of the special per-instance config parameter instance.name. Since various diagnostic capabilities of the xdc.runtime package described here will leverage these names if present within an instance object, the program integrator can weigh the cost of the extra storage per ModB instance against decreased visibility when troubleshooting an errant program at runtime. Either way, the supplier of ModA electing to embed ModB instance objects should remain insulated from these downstream decisions by the integrator.

By following the programmatic idioms exemplified earlier, the supplier of ModA can indeed remain insulated from any changes to the size of a ModB instance object. While understanding how this actually works lies outside the scope of this article (requiring some knowledge of the C language binding used internally by RTSC), suffice it to say that the (seemingly complete) type ModA_Object referenced in ModA.c in reality serves as a prefix for the "real" definition of this structure laid down in the aftermath of RTSC program configuration.

Having a global perspective of the program under configuration not seen by individual module suppliers, the "real" definition of ModA_Object can now refer to the "real" definition of ModB_Object; and both of these "real" structure definitions may or may not contain an extra internal field, depending upon the setting of common$.namedInstance for these modules. Based upon the actual definitions known only at config-time, RTSC then generates the run-time apparatus needed to access embedded instances at run-time using the special "getters" illustrated earlier.

And thanks to the transformational power of whole-program optimization, the call to ModA_Instance_State_mb at line 4 effectively devolves into an inline reference to &(obj->mbInst)—incurring no more overhead than if the "real" definitions of both ModA_Object along with the ModB_Object it embeds were known when compiling ModA.c in the first place.

See also

RTSC Module Primer/Lesson 4 | Instance object life-cycle — using the RandGen module
RTSC Module Primer/Lesson 8 | Instance modules — implementing bravo.math.RandGen

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCtools User's Guide - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCtools User's Guide

Working with the XDCtools product

Contents

  • 1 Getting started
  • 2 Working with packages and modules
  • 3 The xdc.runtime package
  • 4 Creating new content
  • 5 Frequently asked questions
  • 6 Examples

Getting started

Overview of RTSC | Brief introduction to RTSC and XDCtools
XDCtools Installation Guide | How to install the XDCtools product
Using XDCtools Commands | Setting up your development environment
Consuming Configurable Content | Introduction to the RTSC configuration process
Using RTSC with CCStudio v4 | Graphical support for developing using RTSC content

Working with packages and modules

Managing the Package Path | Introduction to managing package paths
Using Targets and Platforms | Introduction to targets and platforms
Managing Compiler Toolchains | How to manage XDCtools use of your compiler toolchain
Integrating RTSC Modules | Integrating RTSC modules into existing C/C++ environments
The XDCscript Language | XDCscript overview
Compatibility Keys | How inter-package dependencies are managed
Trouble Shooting | Frequently encountered problems and their solutions

The xdc.runtime package

Overview of xdc.runtime | Introduction to the xdc.runtime package
Using xdc.runtime Errors | How to raise and handle runtime errors
Using xdc.runtime Gates | How to serialize access to shared data structures
Using xdc.runtime Logging | How to generate and control Log events
Using xdc.runtime Memory | Introduction to memory management
Using xdc.runtime Startup | How applications boot, run, and shutdown
Using xdc.runtime System | How to boot, print a message, and shutdown
Using xdc.runtime Timestamps | How to get and use timestamps
Extending xdc.runtime Gates | How to provide mutual exclusion gates
Extending xdc.runtime Logging | How to create customized Log Event service providers
Extending xdc.runtime Memory | How to create customized heap managers
Extending xdc.runtime System | How to create customized System support service providers
Extending xdc.runtime Timestamps | How to create customized timestamp providers
Working with xdc.runtime | How to build xdc.runtime for your target and platform

Creating new content

The best resources for learning how to create new content are the RTSC programming primers. For concrete examples that leverage the xdc.runtime package, look for topics in the "Example" category. Beyond the primers and these examples, the following topics fill in some additional details especially with respect to configuration.

RTSC Programming | From primers to advanced topics
Creating Configurable Content | How to leverage the configuration process
Writing getLibs() | Guidelines for package getLibs() functions
ROV Module Writers Guide | Customizing content presentation in the Run-time Object Viewer
RTSC Coding Conventions | Coding conventions used in the XDCtools product

Frequently asked questions

Config Model FAQs | General questions about the XDCtools configuration model
Build Model FAQs | General questions about using the XDCtools build engine

Examples

For concrete examples, look for topics in the "Example" category.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Overview of RTSC - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Overview of RTSC

Brief introduction to RTSC and XDCtools

What is RTSC?

Real-Time Software Components (RTSC, pronounced "rit-see") is a program designed to bring component based development to embedded C programmers. Unlike enterprise workstation-based component models, RTSC components (called "packages") are optimized for real-time embedded systems where resource constraints make it impractical to use enterprise models such as JavaBeans or Corba, for example.

XDCtools is a product that contains all of the tools necessary to create, test, deploy, install, and use RTSC components. This product - currently available from TI (from here) - includes tools and standards for API development, static configuration, and packaging. 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 main benefit of RTSC is that it standardizes the delivery of target content and makes it easier for target content to be included in applications. RTSC is unique in that components also include code that runs on "Rich Client Platforms" such as development workstations. This code provides a bridge between the component's target content, written in C/C++, and a variety of development tools that manage the component throughout its life-cycle: from creation, integration, and testing to the real-time monitoring of the target content in deployed end-equipment. With the target content being written in C/C++, RTSC components not only leverage existing code bases but are also usable in traditional C development environments.

The users of RTSC are divided into developers we call "consumers" and "producers." Consumers integrate target content packages—DSP algorithms, device drivers, TCP/IP stacks, real-time OSes, and so on—into their own applications. Producers create the packages used by consumers.

producers and consumers

A RTSC "package" is a named collection of files that form a unit of versioning, update, and delivery from a producer to a consumer. Each package is embodied as a specially-named directory (and its contents) within a file system. Packages are the focal point for managing content throughout its lifecycle. All packages are built, tested, released, and deployed as a unit.

A RTSC "repository" is simply a directory that contains packages. The dots in the name of a package, interface, or module refer to its location within the repository. For example the ti.sysbios.knl.Task module would be located at ti/sysbios/knl with respect to a repository directory named in the RTSC "package path". The package path is simply a list of repositories containing packages installed by the user.

This overview is intended for use by consumers who need just enough to understand how to use a RTSC package. However, producers must also be familiar with the concepts in this document in order to move beyond it and understand how to create packages. Producers often function as consumers, for example, to test the content they've produced. For a more detailed description of RTSC, all users are strongly encouraged to read the RTSC whitepaper "Introducing RTSC".

RTSC and XDCtools Terminology

RTSC and the XDCtools product use a number of terms that you will need to be familiar with:

  • Packages: These serve as general-purpose containers for modules and interfaces as well as other software artifacts. Packages are the focal point for managing content throughout its life-cycle. All packages are built, tested, released, and deployed as a unit.
  • Modules: These encapsulate a related set of types and functions. They have both an external specification and a concrete internal implementation. A module optionally manages a single instance type, which is analogous to a C++ class.
  • Interfaces: These are effectively "abstract modules". They have a specification without an implementation. Other modules and interfaces can inherit the specification. An interface defines a collection of related types, constants, variables, and functions. A single C (and/or asm) header file defines the interface.
packages, modules, and repositories

  • Repository: A directory in which one or more packages are installed. Repositories can contain only one version of a package. So, side-by-side installations of two different versions of a package require two repositories. The user has complete control over the number and names of repositories.
  • Package Path: An ordered sequence of repositories that are searched when locating a package's file. Like the PATH environment variable used to locate commands, the package path is set by the user and allows source code to reference package files without using absolute paths. Simple adjustments of the package path can be used to quickly switch between different versions of one or more packages.
  • Target content: Software bound into an application program executing on a particular hardware platform.
  • Meta content: Host-based content that plays an active role in the design-time configuration as well as the run-time analysis of target programs.
  • Client applications: The application that consumes packages and calls functions in interfaces to perform application actions.
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


RTSC+CCStudio v4 QuickStart - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

RTSC+CCStudio v4 QuickStart

Using CCStudio v4 to create, build, and debug RTSC projects

This page provides quick instructions for creating, building, and debugging a project that uses RTSC within an Eclipse IDE such as Code Composer Studio v4. If you don't have CCSv4 or prefer to use the the XDCtools command line tools directly, see Using XDCtools Commands.

Contents

  • 1 Creating CCSv4 projects that use RTSC
  • 2 Using a RTSC configuration template
  • 3 Adding files to projects
  • 4 Using XGCONF to edit RTSC configurations
  • 5 Building the project
  • 6 Rules for working with CCS Build Settings
  • 7 Running and debugging an application
  • 8 See also
    • 8.1 Flash demos

Creating CCSv4 projects that use RTSC

Follow these steps to use CCSv4 to create a project that can use RTSC. You can also watch a demo that shows most of the steps in this page.

  1. Open CCSv4 and choose File > New > CCS Project from the menu bar.
  2. Creating new CCS project
    In the New CCS Project dialog, type a Project Name. For example, to begin creating a project using "hello world" example code provided with DSP/BIOS, you can type "hello". The default project location automatically reflects the project name. Then, click Next.
  3. Select your platform type in the Project Type field. For example, you might select "C6000". Then, click Next.
  4. Click Next on the "Additional Project Settings" page.
  5. Device variant fields
    In the Device Variant row of the "CCS Project Settings" page, select a filter in the first field. This shortens the list of device variants in the second field. Then, select the actual device you are using. For example, you might select "TMS320C64X" in the filter field and "Generic C64x+ Device" in the second field. Depending on your device, you might also need to adjust the Device Endianness and Runtime Support Library settings.
  6. Enabling RTSC support
    In the Target content area, select the Enable RTSC support option. Then, click Next.
  7. On the "Referenced RTSC Configuration" page, choose whether you want to create a new RTSC configuration or use an existing one. If you are getting started with RTSC, you will probably need to create a new configuration. Then, click Next. (If you want to share configurations between projects, see the RTSC+Eclipse FAQs.)
  8. On the "New RTSC Configuration Page" page, accept the default name and location for the configuration project. Then, click Next.
  9. Example configuration settings
    On the "RTSC Configuration Settings" page, make sure the versions of XDCtools, DSP/BIOS, and other products that you want to use are selected. By default, the most recent versions are selected.
  10. Also on the "RTSC Configuration Settings" page, click the drop-down arrow next to the RTSC Platform field. CCSv4 scans the available packages for available platforms. Click on the list and choose the platform you want to use.
  11. You can choose which libraries you want the configuration build to link with in the RTSC Build-Profile field. The RTSC Target setting is based on device settings you made on earlier pages, and should not need to be changed. Then, click Next.
  12. On the "RTSC Configuration Templates" page, check the Create a project using one of the templates box if you want to use a provided template as the basis for your configuration. For example, you can select the Hello example, which uses the XDCtools System module. If you don't want to use a template, you can later add files to your projects. Then, click Finish.
This procedure adds two projects to the C/C++ Projects list in CCSv4:
  • The main project for your application, which will contain the application source code. This project references the RTSC configuration project.
  • The RTSC configuration project, which contains a *.cfg file for static configuration of RTSC modules and objects (and for RTSC-based products like DSP/BIOS).

The RTSC target and platform are key parameters that describe your embedded hardware environment. See Using Targets and Platforms for more information on choosing a RTSC target and platform for your project. Check the ti.targets package and ti.platforms.* packages for pre-built targets and platforms suitable for use in CCSv4.

Using a RTSC configuration template

When you are creating a CCSv4 project that enables RTSC support, you can select a RTSC Configuration Template. When you highlight a template, a brief description is provided to the right.

When you use File > New > CCS Project and get to the RTSC Configuration Templates page of the project creation wizard, choosing a template copies both a default .c file into the CCS Project and a default .cfg file into the RTSC Configuration Project.

When you use File > New > RTSC Configuration Project and get to the RTSC Configuration Templates page of the project creation wizard, choosing a template copies only a default .cfg file into the RTSC Configuration Project (but no .c file).

See the DSP/BIOS Getting Started Guide (in the DSP/BIOS installation) for further descriptions of the DSP/BIOS templates you see on the RTSC Configuration Templates page of the project creation wizard.

Adding files to projects

If you create a project using a RTSC configuration template, source files are automatically added to your projects, and you can modify those files as needed.

If you chose not to use a template, you can add C source files to your project by selecting the main application project and doing any of the following:

  • New file types
    Creating a new file. From CCSv4's menus, choose File > New > Source File (or File > New > Header File).
  • Copying an existing file. From CCSv4's menus, choose Project > Add Files to Active Project. Browse to the folder than contains the file you want to add. Select the file and click Open. This copies the file to the directory that contains your project.
  • Linking to an existing file. From CCSv4's menus, choose Project > Link Files to Active Project. Browse to the folder than contains the file you want to add. Select the file and click Open. This links to the file in the directory where it was stored.

If you chose not to use a template, you can add a RTSC configuration file to your project by selecting the RTSC Configuration Project and making it the active project in CCSv4 (by right-clicking on the project and choosing Set as Active Project). Then, do any of the actions listed above for C source files, except that you create new files by choosing File > New > RTSC Configuration File.

The folders listed in the Includes list (except for the compiler-related folder) are folders that are on the RTSC package path.

If you expand the node for a source file in the project list, it lists the header files it references and the functions it contains.

Using XGCONF to edit RTSC configurations

XGCONF is a tool that allows you to graphically create and view RTSC configuration scripts. (If you have used DSP/BIOS 5.x, it is somewhat similar to the DSP/BIOS Configuration Tool.)

To start XGCONF, follow these steps:

  1. Make the project containing the RTSC configuration file (with a 'cfg' extension) the "Active" project. This may be accomplished by right-clicking on the project in the "C/C++ Projects" view and selecting Set as Active Project. This step is important since XGCONF works with the properties of the current active project in the workspace.
  2. Right-click on the RTSC configuration file and select Open with > XGCONF.

You can watch a demo that shows how to use XGCONF. For further information about using XGCONF, see the XGCONF User's Guide.

Building the project

When you build an application project, the associated RTSC configuration project is also rebuilt if the configuration has been changed.

To build the project, follow these steps:

  1. Make sure the main application project is the active project. (If it isn't active, right-click on the project and select Set as Active Project from the menu.)
  2. Choose Project > Build Active Project.
  3. Examine the Console log to see if errors occurred.

For help with build errors, see Troubleshooting.

The RTSC configuration step occurs before compiling the .c files in your application, or whenever the prog.cfg file changes. CCStudio runs a command-line tool called "configuro" that processes the configuration script and outputs static C data structures and code to be linked with your application.

Configuro can be used to integrate RTSC configuration into other build systems, command-line or graphical. For more information, see Consuming Configurable Content.

After you build the project, look again at the C/C++ Projects view. You can expand the Debug folder to see the files that were generated by configuro and the build process. Notice that the project build flow diagram shown here references certain important files that were generated by configuro.

RTSC project build flow

Rules for working with CCS Build Settings

After you have created a RTSC Configuration Project, you can change the properties of the project in CCSv4 by right-clicking the project name and choosing Properties.

However, you should be careful about changing the CCS Build Settings for a RTSC configuration project. The build settings for the configuration project much match or be compatible with those of all application projects that reference the RTSC configuration project. So, if you change the CCS Build Settings for a RTSC configuration project, you should also change the build settings for the application projects that use that configuration.

In the "CCS Build Settings" category of the Properties dialog, the General tab applies to compiler settings, the RTSC Configuration tab applies to the "configuro" utility used to process the .cfg file, and the Link Order tab applies to the linker settings.

Note that if there is any platform-specific configuration in your .cfg file, you much change those settings in addition to any changes you make to the CCS Build Settings.

Running and debugging an application

If you haven't already created a default target configuration, follow these steps or watch the demo:

  1. Choose File > New > Target Configuration File.
  2. Type a filename for the target configuration, which will be stored as part of the CCS project. For example, you might type TCI6482sim.ccxml if that reflects the target you want to use. Then, click Finish.
  3. In the Connection field for your target configuration, choose the type of connection you have to the target. Then type part of the target name in the Device filter field. For example, you might choose the "TI Simulator" connection and filter by "64xp" to find a C64x+ simulator.
  4. Choose File > Save or click the Save icon to save your target configuration.
  5. You can right-click on a target configuration and choose Set as Default Target to set which target configuration is used for debugging.

To debug an application, follow these steps:

  1. Choose Run > Debug Active Project or click the bug icon. This loads the program and switches you to the "Debug" perspective.
  2. Set a breakpoint at line 10 by placing your cursor in the line of prog.c and clicking the hand icon.
  3. Press F8 to run to the breakpoint.

  4. Look at the messages in the "Console" tab.

For Eclipse-based debugging of applications that use RTSC modules, XDCtools provides the Runtime Object Viewer (ROV). For information on using this tool, see Runtime Object Viewer (ROV).

See also

RTSC+Eclipse FAQs | Using RTSC with Eclipse-Based Tools
XGCONF User's Guide | Using the RTSC Graphical Configuration Tool in CCSv4
Runtime Object Viewer | Using ROV for Eclipse-Based Debugging
RTSC Module Primer | Producing and consuming spec'd modules
Using Targets and Platforms | Introduction to targets and platforms
Using xdc.runtime System | How to boot, print a message, and shutdown
Overview of xdc.runtime | Introduction to the xdc.runtime package

Flash demos

Demo of RTSC Project Creation in CCSv4 | Using CCStudio v4 to create a RTSC project
Demo of XGCONF in CCSv4 | Using XGCONF to create a RTSC configuration
Demo of Target Configuration Creation in CCSv4 | Using CCStudio v4 to create a target configuration for debugging
Demo of DSPBIOS 5.x Project Creation in CCSv4 | Using CCStudio v4 to create a DSP/BIOS 5.x project
Demo of the RTSC Platform Wizard in CCSv4 | Using CCStudio v4 to create a custom RTSC platform

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


RTSC+Eclipse FAQs - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

RTSC+Eclipse FAQs

Using RTSC with Eclipse-Based Tools

This page provides answers to frequently asked questions about using RTSC within an Eclipse IDE such as CCStudio v4.

Contents

  • 1 Installation and setup issues
  • 2 Creating a project
  • 3 Building the project
  • 4 See also

Installation and setup issues

FAQ-080729-1 | How can I change the version of XDCtools used to build an existing Eclipse project?
FAQ-080729-2 | How can I change the version of XDCtools used to build new Eclipse projects?
FAQ-080730-2 | How can I change the version of XDCtools used to control the Eclipse plug-ins?
FAQ-080729-4 | How can I set my XDCPATH in an Eclipse IDE?

Creating a project

FAQ-080729-5 How can I share a configuration between Eclipse IDE projects?

Building the project

FAQ-080729-8 | Where can I get help on troubleshooting build and runtime errors?
FAQ-080730-1 | How can I resolve linking issues with v6.1 of the C6000 compiler?

See also

RTSC+CCStudio v4 QuickStart | Using CCStudio v4 to create, build, and debug RTSC projects
Runtime Object Viewer | Using ROV for Eclipse-Based Debugging
Trouble Shooting | Frequently encountered problems and their solutions

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XGCONF User's Guide - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XGCONF User's Guide

Using the RTSC Graphical Configuration Tool in CCSv4

This page provides instructions for creating and editing a RTSC configuration file within an Eclipse IDE such as CCStudio v4.

Contents

  • 1 What is XGCONF?
  • 2 Opening a RTSC configuration with XGCONF
  • 3 About the XGCONF views
    • 3.1 The Available Packages view
    • 3.2 The Outline view
    • 3.3 The Properties tab
    • 3.4 The Source tab
    • 3.5 The Problems view
  • 4 Adding a module to the configuration
  • 5 Deleting a module
  • 6 Adding an instance
  • 7 Deleting an instance
  • 8 Changing a property value
  • 9 Saving the configuration
  • 10 Finding and fixing errors
  • 11 See also

You can also watch a demo that shows how to use XGCONF.

What is XGCONF?

XDCtools includes a configuration tool that runs in CCStudio v4 called XGCONF. You can use this tool to graphically create and view RTSC configuration scripts. Such configurations are written in the XDCscript language (a superset of JavaScript), but XGCONF displays them in a visual manner.

As you might imagine, XGCONF is useful because it gives you an easy way to view the end result of your configuration, without having to read configuration code. XDCscript lets you specify a "contract" for what you want to accomplish in your configuration; processing that configuration finds all the necessary pieces for realizing that goal. Because a number of modules and instances are activated behind-the-scenes during configuration processing, XGCONF is a useful tool for viewing the result of these internal operations.

See the RTSC+CCStudio v4 QuickStart to learn about creating projects that contain RTSC configuration files.

Opening a RTSC configuration with XGCONF

To open XGCONF, follow these steps:

  1. Make sure you are in the C/C++ perspective of CCStudio 4. If you are not in that perspective, click the C/C++ icon to switch back.
  2. Make the project that contains the RTSC configuration file (with a .cfg extension) the "Active" project. You can do this by right-clicking on the project in the "C/C++ Projects" view and selecting Set as Active Project.
  3. Double-click on the RTSC configuration file. It takes a few seconds for XGCONF to open. During this time, the CCStudio status bar shows that the configuration is being processed and validated.

If, after a few seconds, only the text editor has opened, right-click on the .cfg file and choose Open With > XGCONF from the pop-up menu.

About the XGCONF views

The XGCONF tool is made up of several panes:

  • Available Packages view, which lets you add modules to your configuration. By default, this view appears in the lower-left corner of the window.
  • Outline view, which shows modules used in your current configuration and lets you choose the module to display in the Properties view. By default, this view appears on the right side of the window.
  • Editor, which has the following tabs:
    • Properties tab, which shows the property settings of the selected module or instance in a name/value table, lets you make changes, and displays errors.
    • Source tab, which shows the source configuration script, lets you make changes, and displays errors.
  • Problems view, which lists errors and warnings detected in the configuration during validation.

The Available Packages view

The Available Packages view lists the RTSC packages available for use in your configuration. It also lets you add modules to your configuration. The list is organized according to functional categories. Modules that you are likely to use in your configuration script are listed in this tree. Modules that are used internally or are implicitly configured by other modules are hidden in this tree.

Group By Products

When you open a configuration with XGCONF, the package path defined in your CCStudio 4 project is scanned for packages and the results are listed here.

You can open online help about a module by right-clicking on the module and selecting Help from the pop-up menu.

The Outline view

The Outline view shows modules and instances that are available for configuration in your *.cfg file. You can view the Outline in two ways. To toggle between the two, click the [image] icon.

  • Explicit use mode. This view mode shows a flat list of only those modules directly referenced in the *.cfg file and instances created directly in the *.cfg file. You can use this view to add instances of modules and delete the use of a module use from the configuration.
  • Implicit and explicit use mode. This view mode shows a tree view of all the modules and instances that are used both implicitly (behind the scenes) and explicitly (because they are referenced directly in the *.cfg file). This view is useful for understanding the interrelationships between modules that are handled automatically by RTSC. This view is read-only.
Explicit Use | Implicit and Explicit Use
Flat view | Tree view

Some modules have a red ball red ball next to them, while others have a blue ball blue ball . The blue ball indicates that this is a target module, which provides code or data that can be referenced at runtime on the embedded target. The red ball indicates that this is a meta-only module, which exists in the configuration but does not directly exist on the target.

The Properties tab

If you select a module or instance in the Outline view, the Properties tab shows lists of properties for the selected item. You can use the Properties tab to modify the values of properties.

For some module and instance types, more than one tab is shown in the Properties view. For example, when you select a module, there is a Basic tab that shows the properties for the selected module and an xdc.runtime tab that shows the <Module>.common$ properties and their values for the selected module. Some modules do not have any configuration properties except for the common$ properties.

See xdc.runtime.Types for more about the common$ properties.

You can click the Validate icon icon to validate any recent changes you have made to the configuration.

You can click the Help icon icon to open online help for the module that is currently selected.

The Source tab

If you click the Source tab of the editor page, you can use a text editor to directly edit the configuration script. When you save the file, it is validated and the other panes are refreshed to reflect your changes.

This tab shows the actual XDCscript statements in the *.cfg file. You can use Ctrl+S to save any changes you make. You can right-click on the file and choose Undo to undo the most recent graphical editing operation, or Revert File to return to the most recently saved version of this file.

When you select a module or instance in the Outline view, the Source tab highlights all the lines of the configuration file that are related to that module or instance.

The Problems view

The Problems view lists all errors and warnings detected during a build or validation of the configuration script.

This view is automatically displayed whenever new errors or warnings are detected.

The Outline view shows an Error icon icon next to any modules or instances for which problems were detected. If you select such a module, the Properties view shows an Error icon icon next to the properties that are incorrectly set.

Error in Properties tab

If you double-click on an item in the Problems view while the Source tab is displayed, the Source tab highlights the statement that caused the error or warning, and a line indicator appears in the source code margin to the left of the error. Position indicators for any problems also appear to the right of the scrollbar.

Error in Source tab

Depending on the type of problem, the validation may only report the first item found in the configuration. For example, a syntax error such as an unknown variable in the script may prevent later problems, such as invalid values being assigned to a property, from being reported. Such problems can be detected after you fix the syntax error and re-validate the configuration.

If there is not enough detail available to blame a specific configuration parameter, no problem icon will be shown in the Properties tab. A problem icon will still be shown on the module or instance in the Outline view.

You can sort the problem list by clicking on the headings. You can filter the problem list to display fewer items by clicking the Filter icon icon to open the Filters dialog.

Adding a module to the configuration

To make a module available for explicit configuration in your *.cfg file, find that module in the Available Packages view. Right-click on the module and choose Use Module from the menu.

Alternately, you can drag a module from the Available Packages view to the Properties tab, Source tab, or Outline view.

Adding a module to the configuration causes an xdc.useModule() statement to be added to the configuration script.

Deleting a module

If you want to delete a module from being explicitly used by the configuration, right-click on that module in the Outline view, and select Delete Module from the menu.

Deleting a module from the configuration removes the corresponding xdc.useModule() statement and any instances of the module from the configuration script.

If deleting the module would result in an invalid script, an error message is displayed and the module is not deleted. This can happen if a different module or instance refers to it in the script, for example in an assignment to a proxy or a configuration parameter.

Adding an instance

To add a statically-defined module instance to your configuration, right-click on a module in the Outline view and choose Add Instance from the menu. You see a dialog that lets you specify values you want to use for the properties of that instance. You can type or select values in the Value column.

For example, the following dialog asks you to specify the function a Clock object should run and the length of its timeout. It also allows you to specify various optional properties.

Deleting an instance

If you want to delete an instance from the configuration, right-click on that instance in the Outline view, and select Delete Instance from the menu.

Alternately, you can use the Source tab to remove or modify the line that creates the instance. Then save the file. For example, the following line creates a LoggerSys instance called "trace".

var trace = LoggerSys.create();

Changing a property value

To modify a property of a module or instance, follow these steps:

  1. Select the module or instance you want to modify in the Outline view.
  2. In the Properties tab, select the tab that contains the property you want to modify.
  3. Click in the Value column for that property and type or select a new value.

Selecting a value

If you want to change the name property of an instance, you must do that in the Source tab.

The datatype required for each property is listed in the Type column. When you type a value for a property, XGCONF checks to make sure the type of the value matches the type expected for the property. This is separate from the more extensive validation checks that are performed when you save a configuration. See the Error handling section for more about the validation checks.

For most numeric properties, the default is to enter decimal values. To switch between decimal and hexadecimal values, right-click on the property row and choose Set Radix > Hex or Set Radix > Decimal from the menu.

If you point your mouse cursor at a property without clicking, a short description of the property appears.

Typing a value

For more information about a property, right click on the property row and choose Help from the menu.

Saving the configuration

If you have modified the configuration, you can press Ctrl+S to save the file. Or, choose File > Save from the CCSv4 menu bar.

In the Source tab of a configuration, you can right-click and choose to Revert File or Save.

See the Error handling section for information about the validation checks performed when you save a configuration with XGCONF.

Finding and fixing errors

A configuration is automatically validated if you perform any of the following actions:

  • Add a module to be used in the configuration
  • Delete a module from use by the configuration
  • Add a instance to the configuration
  • Delete an instance from the configuration
  • Save the configuration

You can also validate a configuration by clicking the Validate icon Validate icon.

Validation means that semantic checks are performed to make sure that, for example, objects that are referenced actually exist. These checks also make sure that values are within the valid ranges for a property. Some datatype checking is performed when you set a property in the Properties tab.

If you are editing the configuration code directly in the Source tab, the configuration is validated only if you save the configuration.

While a configuration is being validated (this takes a few seconds), you see the a progress icon in the lower-right corner of the window.

After the configuration has been validated, any errors that were detected in the configuration are shown in the Problems view. For example, if you delete the statement that creates an instance that is referenced by another configuration parameter, you will see an error.

See the Problems view section for more about finding and fixing errors.

See also

RTSC+CCStudio v4 QuickStart | Using CCStudio v4 to create, build, and debug RTSC projects
RTSC+Eclipse FAQs | Using RTSC with Eclipse-Based Tools
RTSC Module Primer | Producing and consuming spec'd modules

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Runtime Object Viewer - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Runtime Object Viewer

Using ROV for Eclipse-Based Debugging

The Runtime Object Viewer (ROV) is a debugging tool you can use with applications that make use of RTSC content in CCStudio 4. This viewer provides state information about all the RTSC modules in the application. ROV is a stop-mode debugging tool, which means it can receive data about an application only when the target is halted, not when it is running. ROV provides data at stop points even if you have disabled RTDX in your application. In contrast, the Real-Time Analysis (RTA) tools require RTDX.

Contents

  • 1 Opening ROV
  • 2 Viewing Data with ROV
  • 3 ROV tabs
    • 3.1 Raw tab
    • 3.2 Basic and Detailed tabs
    • 3.3 Module tab
    • 3.4 Data tab
  • 4 See also

If you are in a CCSv4 project debug session, ROV automatically gets paths to packages from your CCSv4 project.

Opening ROV

To open ROV, follow these steps:
  1. Load your application for debugging. If you are using a multi-core device, select the device you want to debug before opening ROV.
  2. Choose Tools > ROV from the CCSv4 menus. This opens the ROV area in the Debug perspective. (You can open ROV at any time while you have an application loaded.)
  3. In the left pane of the ROV tool, select a module from the expandable tree (see figure) of RTSC packages used by the application.
  4. In the right pane of the ROV tool, select one of the tabs. (The "ROV tabs" vary depending on the module you select.)
  5. Halt the target or run to a breakpoint. Fresh data will be loaded from the target to the ROV display.

Viewing Data with ROV

The left side of the ROV GUI displays the modules in the application, organized as a tree according to the package hierarchy. Double-clicking a module in the tree shows its state information on the right side.

When you click on a module or tab in ROV, you see the "Acquiring data..." message while ROV retrieves and processes information. If you switch to a different tab or module, ROV cancels the previous data request and begins a new one. Data for non-selected tabs is not loaded in the background when you switch tabs or modules.

When you reload or rerun the application, ROV clears all of its cached data.

When the application halts at a breakpoint, ROV refreshes only the currently displayed information. If any data has changed since the last time ROV requested that particular data, ROV displays that data in red text. Keep in mind, however, that ROV only retrieves data when it is requested. If ROV did not get an item at the last breakpoint, it has nothing to compare it to at the current breakpoint. In short, if a field is not red, this does not necessarily mean that the data did not change.

While the target is running, you may continue to explore ROV. Any data that was retrieved at the last breakpoint is shown in gray text. If data was not retrieved you see a "Target running..." message that indicates that ROV cannot retrieve new data while the target is running.

ROV highlights errors by making the background red . Hover your mouse over a field with a red background to see the error message.

ROV can detect the following types of errors.

  • Validation errors. RTSC modules can provide validation of information ROV receives from the target. For example, a particular structure field can have a maximum value of 32. If the value on the target is 33, the module can report this as a problem.
  • Memory. ROV may report bad memory accesses or other detectable problems.
  • ROV errors. ROV reports standard exceptions if a corrupted data from the target causes ROV-related code in a module to behave incorrectly.

ROV tabs

ROV can show state information for every module in an application that maintains a state. All modules have at least a "Raw" tab. Other modules may have additional tabs, such as "Basic", "Detailed", and "Module". These additional tabs are implemented by the module writer to provide different views into the data.

For details about the data available in ROV for a particular module, refer to the online help for that module.

Raw tab

All modules have a "Raw" tab that displays unprocessed data from the target.

The "Raw" tab has expandable items for the module's state structure, any instances' state structures, and the configuration properties for the module.

When you expand the "Module State" node, you see variables owned by the module along with their values. Structures with multiple fields can be further expanded to view their values.

When you expand the "Instance States" node, you see a list of instances that have been created for that module. Statically-created instances have the name you gave them when you configured them. Dynamically-created instances have an address value as the name.

When you expand the "Configuration node, you see a list of configuration properties for the module. Expanding the node for an instance also shows a list of configuration properties for the instance. The values of these properties may have been set statically, and may be changed programmatically at run-time.

Use the [image] icon to pause updates to the ROV tool so that new values are not downloaded automatically at the next breakpoint.

Use the [image] icon to fit the columns in the ROV to best fit their contents.

Use the [image] icon to get the current data from the target.

Basic and Detailed tabs

The "Basic" and "Detailed" tabs contain state information about the selected module's instances. Each row of the table represents an instance of the module. ROV tabs that contain instance information always have the instance's address (the address of the instance's state structure) in the first column.

The following example shows the Detailed tab for the DSP/BIOS Task module.

The "Basic" and "Detailed" tabs contain largely the same information. The "Detailed" tab generally provides detailed information that may require longer processing time. If you do not need the extra information in the "Detailed" tab, you may use the "Basic" tab for somewhat quicker response times.

Module tab

The "Module" tab presents module state information. It has only one row, which represents the module's state object.

Data tab

Some modules have a "Data" tab. This tab displays tables of data associated with the instances managed by a module. A good example is a memory heap. The data tab for a memory heap module could show all the heap's allocable memory blocks.

A data tab may have a name other than "Data" to describe the data it displays, such as "Records" or "Blocks".

A "Data" tab lists the module's instances on the left. Expanding an instance shows a list of all of the data elements. Selecting one or more data elements on the left shows details about them on the right. You can select all the elements in an instance by clicking the first element, holding down the Shift key, and clicking the last element.

See also

RTSC+CCStudio v4 QuickStart | Using CCStudio v4 to create, build, and debug RTSC projects
RTSC+Eclipse FAQs | Using RTSC with Eclipse-Based Tools
XGCONF User's Guide | Using the RTSC Graphical Configuration Tool in CCSv4

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Using Targets and Platforms - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Using Targets and Platforms

Introduction to targets and platforms

Contents

  • 1 Introduction
  • 2 Targets
    • 2.1 Target Names
    • 2.2 Configuring Targets
      • 2.2.1 Generic targets
    • 2.3 Target Runtime Support Packages
  • 3 Platforms
    • 3.1 Platform Names
      • 3.1.1 Defining Platform Instances via config.bld
      • 3.1.2 Defining Platform Instances via a RTSC Module Configuration Parameter
    • 3.2 Using the Generic Platform
  • 4 Creating New Targets and Platforms

Introduction

Before using target content produced by a third party, application developers must specify certain aspects of their development environment:

  1. the compiler and a runtime model supported by the compiler used to build the application, and
  2. the hardware platform used to run the application

In RTSC, a target "encapsulates" the compiler and runtime model information as a single named entity. Similarly, a platform is a named entity that encapsulates the hardware platform information. Informally, targets contain the information necessary to create a library that can be linked into an end-application and platforms contain all the information necessary to link and run an application on specific hardware.

Both targets and platforms are RTSC objects that are specified by the end-user via a string name. These names uniquely identify an appropriate object and allow tools that run at different times in the application's lifecycle (development, testing, and deployment) to access this object's attributes by simply using the object's name. For example, in Consuming Configurable Content, target and platform names are passed to the xdc.tools.configuro configuration tool to initialize the associated configuration Domain Object Model (DOM) prior to running an application's configuration script.

xs xdc.tools.configuro -t ti.targets.C64 -p ti.platforms.sim6xxx:TMS320C6416 app.cfg

This allows both the application's configuration script and any imported packages to conditionally select appropriate options, libraries, or prerequisite packages necessary to support the current configuration. Similarly, the RTSC Build Engine uses target names to initialize the build DOM prior to running package build scripts. Since both the target and platform names start with a name from the RTSC module or package namespace, target and platform specifications can be shared not just among local developers but also with developers in separate companies worldwide.

Application configuration scripts read but never modify target or platform attributes. It's important that targets and platforms remain unaltered since all models, including the build model and the runtime time model, rely on the fact that all models see the exactly the same target and platform information.

The need to specify compilers, runtime models, and hardware platforms is certainly not unique to RTSC or embedded software. For example, virtually all GNU Open Source packages include a configure shell script (created by the package producer via the Autoconf tool) that determines the compiler, runtime, and hardware platform from a combination of command line options to configure and the user's environment. Although this technique makes it very easy to rebuild and install GNU packages in workstation environments, it requires the end-user to have a fairly large set of UNIX-based tools including a "unixy" shell, it presumes that the packages are delivered in source form, and the information associated with the arguments to configure can not be accessed after the package's installation except via ad hoc package-specific mechanisms.

Targets

Targets are implemented as any RTSC module that implements the xdc.bld.ITarget interface. While most users do not need to create new targets, the fact that they are represented as modules that implement a specific interface implies that

  1. anyone can add new targets without updating the XDCtools product
  2. target-specific extensions and detailed documentation is provided in the target module's *.xdc file
  3. tools can easily identify the entire set of available targets, and finally
  4. the information provided by all targets is formally specified by the xdc.bld.ITarget interface.

See Existing Targets for a list of targets and the compiler options that define these targets.

Target Names

Target names are simply the full name of the module that implements the ITarget interface. Since fully qualified module names (i.e., module names that include their package's name) are globally unique, this name can be used to uniquely identify a target. For example, the string "ti.targets.C64" uniquely identifies the module (ti.targets.C64) that contains all the information necessary to build a library of object files for a TMS320C64x processor running in little endian mode using TI's code generation tools.

Configuring Targets

Before a target can be used, it must be "configured". In particular, for each target you use, you must specify the installation directory of the toolchain that it encapsulates. Since targets are implemented as RTSC modules, the specification of the installation directory for a target is naturally expressed as a configuration parameter of the module. While this may seem odd at first, there are several advantages:

  • the same language used to configure target modules, XDCscript, is used to configure your build environment (one less language to learn);
  • this language, being a full programming language, makes it easy to integrate into existing build environments and support complex development environments with multiple versions of multiple toolchains;
  • since anyone can create new modules, anyone can create and publish new targets effectively extending XDCtools to support their favorite toolchain; and
  • each target can support a variety of compiler-specific configuration parameters to make use of the toolchain easier for the user.

Targets are always configured via a config.bld script and, for simple cases, this script quite straightforward; the only configuration parameter that you must set is the target's rootDir parameter.

config.bld

var C64P = xdc.useModule("ti.targets.C64P");  /* get the target module */
C64P.rootDir = "/user/local/ti/c64/6.1.2";    /* specify the target compiler's install directory */

For these simple cases, tools such as xdc.tools.configuro can implicitly create and use a config.bld based on command line parameters. However, unless you're happy to rely on the default compiler options and you use a single target, you'll find it easier to create and manage this file by hand. For more information about config.bld scripts, see Managing Compiler Toolchains.

Generic targets

Generic targets. A target is usually created for a specific toolchain, where the names of commands and relative paths within in installation do not change. However, some targets are meant to represent a whole family of toolchains that generate compatible code but have different physical organization. The target modules in the package gnu.targets.arm are examples of such targets. A target from this package supports multiple Gnu Arm compilers, but the target is not preconfigured to use any of them by default. To use these targets, you must set the required parameter LONGNAME in a config.bld script, in addition to setting rootDir for the target.

For example, if version 2007q3 of the CodeSourcery GNU toolchain for Arm is installed in C:/CodeSourcery/arm-2007q3, the following settings in config.bld configure the gnu.targets.arm.GCArmv6 target to use that toolchain:

config.bld

var GCArmv6 = xdc.useModule("gnu.targets.arm.GCArmv6");
GCArmv6.rootDir = "C:/CodeSourcery/arm-2007q3";
GCArmv6.LONGNAME = "bin/arm-none-linux-gnueabi-gcc";

Target Runtime Support Packages

All targets name a package containing pre-built versions of the modules in the xdc.runtime package; see xdc.bld.ITarget.rts. This is done for several reasons:

  1. new targets can be added by anyone at any time without making any changes to the xdc.runtime package,
  2. all modules can assume the base set of services supplied by xdc.runtime without ever directly referring to any target-specific packages, and
  3. the end-user does not need to rebuild xdc.runtime modules when using a new target - she simply installs the target packages and associated runtime support packages like any other package.

However, there are two situations where the end-user must re-build the runtime support package identified by a target:

  1. when a new version of the xdc.runtime package is released, and
  2. if the version of the compiler used to produce the runtime support package is incompatible with the compiler version being used for the application; e.g., if the runtime support package was built using a newer version of the compiler than the end-user's compiler - compilers usually handle older object-file formats (because they are known) but new object file formats can easily break older compilers.

Runtime support packages are re-buildable by the end-user. You can either rebuild the package in-place or copy the package to a new repository that appears on your package path ahead of the original. For more information about how to rebuild a runtime support package see Re-building xdc.runtime Support Packages.

Platforms

Platforms are implemented as named instances from a RTSC module named "Platform" (contained in any package) that implements the xdc.platform.IPlatform interface. Packages containing a Platform module are called platform packages. While most users don't create new platform packages, the fact that platforms are instances of a module that implement a specific interface implies that

  • anyone can add new platforms without updating the XDCtools product
  • platform-specific extensions and detailed documentation is provided in the Platform module's *.xdc file
  • tools can identify the entire set of available platforms, and finally
  • the information provided by all platforms is formally specified by the xdc.platform.IPlatform interface.

Platforms are not implemented as modules because, unlike targets, there is little or no standardization among different end-applications. Virtually every embedded hardware platform is unique, where as it is common for each C6x platform to support one of a very small set of "standard" targets, for example.

Platform Names

Since platforms are implemented as instance objects rather than as a module, we can't simply use the RTSC module namespace to identify platforms. Unlike modules, which are pre-existing singleton objects with globally unique names, instance objects are generally anonymous objects created with parameters on an as needed basis. Platform instance names must uniquely identify both a module as well as the parameters used to create the instance.

Although end-users don't often create platform packages, they do need to define named platform instances. There are two ways to define named platform instances:

  1. add an entry to xdc.bld.BuildEnvironment.platformTable inside a config.bld script, or
  2. create a RTSC module with a configuration parameter of type xdc.platform.IPlatform.Instance.

In either case, both arguments of the xdc.platform.IPlatform.create() method are specified: a name string and a "structure" of platform-specific arguments.

Platform instance names reflect the two ways of defining named platform instances:

  1. "platform_pkg_name:instance_name_arg" refers to instances defined in config.bld, where platform_pkg_name is the name of the platform package containing the Platform module used to create the instance, instance_name_arg is the name argument, and the value of xdc.bld.BuildEnvironment.platformTable["platform_pkg_name:instance_name_arg"] is the platform-specific argument structure, and
  2. "module_name.config_param" refers to an instance specified by initializing a configuration parameter of type xdc.platform.IPlatform.Instance named config_param within the module named module_name. In this case, the name argument is "config_param" and the platform-specific argument structure is the initializer declared for this config parameter.

Defining Platform Instances via config.bld

Defining platform instances within config.bld is the easiest way to define new platform instances. But, while this method is sufficient for most situations, it is better to define platform instances as a configuration parameter of a RTSC module (described below).

To define a platform instance in config.bld, simply add a new entry to the xdc.bld.BuildEnvironment.platformTable map. For example, to add the platform instance named "ti.platforms.sim6xxx:C6416" that corresponds to an instance of the ti.platforms.sim6xxx.Platform module created with the deviceName parameter set to "TMS320C6416"

Build.platformTable["ti.platforms.sim6xxx:C6416"] = {deviceName: "TMS320C6416"};

You can define a "default" platform instance for a platform package by omitting the ":instance_name" suffix. In this case, the name of the platform instance is the same as the name of the platform package itself. While this is a convenient and concise way to name platform instances, it is important to not conflate platform instances with the package's used to create them.

Build.platformTable["ti.platforms.sim6xxx"] = {
    deviceName: "TMS320C6416", verbose: true
};

Defining Platform Instances via a RTSC Module Configuration Parameter

Although this technique of defining named platform instances requires the creation of a few simple files, it has several advantages: these platform instance definitions

  1. are available to any tool (not just the RTSC build and configuration tools)
  2. can be shared with external groups using the same techniques used to share any RTSC module
  3. will be automatically documented via the xdc.tools.cdoc tool (or any other documentation tool that reflects on RTSC IDL files).

Suppose you want to add a platform instance named "local.platforms.Sim6x.C6416" that corresponds to an instance of the ti.platforms.sim6xxx.Platform module created with the deviceName parameter set to "TMS320C6416". In this case, you must create a package named local.platforms with a module named Sim6x containing a configuration parameter named C6416 which is initialized with the deviceName parameter set to "TMS320C6416". While this is certainly a mouthful and enough to scare anyone away, it's really quite easy.

Simply create a directory named local/platforms in any repository in your package path with the following files and run the xdc command from this directory. This "compiles" the Sim6x module, making sure the deviceName parameter is a parameter of this platform, and makes the local.platforms.Sim6x module available to all scripts.

package.xdc

package local.platforms {
    module Sim6x;
}
package.bld

/* intentionally empty */
Sim6x.xdc

s1

import ti.platforms.sim6xxx.Platform;
metaonly module Sim6x {
    config Platform.Instance C6416 =
        Platform.create("C6416", {
            deviceName: "TMS320C6416"
        });
}

There are times when you need to pass parameters that are "computed" based on the value of environment variables or the contents of certain files. Although you can't run script code inside a *.xdc file, you can initialize the configuration parameter using a script called from your package's initialization method. The following example illustrates how you can use the value from an environment variable to initialize a platform-specific parameter.

package.xdc

package local.platforms {
    module Sim6x;
}
package.bld

/* intentionally empty */
Sim6x.xdc

import ti.platforms.sim6xxx.Platform;
metaonly module Sim6x {
    config Platform.Instance C6416;
}

Since Sim6x.xdc no longer declares a static instance to be created. We must create the platform instance from within the Sim6x module's meta-domain implementation, Sim6x.xs.

Sim6x.xs

x1

var Platform = xdc.module("ti.platforms.sim6xxx.Platform");

function module$meta$init()
{
    /* initialize instances with params that are computed */
    this.C6416= Platform.create("C6416", {
        deviceName: "TMS320C6416",
        ftpath: java.lang.System.getenv("TOOLS") + "/ti/fts/1.05/"
     });
}

Notice that the syntax of the expression used to initialize the C6416 config parameter in the previous example's Sim64.xdc s1 is the same as that used to create an instance in the Sim64.xs file x1 .

Using the Generic Platform

While it is always possible to create a custom platform package for your hardware, it's not always necessary. The ti.platforms.generic platform package can be used to define platform instances for almost any hardware platform based on a TI device. The ti.platforms.generic.Platform module's instance create() method accepts parameters that specify the device, clock speed, and memory map for each instance. Thus, it's often possible to define a named platform instance using this platform package for your custom hardware without having to create a new platform package.

Suppose for example, that your application's platform uses a TMS320C6416 running at 600MHz with a block of external memory starting at 0x80000000 with 0x800000 bytes of memory for code or data. You can define an appropriate platform instance inside your config.bld script as follows:

config.bld (fragment)

Build.platformTable["ti.platforms.generic:C64"] = {
    deviceName: "TMS320C6416",
    catalogName: "ti.catalog.c6000",
    clockRate: 600,
    externalMemoryMap: [
        ["EXTMEM", {
            name: "EXTMEM",
            base: 0x80000000,
            len:  0x00800000,
            space: "code/data"}
        ],
    ]
};

Although the ti.platforms.generic platform can be used for a broad category of platforms, it's almost always better to use a platform package specifically created for your hardware (if one exists). Hardware specific platform packages

  • define the correct clock speed(s) and memory map for the device running your application;
  • enable all developers to create executables with consistent (and correct) definition of the hardware;
  • augment the device information with additional information that enables target-content packages to better select appropriate default settings; and
  • supply functions that allow you to more easily run executables built for the platform.

Use of the ti.platforms.generic platform generally means that there will be more configuration parameters that you'll have to explicitly specify (because platform information beyond the device can't be provided to contributing packages) and there is greater chance of using the wrong memory map, clock speed, etc.

Creating New Targets and Platforms

Although it is technically quite easy to define how to create a new target or platform package, as a practical matter, most developers either copy existing implementations or inherit from these implementations.

Alternately, you can use the RTSC Platform Wizard provided in CCSv4 as part of XDCtools to create platform packages. You can watch a demo that shows how to use this wizard.

The sections listed below provide concrete examples of both techniques as well are guidance to know which is best for your needs.

Creating Targets | How to create a new target
Creating Platform Packages | How to create a new platform package

Again, in many cases it is unnecessary to create a new target and platform. In fact, it's best to use an existing target or platform whenever possible.

Existing Targets Targets suppled with XDCtools
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Using xdc.runtime System - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Using xdc.runtime System

How to boot, print a message, and shutdown

Contents

  • 1 Introduction
  • 2 Overview
    • 2.1 Architecture
      • 2.1.1 Startup and initialization
      • 2.1.2 Character output and shutdown
      • 2.1.3 Concurrency support
    • 2.2 Configuration
      • 2.2.1 System support proxy
      • 2.2.2 The System gate
  • 3 Examples
  • 4 Built-in System Support Modules
    • 4.1 The SysStd Module
    • 4.2 The SysMin Module
  • 5 Performance Considerations
    • 5.1 Interrupt latency and calling context
    • 5.2 Execution time
    • 5.3 Footprint

Introduction

The xdc.runtime package contains two modules that together provide the minimal set of services necessary to enable modular application startup and shutdown as well as basic message display.

  1. Startup - a module that provides a framework for the orderly initialization of modules prior to main(), and
  2. System - a module that provides exit handling similar to the ANSI C atexit() mechanism as well as basic printf() message output.

Use of these modules is illustrated below by a series of examples that use one of two other distinguished xdc.runtime modules that provide the "back end" support functions required by the System module:

  1. SysMin - a self-contained module appropriate for deeply embedded applications or early system development, and
  2. SysStd - a module that relies on standard ANSI C runtime library functions such as putchar() and fflush() and is appropriate for systems with an already functional ANSI C Standard I/O library.

Overview

Each embedded application runs in a unique environment with specific resource requirements and, as a result, adopts application-specific policies for basic character output, application startup, and shutdown. The xdc.runtime package provides an extensible platform-independent framework for application startup (from processor boot), initialization, and shutdown. In addition, it provides a platform-independent interface for character output which allows for platform-specific implementations that can range from simple memory writes to a circular buffer to flow-controlled output via a platform-specific I/O device.

The System and Startup modules provide the foundation for early application "bring up", and continue to serve in deployed applications to manage the initialization of higher-level services and provide simple "fail-safe" diagnostics. These modules together with, say, the SysMin system support module are sufficient to enable complete C-based application development using "printf" debugging.

Because Startup and System are platform-independent, entire embedded applications can be ported to alternative execution environments (Unix or Windows workstations, for example) without making any change to their sources. Porting to a different environment involves a simple reconfiguration of the application to replace the System support module with an implementation appropriate for the new execution environment; no change to the application's sources are required and, if you're porting between platforms with the same target, no recompilation is required.

Architecture

Every module in an application can optionally supply a "startup" function that must be run prior to the first use of the module by application code. This startup function might read memory mapped registers necessary to initialize the module's internal data structures, for example. Modules specify that they have startup functions via the @ModuleStartup attribute in their module specification file. The Startup module runs these startup functions prior to the application's main() entry point and provides numerous configuration parameters to enable the developer to augment the startup process with custom C functions.

The System module, on the other hand, provides mechanisms for modules (initialized under the control of Startup) to shutdown. Between the initialization of the application's modules and shutdown of the application, System is also used to perform simple character output via "printf-like" methods. By not supporting all the format specifications required by a full ANSI C Standard implementation of printf(), these methods provide a much smaller and faster implementation that satisfies most uses and can be embedded in very small applications.

Finally, the System module also provides a low-level "gate" that is used to protect global data structures maintained within the xdc.runtime package; this gate allows multi-threaded applications to safely use the xdc.runtime package's modules concurrently. This same gate can also be used by application code.

Startup and initialization

Startup and initialization. The Startup module provides a standard mechanism for the orderly initialization of all modules within an application before main() begins. The Startup module defines just two entry points that need to be integrated into the execution environment's startup code. Once this is done, Startup handles the initialization of all other modules in the application - xdc.runtime modules as well as any other modules used by the application.

Using xdc.runtime Startup describes the startup (and shutdown) process in detail and provides the information required to port applications from your development environment to your custom hardware.

Character output and shutdown

Character output and shutdown. The System module provides a facade for two key system level areas: character output and program termination. Since application termination and basic character output can be very different depending on the product and stage of development, the System module relies on a user supplied module that implements these very basic functions (defined by the ISystemSupport interface). Developers specify the module that implements these functions by setting the System.SupportProxy configuration parameter.

System Support Architecture

The xdc.runtime package includes two system support proxy options: SysMin and SysStd. These modules are sufficient for early development but, because they are written to be 100% portable, they don't take advantage of any platform-specific features (such as an embedded UART). Fortunately it is easy to create a custom system support module that can be bound to System as easily as SyMin or SysStd and takes full advantage advantage of your platform's execution environment. The System Support Section contains more details about how to create system support modules and includes a simple example that can easily be extended to leverage unique platform capabilities.

Concurrency support

Concurrency support. The System module is a gated module. The gate associated with the System module, also called the "System gate", is a used for two purposes:

  1. to protect critical regions within the xdc.runtime package by serializing concurrent accesses to global data; and
  2. to protect small critical regions within the application via the Gate_enterSystem() and Gate_leaveSystem() APIs.

For more information about using the xdc.runtime package in multi-threaded applications, see Multi-Threading Support. Using xdc.runtime Gates contains more details about gates, how to protect shared data structures using gates, and how to create new gates.

Configuration

Users can configure their application to specify on a per-application basis:

  • what module provides the output and shutdown services,
  • the maximum number of "at exit" handlers can can be dynamically added at runtime,
  • a custom reset handler called as early as possible during the boot process,
  • a list of functions to be called prior to any module initialization function, and
  • a list of functions to be called after all module initialization functions have completed.

System support proxy

System support proxy. The System module declares a SupportProxy configuration parameter that allows the developer to "bind" alternate implementations of low-level functions required for the operation of the System module's methods. The SupportProxy configuration parameter is unique in that rather than it being set to a string or numeric value, it must be set to a module that inherits from the xdc.runtime.ISystemSupport interface. This module implements the functions (abort, exit, flush, putch and ready) required by the System module to operate.

The xdc.runtime package includes two modules that implement the ISystemSupport interface:

  1. xdc.runtime.SysStd: relies on a functioning ANSI C Standard Library, and
  2. xdc.runtime.SysMin: completely self-contained implementation used for footprint or performance constrained applications or for low-level diagnostic support within larger deployed applications.

The following configuration script statements set the System module's SupportProxy to xdc.runtime.SysStd:

var System = xdc.useModule("xdc.runtime.System");
System.SupportProxy = xdc.useModule("xdc.runtime.SysStd");

If you want to minimize your application's memory footprint, you should use SysMin as the SupportProxy by either omitting the lines above or substituting SysMin for SysStd above.

The System gate

The System gate. The System gate must be restrictive enough to insure that critical regions protected by this gate are never "entered" by more than one thread at a time. For example, if these regions can be accessed by both interrupt service routines (ISRs) and non-ISR code, the gate must disable interrupts on entering and restore interrupts on leaving.

If the System gate is not configured by your configuration script or some RTOS package in the system, it will default to an instance of GateNull. Since GateNull provides no synchronization, it is usually a mistake to use GateNull to create the System gate in multi-threaded applications.

Multi-threaded applications must either

  1. configure the System module's gate with a mutex that serializes all threads that access the xdc.runtime modules, or
  2. ensure that there are no concurrent accesses to the xdc.runtime modules

For example, the following configuration script sets the System module's gate to an instance of the GateHwi module in the ti.sysbios.gates package. This allows any xdc.runtime module to be used from any ti.sysbios thread — including hardware interrupt service routines.

GateHwi = xdc.useModule("ti.sysbios.gates.GateHwi");
System.common$.gate = GateHwi.create();

The ti.sysbios package automatically configures the System gate as shown above. So there is no need to add these lines to your configuration scripts. However, if you are using an RTOS that does not implicitly set System.common$.gate, it's critically important that you add RTOS-specific lines to your configuration script similar to those shown above.

Examples

In the table below, we provide examples that illustrate the key capabilities of the Startup and System modules.

Example | Description | Purpose
Example 1 | Using System to print a message | a minimal "hello world" example to illustrate using System in existing code bases

Although it is possible to use one of the ISystemSupport modules that are part of the xdc.runtime package to complete the implementation of the System module (see below), you may find it necessary to "port" the System module to your platform. The table below lists examples of custom ISystemSupport modules that can serve as a basis for platform-specific customization. See Extending xdc.runtime System for more information about customizing System for you needs.

Example | Description | Purpose
Example 1 | Creating a new ISystemSupport module | illustrate adding a minimal System support module appropriate for deeply embedded devices

Built-in System Support Modules

The xdc.runtime package includes two built-in System support modules:

  1. SysMin - minimal support suitable for deeply embedded systems, and
  2. SysStd - a support module that assumes a thread-safe ANSI C Standard Library.

These modules inherit the xdc.runtime.ISystemSupport interface and are used to provide the underlying services required by the System module via the System module's SupportProxy configuration parameter.

The following sections briefly describe these modules and show examples of their use. Extending xdc.runtime System describes how to create additional System support modules.

The SysStd Module

SysStd directly calls the ANSI Standard C Library runtime functions putchar and fflush. It does not perform any additional functionality. Both the SysStd module's abort and exit functions flush the standard output via the standard C runtime fflush function.

To use this module as the System module's support proxy you must explicitly set this in your configuration script; otherwise the SysMin module with be used.

var System = xdc.useModule("xdc.runtime.System");
System.SupportProxy = xdc.useModule("xdc.runtime.SysStd");

The SysMin Module

SysMin is the System module's default Support Proxy; it is intended to be flexible but minimal. When SysMin is the Support Proxy, all output—from functions such as System_printf() and System_putch()—goes into an internally managed buffer. There are several configuration parameters that let you change the features as needed.

  • bufSize. The size in MAUs of the internal buffer used for output.
  • sectionName. The section in which the internal buffer should be created.
  • flushAtExit. If true, the internal buffer is flushed via SysMin_flush() during a System_exit() or System_abort().

If an application wants to minimize the memory footprint, it should use the SysMin module as the Support Proxy. If the application needs minimal printing capabilities, the bufSize configuration parameter can be set to 0, and flushAtExit can be set to false to further reduce the footprint.

var System = xdc.useModule("xdc.runtime.System");
var SysMin = xdc.useModule("xdc.runtime.SysMin");
SysMin.bufSize = 0;
SysMin.flushAtExit = false;
System.SupportProxy = SysMin; /* not really necessary since SysMin is the default */

If you want to retain the characters in the SysMin character buffer but want to handle their output using your own function, you can use the SysMin.outputFxn configuration parameter.

app.cfg

1

var System = xdc.useModule("xdc.runtime.System");
var SysMin = xdc.useModule("xdc.runtime.SysMin");
SysMin.outputFxn = "&myOutputFxn";
System.SupportProxy = SysMin;
app.c (myOutputFxn)

Void myOutputFxn(Char *buf, UInt len)
{
    ...; /* output len chars starting from buf */
}

Notice that the assignment to outputFxn 1 is a string whose first character is "&". Normally assignment to a configuration parameter requires values to types that match the type of the parameter. In the case of function pointers, RTSC also allows the assignment of specially formatted strings. In this case, the string "&myOutputFxn" tells the RTSC to assume that there is an external function named myOutputFxn with the right type signature that should be used to output characters. Of course, any function specified in a module that has the right type signature can also be directly assigned to SysMin.outputFxn.

Performance Considerations

Interrupt latency and calling context

Interrupt latency and calling context. The System module's functions are intended to be callable from any execution context, including Interrupt Service Routines (ISR). So it is important that any ISystemProvider implementation bound to the System module's SupportProxy be appropriate for the application as a whole.

In particular, if System_printf() is callable from an ISR, the implementation of putch() provided by the ISystemProvider must be designed to never suspend the calling thread (otherwise the ISR could block and most operating environments don't support this).

Although SysStd does not explicitly suspend the caller on any function, the underlying implementation of the ANSI C Standard Library functions (that SysStd calls) may try to block the caller. If you're not sure whether or not the System module's functions can be called from an ISR, you should use SysMin in lieu of SysStd.

Of course, if you know that System_printf() is always called in a context in which, say, the ANSI C Standard I/O functions may be safely called, then use of SysStd is safe.

Although SysMin never suspends the caller on any function, its implementation of ISystemSupport.flush() enters and remains in the System gate until all characters are "flushed". If the System gate disables interrupts and you use System_flush(), your interrupt latency will be a function of the size the configuration parameter SysMin.bufSize.

Execution time

Execution time. Although the System module's System_printf() function is much smaller and faster than a full ANSI C compliant implementation of printf(), the System module relies on the underlying ISystemSupport module to output characters one at a time. To be thread-safe and callable from any execution context, the SysMin module's implementation of putch() must acquire the System gate, update the output buffer, and release the System gate. The overhead of acquiring and releasing the system gate on every character can quickly overwhelm the execution time benefit of System_printf() over a full printf() implementation.

If you're willing to write a small amount of platform-specific code, it is usually easy to write a very efficient function that outputs a single character at a time in a thread-safe manner; e.g., disable interrupts around the instructions that update an output buffer or use platform-specific "atomic" instructions (load-lock/store-conditional, compare-and-swap, etc.). To use such a function, you must implement a custom ISystemProvider module. For information about how to create your own ISystemProvider module, see Extending xdc.runtime System.

Footprint

Footprint. Depending on the implementation of your target's ANSI C Standard Library, the code size footprint of SysStd may be significantly larger than the footprint of SysMin. The SysStd module minimizes its use of the ANSI C Standard Library functions, so in most cases the footprint difference between SysMin and SysStd are relatively minor. But, in situations where code space is tight, it's always good to try both and compare the difference.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Demo of RTSC Project Creation in CCSv4 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Demo of RTSC Project Creation in CCSv4

Using CCStudio v4 to create a RTSC project

This Flash demo shows how to create a CCSv4 project that has RTSC support enabled. In this example, a DSP/BIOS "hello world" template is used when creating the project.

When the demo pauses, click "Next" to continue. A table of contents at the end lets you review specific actions.

If you don't see the demo, you can download the Flash player, or save the demo to disk.

See also

RTSC+CCStudio v4 QuickStart | Using CCStudio v4 to create, build, and debug RTSC projects
RTSC+Eclipse FAQs | Using RTSC with Eclipse-Based Tools
XGCONF User's Guide | Using the RTSC Graphical Configuration Tool in CCSv4
Runtime Object Viewer | Using ROV for Eclipse-Based Debugging

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Demo of XGCONF in CCSv4 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Demo of XGCONF in CCSv4

Using XGCONF to create a RTSC configuration

This Flash demo shows how to use XGCONF in CCSv4 to edit a RTSC configuration file.

When the demo pauses, click "Next" to continue. A table of contents at the end lets you review specific actions.

If you don't see the demo, you can download the Flash player, or save the demo to disk.

See also

RTSC+CCStudio v4 QuickStart | Using CCStudio v4 to create, build, and debug RTSC projects
RTSC+Eclipse FAQs | Using RTSC with Eclipse-Based Tools
XGCONF User's Guide | Using the RTSC Graphical Configuration Tool in CCSv4

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Demo of Target Configuration Creation in CCSv4 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Demo of Target Configuration Creation in CCSv4

Using CCStudio v4 to create a target configuration for debugging

This Flash demo shows how to create a "target configuration" in CCSv4. Such target configurations are used by CCSv4 when debugging a project.

When the demo pauses, click "Next" to continue. A table of contents at the end lets you review specific actions.

If you don't see the demo, you can download the Flash player, or save the demo to disk.

See also

RTSC+CCStudio v4 QuickStart | Using CCStudio v4 to create, build, and debug RTSC projects
Runtime Object Viewer | Using ROV for Eclipse-Based Debugging
Real-Time Analysis Tools | Using RTA Tools in CCSv4

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Demo of DSPBIOS 5.x Project Creation in CCSv4 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Demo of DSPBIOS 5.x Project Creation in CCSv4

Using CCStudio v4 to create a DSP/BIOS 5.x project

This Flash demo shows how to create a CCSv4 project that uses DSP/BIOS 5.x.

When the demo pauses, click "Next" to continue. A table of contents at the end lets you review specific actions.

If you don't see the demo, you can download the Flash player, or save the demo to disk.

See also

Demo of Target Configuration Creation in CCSv4 Using CCStudio v4 to create a target configuration for debugging

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Demo of the RTSC Platform Wizard in CCSv4 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Demo of the RTSC Platform Wizard in CCSv4

Using CCStudio v4 to create a custom RTSC platform

RTSC Platform Wizard Demo Part 1: The following Flash demo shows how to use the RTSC platform wizard in CCSv4 to create and build with a custom RTSC platform package.

This demo uses XDCtools 3.20. The steps are different if you are using XDCtools 3.16.

When the demo pauses, click "Next" to continue. A table of contents at the end lets you review specific actions. If you don't see the demos, you can download the Flash player, or save the demo to disk.

RTSC Platform Wizard Demo Part 2: Next, you can continue to the second demo in this series shows how to further customize the memory sections defined for a platform package. It also shows how to reopen and rebuild a platform package you have created.

RTSC Platform Wizard Demo Part 3: The third demo in this series shows the files in a custom RTSC platform package and the zip file you can use to distribute the package.

See also

Demo of Customizing Memory Sections | Editing a platform package and defining your own memory sections
Demo Showing Files in a Custom Plaform Package | Platform package directory contains zip file for distribution
Demo Building with Custom Platform Package | Set RTSC configuration project properties and compare a platform to a generated map file
RTSC+CCStudio v4 QuickStart | Using CCStudio v4 to create, build, and debug RTSC projects
RTSC+Eclipse FAQs | Using RTSC with Eclipse-Based Tools
XGCONF User's Guide | Using the RTSC Graphical Configuration Tool in CCSv4

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Consuming Configurable Content/CCStudio - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

Consuming Configurable Content/CCStudio

Using configuro within Code Composer Studio 3.x

Contents

  • 1 Creating a CCStudio 3.x project with RTSC content
  • 2 Compiling and Linking with CCStudio 3.x

On Windows systems, if you have installed both XDCtools and Code Composer Studio 3.x, you can use the XDCtools tab in the Build Options dialog in Code Composer Studio to control how the configuro tool is run as part of the project build process. You can also use the Compiler tab in the Build Options dialog to cause the compiler to use the compiler.opt file generated by the configuro tool.

If you are using CCStudio 4.x instead of 3.x, see the RTSC+CCStudio v4 QuickStart.

Creating a CCStudio 3.x project with RTSC content

  1. First, use the Component Manager (part of CCStudio) to make sure the latest version of XDCtools is enabled. To run the Component Manager, use your Windows Start menu to choose All Programs->Texas Instruments
    ->Code Composer Studio->Component Manager    . Within Component Manger, expand Target Content (XDCtools). Then expand your target family. Make sure the version of XDCtools you want to use has a checkmark. When you close Component Manager, save your changes.
  2. Next, add the *.cfg file you created to your CCStudio project.
  3. Then, open the Project->Build Options dialog and move to the XDCtools tab.
  4. With the Basic category selected, specify the target and platform packages you want to use. See Integrating configuration into your build flow for information about how to choose a target and a platform. Optionally, you can also specify the -r (build profile) and --xdcpath (XDCPATH) command-line options for configuro here. See Managing the Package Path for help setting the --xdcpath option.

Compiling and Linking with CCStudio 3.x

To set the compiler options for a CCStudio 3.x project, follow these steps:

  1. In the Project->Build Options dialog, go to the Compiler tab and select the Files category. Add mycfg/compiler.opt in the Options File field.
  2. Add the linker.cmd file to your project using the Project->Add Files to Project command.
  3. If you haven't already added a codegen RTS library to your CCStudio project, use the Project
    ->Add Files to Project     command. For example, your RTS library might be $(CGTOOLS)/lib/rts6400.lib.

The compiler's standard C runtime library must come after the linker.cmd file in the link order in a CCStudio project.

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Sharing a Configuration via make - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Sharing a Configuration via make

Using make to build multiple applications that share a configuration

Contents

  • 1 Introduction
  • 2 Configuration directory
  • 3 Application directory
  • 4 Triggering the configuration step
  • 5 See also

Introduction

There are situations where is it desirable to create a single configuration of RTSC modules that can be shared among multiple applications. Suppose, for example, that you have a unit test suite for a particular module and the module has no configuration parameters. More than likely, each test will build with the same configuration. Rather than re-running the configuration step for each program, it is possible to run the configuration step just once and use the results to build all the tests.

Separating the configuration step also has the advantage of minimizing the impact of the configuration process within an existing build framework. The configuration step can be run once at some point within your existing build flow and the resulting output files can be easily referenced.

In the sections below, we describe one way to structure GNU makefiles to enable multiple applications to use a single configuration. The makefiles shown assume you are using a GCC toolchain but are easily modified to support virtually any collection of C language tools; see Consuming Configurable Content/makefiles for examples using other popular tools chains.

In this example, we create separate directories for the application source code and the configuration. The configuration directory contains just the configuration script and a makefile whereas the application directory contains the application sources and a makefile. Although your application's physical design or build system may require a different structure, the core principles shown below should apply.

Configuration directory

The configuration directory contains just two files: the application configuration script, basic.cfg, and the makefile shown below. The purpose of this directory is to run the configuration step and manage the output of this process.

cfg/makefile

1

2

3

4

CGTOOLS = $(TOOLS)/gcc/3.2.1/Linux
XDCTARGET = gnu.targets.Linux86
CONFIG = basic

all: $(CONFIG)/compiler.opt $(CONFIG)/linker.cmd

$(CONFIG)/linker.cmd $(CONFIG)/compiler.opt : $(CONFIG)

$(CONFIG) : $(CONFIG).cfg
        xs xdc.tools.configuro -c $(CGTOOLS) -t $(XDCTARGET) $<

clean:
        rm -rf $(CONFIG)

Line 1 tells make that it must create just two files: basic/compiler.opt and basic/linker.cmd. Line 2 indicates that these files depend on the basic sub-directory which will contain all files generated by configuro.

Line 3 tells make how to create the basic sub-directory from the basic.cfg configuration file. The configuro tool generates many more files than just basic/compiler.opt and basic/linker.cmd but all the files are placed in the sub-directory created to hold compiler.opt and linker.cmd. This makes the clean command 4 particularly simple.

For completeness we show the configuration script used by the application below but your configuration scripts will (obviously) be more complex. Regardless of the complexity of your configuration script, however, the integration process and the makefiles shown do not change.

cfg/basic.cfg

xdc.useModule('xdc.runtime.System');

Application directory

The application directory contains all sources and makefiles necessary to build the application. In this simple example, we have just one file, hello.c.

app/hello.c
1

2

#include <xdc/runtime/System.h>

int main(int argc, char **argv)
{
    System_printf("hello world\n");
    return (0);
}

Since this file references a configurable module, xdc.runtime.System, it should be compiled with the options contained in the compiler.opts file generated as part of the configuration step. Recall that the output of the configuration step includes two files that make integration with existing make based build system quite straightforward.

  1. linker.cmd - the list of libraries required to use the modules configured (in the order required to ensure proper linkage)
  2. compiler.opt - the compiler options required for sources to reference the modules configured and match the runtime options of the libraries named in linker.cmd (big or little endian, packed enums, ...)

The compiler.opts file contains the options necessary to ensure that the xdc/runtime/System.h header included at 1 corresponds to the xdc.runtime.System module configured above. The linker.cmd file ensures that the System_printf reference at 2 is satisfied by a library that corresponds to the same xdc.runtime.System module.

The makefile below illustrates one way to leverage these files. The first line defines a macro that names the directory containing the files generated by configuro. The remaining lines should look familiar; they are minor variants of rules commonly used to build applications. These subtle variations are important to understand, however.

app/makefile
1

2

3

CONFIG = ../cfg/basic

CC = $(TOOLS)/gcc/3.2.1/Linux/bin/gcc
LNK = $(CC)

all: hello.exe

%.o : %.c $(CONFIG)/compiler.opt
        $(CC) $(shell cat $(CONFIG)/compiler.opt) -c $<

hello.exe: hello.o $(CONFIG)/linker.cmd
        $(LNK) -o $@ hello.o $(CONFIG)/linker.cmd -lstdc++

clean:
        rm -f hello.exe hello.o

Line 2 defines how C sources files should be compiled and ensures that if the options in compile.opt change, your sources will be properly re-built. Similarly, line 3 ensures that your program is re-linked whenever the contents of linker.cmd change. Again, this is important because changes to the configuration script often result in different libraries that your program needs to link with.

Triggering the configuration step

In the application directory example above, we assumed that the configuration step has already been run and, in situations where a "top-level build" is coordinating the build of a system, this is a reasonable assumption. However, if you want to be able to change the configuration script and rebuild entirely from within the application directory, we need to augment the application's makefile to trigger a re-build of the configuration.

The makefile fragment below illustrates how to automatically trigger a rebuild of a configuration when a configuration script changes.

1

2

3

clean:
        rm -f hello.exe hello.o
        @$(MAKE) --no-print-directory -C $(dir $(CONFIG)) $@

$(CONFIG)/compiler.opt $(CONFIG)/linker.cmd: $(CONFIG)

$(CONFIG): $(CONFIG).cfg
        @$(MAKE) -C $(dir $@)

On line 1 we extend the rule to clean to also clean the configuration directory. On lines 2 and 3 we tell make when and how to re-build the files generated by the configuration step; in this case, we simply invoke make in the configuration directory whenever the configuration file is newer than the generated files.

See also

In addition to the GNU Make online manual and tips from Paul Smith, the maintainer of GNU make, the following related RTSC-pedia documents be useful.

Consuming Configurable Content/makefiles RTSC configuration with makefiles

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Using RTSC with CCStudio v4 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Using RTSC with CCStudio v4

Graphical support for developing using RTSC content

Getting started

RTSC+CCStudio v4 QuickStart | Using CCStudio v4 to create, build, and debug RTSC projects
XGCONF User's Guide | Using the RTSC Graphical Configuration Tool in CCSv4
Runtime Object Viewer | Using ROV for Eclipse-Based Debugging
Real-Time Analysis Tools | Using RTA Tools in CCSv4
RTSC+Eclipse FAQs | Using RTSC with Eclipse-Based Tools

Flash tutorials

Demo of RTSC Project Creation in CCSv4 | Using CCStudio v4 to create a RTSC project
Demo of XGCONF in CCSv4 | Using XGCONF to create a RTSC configuration
Demo of Target Configuration Creation in CCSv4 | Using CCStudio v4 to create a target configuration for debugging
Demo of the RTSC Platform Wizard in CCSv4 | Using CCStudio v4 to create a custom RTSC platform
Demo of Customizing Memory Sections | Editing a platform package and defining your own memory sections
Demo Showing Files in a Custom Plaform Package | Platform package directory contains zip file for distribution
Demo Building with Custom Platform Package | Set RTSC configuration project properties and compare a platform to a generated map file
Demo of DSPBIOS 5.x Project Creation in CCSv4 | Using CCStudio v4 to create a DSP/BIOS 5.x project

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Real-Time Analysis Tools - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Real-Time Analysis Tools

Using RTA Tools in CCSv4

CCSv4 provides a number of Real-Time Analysis (RTA) tools for use with RTSC-enabled applications, including DSP/BIOS applications. These tools provides raw log information as well as execution and load graphs in real-time (while the target is running).

Contents

  • 1 RTA Control Panel
  • 2 Raw Logs
  • 3 Printf Logs
  • 4 Exec Graph
  • 5 Exec Graph Data
  • 6 CPU Load
  • 7 Thread Load
  • 8 Load Data
  • 9 See also

To open a tool, choose Tools > RTA from the CCStudio menu bar. This shows a list of the available graphs and tables provided for real-time analysis. You may open RTA tools in CCStudio at any time, typically just before running the target application or while the application is running.

In order to use RTA tools, your application must be configured to include support for RTA. DSP/BIOS 6 includes an RTA "Agent" module, ti.sysbios.rta.Agent, which retrieves Log data from the target and sends it to the host.

In addition to the RTA tools, the Runtime Object Viewer (ROV) is a stop-mode debugging tool provided by XDCtools. You can use ROV with RTSC-enabled applications to see state information about all the modules in your application.

The sections that follow briefly introduce the RTA tools.

RTA Control Panel

The RTA Control Panel lets you see and set what type of logging is performed at run-time. You can open this panel by choosing Tools > RTA > RTA Control Panel from the CCStudio menu bar.

In general, you should avoid modifying log settings unless you are familiar with the effects that change will have.

You can expand the log type categories to see log settings for various types of tracing. For information about the trace types, see the xdc.runtime.Diags documentation.

The RTAAgentLogger category lets you see the ti.sysbios.rta.Agent module logging. You should not disable this type of logging if you want to use the RTA tools.

The RTASystemLog category lets you see logging for a number of thread-related DSP/BIOS modules that may be enabled in your application. These include the Hwi, Swi, Task, Idle, Clock, Event, Semaphore, and Timer modules. The RTA tools described in the following sections require that RTASystemLog logging is enabled for User1 and User2.

The RTALoadLog category lets you see logging for the ti.sysbios.utils.Load module. If you disable User4 logging for this module, you will not be able to use the CPU Load tool.

To set a log type, click to the right of the checkbox and select RUNTIME_OFF or RUNTIME_ON.

The RTA Control Panel contains the following toolbar icons:

Close all RTA tools, including this one.

Refresh view of settings by getting the current runtime settings from the target application.

Automatically fit the columns to their current contents.

Expand all nodes in the Logger Buffer column.

Collapse all nodes in the Logger Buffer column.

Set duration (in minutes) for RTA data streaming from the target. The default is to stream as long as the target application is running.

Toggle data streaming from the target on or off. The default is on.

Raw Logs

By default, the Raw Logs tool displays complete unformatted log data. The default columns displayed are: time, seqID, arg1...arg4, formattedMsg, and currentThread. You can open this tool by choosing Tools > RTA > Raw Logs from the CCStudio menu bar.

This table displays all the log records that have been sent from the target. This contains all the records used by the RTA tools to populate their graphs and tables. In addition, the following types of logs are also shown:

  • Any Log records from other modules
  • Any user-defined Logs or Log_print*() calls

This tool contains the following toolbar icons:

Toggle view with group setting on and off. (Shift+G)

Open the Find In dialog for searching this log.

Open the Set Filter Expression dialog for filtering the log records to match a pattern.

Pause data updates from the target. This is useful when you are using the Find or Filter dialogs. (Shift+F5)

Automatically fit the columns to their current contents.

Refresh data from the target. This is useful if you have stopped data streaming or paused updates.

Toggle data streaming from the target on or off. The default is on.

"Groups" in the RTA views refers to synchronizing the views so that moving around in one view causes similar movement to happen automatically in another. For example, if you group the CPU load graph with Raw Logs, then if you click on the CPU Load graph, the Raw Log displays the closest record to where you clicked in the graph.

You can right-click on this tool to choose from a menu of options. In addition to some of the toolbar commands, you can use the following additional commands from the right-click menu:

  • Column Settings. This command opens a dialog that lets you hide or display various columns. You can also change the alignment, font, and display format of a column (for example, decimal, binary, or hex).
  • Copy. This command copies the selected text to the clipboard.
  • Data > Export Selected. This command lets you select a .csv (comma-separated value) file to contain the selected data.
  • Data > Export All. This command lets you select a .csv (comma-separated value) file to contain all the data currently displayed in the log.
  • Groups. This command lets you define groups to contain various types of log messages.

Printf Logs

The Printf Log is a convenient way to view all the user-generated trace and printf logs. By default, the Printf Log tool displays the time, seqID, and formattedMsg. You can open this tool by choosing Tools > RTA > Printf Logs from the CCStudio menu bar.

The toolbar icons and right-click menu for the Printf Logs tool are the same as for the Raw Logs tool.

Exec Graph

The Exec Graph shows which thread is running at any given time. You can open this tool by choosing Tools > RTA > Exec Graph from the CCStudio menu bar.

In this graph, square brackets “[ ]” indicate the beginning and end of Hwi and Swi threads.

Red flags facing right on the Swi timeline indicate Swi post events.

Green flags on the Semaphore and Event timelines indicate “post” events, and [image] red flags facing left indicate “pend” events.

These icons do not indicate which Hwi, Swi, Semaphore, or Event instance the brackets and flags refer to. For this information, group the Exec Graph with the Raw Logs view (they are grouped by default). Then you can click anywhere on the Exec Graph to jump to the corresponding Raw Log record.

This tool contains the following toolbar icons:

Select a measuring mode for time marking. The mode choices are Freeform or Snap to Data. The axis choices are X-Axis, Y-Axis, or Both. When you click on the graph, a marker of the type you have selected is placed. When you drag your mouse around the graph, the time is shown in red.

Toggle view with group setting on and off. (Shift+G)

If you have enabled the view with group setting, you can choose to align a group by centering.

If you have enabled the view with group setting, you can choose to align a group using a horizontal range.

Click this icon to zoom in on the graph by spreading out the x-axis.

Click this icon to zoom out.

Choose to reset the zoom level to the default or choose a specific zoom level.

Refresh data from the target. This is useful if you have stopped data streaming or paused updates.

Open the Find In dialog for searching this graph.

Open the Set Filter Expression dialog for filtering the log records to match a pattern.

Pause data updates from the target. This is useful when you are using the Find or Filter dialogs. (Shift+F5)

Toggle data streaming from the target on or off. The default is on.

You can right-click on this tool to choose from a menu of options. In addition to some of the toolbar commands, you can use the following additional commands from the right-click menu:

  • Legend. Toggle this command to hide the graph legend.
  • Horizontal Axis. Toggle this command to hide the x-axis time markings.
  • Vertical Axis. Toggle this command to hide the y-axis thread labels.
  • Data > Export All. This command lets you select a .csv (comma-separated value) file to contain all the data currently displayed in the log.
  • Groups. This command lets you define groups to contain various types of log messages.
  • Insert Measurement Mark. Inserts a marker at the location where you right clicked.
  • Remove Measurement Mark. Lets you select a marker to remove.
  • Remove All Measurement Marks. Removes all markers you have placed.
  • Display Properties. Opens a dialog that lets you change the colors, scales, display formats, and labels on the graph.

Exec Graph Data

The Exec Graph Data tool is a convenient way to view all the thread-related logs. By default, the Exec Graph Data tool displays the time, taskHandle, task, stateID, state, and func for each thread-related message. You can open this tool by choosing Tools > RTA > Exec Graph Data from the CCStudio menu bar.

The messages shown in this tool are the raw data used to plot the Exec Graph.

The toolbar icons and right-click menu for the Exec Graph Data tool are the same as for the Raw Logs tool.

CPU Load

The CPU Load tool shows the percentage of time the application is not in the idle loop. You can open this tool by choosing Tools > RTA > CPU Load from the CCStudio menu bar.

The CPU Load tool has the same toolbar icons and right-click menu as the Exec Graph tool. However, in addition, the following right-click menu commands are provided:

  • Show Grid Lines. Toggle on or off the x-axis and y-axis grid lines you want to see.
  • Display As. Choose the marker you want to use to display the data. The default is a connected line, but you can choose from various marker styles and sizes.
  • Auto Scale. Scales the load data to fit the range in use. For example, if the range is between 70% and 90%, it zooms in on that range to make changes more visible. When auto scale is turned on, the scale may change as new data arrives.
  • Reset Auto Scale. Resets the scale to better display the current data.

Thread Load

The Thread Load tool shows the percentage of time the application spend in each thread. You can open this tool by choosing Tools > RTA > Thread Load from the CCStudio menu bar.

The toolbar icons and right-click menu for the Thread Load tool are the same as for the Exec Graph tool.

Load Data

The Load Data tool is a convenient way to view all the CPU load-related logs. By default, the Load Data tool displays the time, taskHandle, task, cpuTime, total, and load for each load-related message. You can open this tool by choosing Tools > RTA > Load Data from the CCStudio menu bar.

The messages shown in this tool are the raw data used to plot the CPU Load graph.

The toolbar icons and right-click menu for the Load Data tool are the same as for the Raw Logs tool.

See also

RTSC+CCStudio v4 QuickStart | Using CCStudio v4 to create, build, and debug RTSC projects
Runtime Object Viewer | Using ROV for Eclipse-Based Debugging
RTSC+Eclipse FAQs | Using RTSC with Eclipse-Based Tools
XGCONF User's Guide | Using the RTSC Graphical Configuration Tool in CCSv4

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


FAQ-080729-1 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

FAQ-080729-1

How can I change the version of XDCtools used to build an existing Eclipse project?

Code Composer Studio 4 references XDCtools versions in different places for different purposes. The two purposes are:

  • IDE support version. The "Eclipse plug-ins" come from the version selected for IDE support. This includes the version for the Runtime Object Viewer and the dialogs that allow you to control RTSC aspects of the build. For details, see FAQ-080730-2.
  • RTSC Target Runtime support version. Your application is built with this version of XDCtools. This includes the xdc.runtime package, other packages, and tools such as configuro. For details, see below (existing projects) and FAQ-080729-2 (defaults for new projects).

This distinction is useful because you may want to use the latest dialogs and tools within CCStudio for creating and debugging the application, while using an older version to build your application for stability or backward computability reasons.

Steps

If you have already created a project in your Eclipse IDE, change the version of XDCtools used to build the project as follows:

  1. With the project active in your Eclipse IDE (for example, CCStudio v4), choose Project->Properties. (Or you can right-click on the project folder in the C/C++ Project area and choose Properties.)
  2. Select the TI Build Settings category.
  3. Select the Build configuration you want to change. For each build configuration you use, you will need to select the Build configuration, make the change, and click Apply or OK before making a change for another Build configuration.
  4. Select the version of XDCtools you want used to build the project.
versions in TI Build Settings

You can also change the Device Variant, Device Endianness, Linker Command File (only available for non-RTSC projects), Runtime Support Library, and Code Generation Tools version in the TI Build Settings category. These fields all affect the build procedure for the current project.

target fields in TI Build Settings
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


FAQ-080729-2 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

FAQ-080729-2

How can I change the version of XDCtools used to build new Eclipse projects?

Code Composer Studio 4 references XDCtools and DSP/BIOS versions in different places for different purposes. The two purposes are:

  • IDE support version. The "Eclipse plug-ins" come from the version selected for IDE support. This includes the version for the Runtime Object Viewer and the dialogs that allow you to control RTSC aspects of the build. For details, see FAQ-080730-2.
  • RTSC Target Runtime support version. Your application is build with this version of XDCtools. This includes the xdc.runtime package, other packages, and tools such as configuro. For details, see FAQ-080729-1 (existing projects) and below (defaults for new projects).

This distinction is useful because you may want to use the latest dialogs and tools within CCStudio for creating and debugging the application, while using an older version to build your application for stability or backward compatability reasons.

Steps

You can set the default version for Eclipse IDE projects you create in the future as follows:

  1. From the IDE's menus, choose Window->Preferences.
  2. In the Preferences window, expand the tree and choose TI->Managed Build.
  3. Select the updated version of XDCtools in the "XDCtools version" drop-down, and click OK. If you are asked to restart the IDE, please do.

If you leave the version fields blank, new projects default to the latest installed version of each tool.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


FAQ-080730-2 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

FAQ-080730-2

How can I change the version of XDCtools used to control the Eclipse plug-ins?

Code Composer Studio 4 references XDCtools and DSP/BIOS versions in different places for different purposes. The two purposes are:

  • IDE support version. The "Eclipse plug-ins" come from the version selected for IDE support. This includes the version for the Runtime Object Viewer and the dialogs that allow you to control RTSC aspects of the build. For details, see below.
  • RTSC Target Runtime support version. Your application is build with this version of XDCtools. This includes the xdc.runtime package, other packages, and tools such as configuro. For details, see FAQ-080729-1 (existing projects) and FAQ-080729-2 (defaults for new projects).

This distinction is useful because you may want to use the latest dialogs and tools within CCStudio for creating and debugging the application, while using an older version to build your application for stability or backward compatibility reasons.

Steps

To set the version of XDCtools that provides the plug-ins necessary for Eclipse integration support, follow these steps:

  1. Choose Help->Software Updates->Manage Configuration from the CCStudio menus.
  2. If the software version you want to use is not listed in the Product Configuration dialog, click Add an Extension Location.
  3. Browse for Folder
    In the "Browse for Folder" dialog, browse to the eclipse subdirectory of the installation directory for XDCtools, and click OK. If you are asked to restart the workbench, please click No at this time.
  4. In the left-hand pane, select the RTSC / XDCtools (IDE Support) product version that you used until now. In the right-hand pane, click "Disable". A dialog will ask whether you'd like to disable the feature, please click OK.
  5. You may receive a warning that The current configuration contains errors and this operation can have unpredictable results. Do you want to continue?. Please click OK.
  6. A dialog will appear that asks you to restart the workbench. Please click Yes.

Unless instructed otherwise, you should always select the latest version of XDCtools for the Eclipse plug-ins.

Upgrading the XDCtools IDE Support version will not upgrade the version of XDCtools used for Target Runtime Support in any existing CCSv4 projects. You must change the version in the project if you want to use the new version for target content, see FAQ-080729-1.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


FAQ-080729-4 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

FAQ-080729-4

How can I set my XDCPATH in an Eclipse IDE?

XDCtools uses an XDCPATH to define locations where it should look for RTSC packages. For command-line based actions, you may define an XDCPATH environment variable and use the --xdcpath command-line option with various tools. Command-line settings always override any environment variable definition of XDCPATH. When using an Eclipse IDE, you can see and modify the --xdcpath options that will be used for your existing project as follows:

  1. With the project active in your Eclipse IDE, choose Project->Properties. (Or you can right-click on the project folder in the C/C++ Project area and choose Properties.)
  2. Select the C/C++ Build category.
  3. Select the Build configuration you want to examine or modify. For each build configuration you want to modify, you will need to select the Build configuration, make the change, and click Apply or OK before making a change for another Build configuration.
  4. In the Tool Settings tab, select XDCtools v3.10. The All options field shows the configuro command line that will be sent to the xs command. You can change the configuro command line options used for this project in the Basic Options and Advanced Options categories.
  5. To add a set of packages to the --xdcpath option, go to the Basic Options category and click the Add icon.
  6. Click File system and browse for the directory that contains the packages. Then click OK twice to add the selected directory to the "RTSC package repositories" list.
RTSC package repositories

To learn more about the command line options, see Command - xs and Command - xdc.tools.configuro. For more about the XDCPATH and the package path, see Managing the Package Path.

If two packages with the same name appear in the package path, only the first one in the order specified in the package path will be found. You can quickly detect these situations by running the xdc.tools.path.sg tool; duplicate packages are highlighted by this graphical tool.

You can add a package repository to the default --xdcpath list that will be used when creating new projects as follows:

  1. From the IDE's menus, choose Window->Preferences.
  2. In the Preferences window, expand the tree and choose TI->Managed Build.
  3. Click Add next to the RTSC package repositories field.
  4. Browse to the folder you want on the XDCPATH and click OK.
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


FAQ-080729-5 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

FAQ-080729-5

How can I share a configuration between Eclipse IDE projects?

If you will have multiple Eclipse IDE projects that will use the same RTSC configuration, we recommend that you follow these steps to share the configuration:

  1. Create a "Configuration-only project" that contains only the *.cfg file for the RTSC configuration. To do this, follow the steps in RTSC+CCStudio v4 QuickStart to create a new project. However, in the "Project Settings" page, put a checkmark in the Treat as a Configuration-only project box.
  2. Add the XDCscript configuration file (only) to the project.
  3. Build the project.
  4. Create another project. This time, make it a RTSC-enabled project but do not check the Treat as a Configuration-only project box.
  5. In the Additional Project Settings page, put a checkmark next to your configuration-only project.
  6. Continue creating the project. This time, add the source file(s) but not the XDCscript configuration file.
  7. Build and test the project.
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


FAQ-080729-8 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

FAQ-080729-8

Where can I get help on troubleshooting build and runtime errors?

The Troubleshooting page discusses errors you may encounter when building a RTSC package, when compiling and linking applications that use RTSC modules, and at runtime. Such errors may occur both when you build with an Eclipse IDE and when you use the command line.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


FAQ-080730-1 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

FAQ-080730-1

How can I resolve linking issues with v6.1 of the C6000 compiler?

There are compatibility issues between v6.1 and v6.0 of the C6000 compiler when using "whole program" optimizations. To support all users, the pre-built libraries that come with XDCtools are built with the v6.0 C6000 compiler. If you use "whole program" optimization and try to mix object files from v6.1 and an earlier version of the C6000 compiler you will get linker errors.

If you are using v6.1 of the C6000 compiler, you can fix this problem in one of the following ways:

  • Choose Project->Properties. In the Properties dialog, choose the C/C++ Build category. In the Tool Settings tab, choose XDCtools v3.10->Advanced Options. Change the build profile (-r) field from "whole_program" to "debug" or "release".

  • Rebuild the pre-built xdc.runtime libraries, as described in Working with xdc.runtime, using the v6.1 compiler.

  • Enable DSP/BIOS. Since DSP/BIOS comes with all libraries (include the xdc.runtime libraries) pre-built using the v6.1 compiler, there should not be any mixing of object files from v6.1 and an earlier release.
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Trouble Shooting - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Trouble Shooting

Frequently encountered problems and their solutions

Contents

  • 1 Building Packages
    • 1.1 xdc loops indefinitely rebuilding the same file
    • 1.2 xdc (or xs) fails with an "xdc.services.global.XDCException: ..." error
    • 1.3 xdc fails with an "Error: Can't find import file: '...' (not found along '...')" error
    • 1.4 On Windows, xdc fails with error: compilation failed: can't find specification file: mypkg.mymod.xdc
    • 1.5 The RTSC IDL translator fails with "can't resolve name (...)"
    • 1.6 tar fails with "file changed as we read it"
    • 1.7 tar fails with "gid_t value ... too large (max=16777215)"
  • 2 Configuring Content
    • 2.1 Configuration fails with an "Error: Module Xyz does not support static instances" error
    • 2.2 Configuration complains about "incompatible use of package 'x.y.z': imported x.y.z [i,j,k], a.b.c was built with x.y.z [...]"
    • 2.3 Configuration fails with an "incompatible use of the target ..." error
    • 2.4 Configuration fails with an "xdc.services.global.XDCException: ..." error
  • 3 Compiling and linking
    • 3.1 The C compiler fails with "error: package/internal/ModXyz.xdc.h: No such file or directory"
    • 3.2 The C compiler fails with a "conflicting types" error; e.g., "error: conflicting types for '..._Instance_init__F'"
    • 3.3 The linker fails with "undefined reference to package_name_Mod_Object__create(void)" or "undefined symbol package_name_Mod_function__E"
    • 3.4 The TI C6000 linker fails with "Invalid intermediate file:..." and "Compilation failure"
    • 3.5 The linker fails because there isn't enough space for .text or .bss, or ...
  • 4 Runtime Issues
    • 4.1 At runtime, the application fails with the error message "ModuleXyz: generic error: create policy error"
    • 4.2 At runtime, Log events for xdc.runtime modules are not being generated
    • 4.3 At runtime, some module's startup functions are not being called
  • 5 XDCscript Errors
    • 5.1 An XDCscript fails with "TypeError: Cannot read property "..." from undefined."
  • 6 CCS4 Problems
    • 6.1 XGCONF cannot open cfg files which are NOT tied to CCS4

Building Packages

xdc loops indefinitely rebuilding the same file

The xdc command is a relatively simple utility that just invokes GNU make with controlled set of command line options and environment. Since GNU make exclusively uses file timestamps to determine if a file needs to be rebuilt, you can run into this problem if you have files with bad time-stamps. Suppose you have a file, say foo.h, whose timestamp is set to a future date (or your workstations time setting is in the past) any file that depends on foo.h will be rebuilt by GNU make until your workstation's time exceeds thefoo.h file's date stamp.
This problem is often seen when exchanging files between developers located in different time zones.

xdc (or xs) fails with an "xdc.services.global.XDCException: ..." error

These types of errors are described in XDCtools Error Codes.

xdc fails with an "Error: Can't find import file: '...' (not found along '...')" error

This error indicates that a required file could not be found in any of the directories listed between the ()'s. In almost all cases, these directories are just the directories that are defined by your package path.
You should review your package path to ensure that the file being searched for does in fact exist in one of the repositories listed on the package path. If the file being looked for is delivered in a package, the directories that appear in file name will match the packages name; e.g., if the file name is "ti/bios/bios.tci", then you should check that the ti.bios package is in one of the repositories listed on your package path. You can review the packages available on your package path via the xdc.tools.path.sg.

On Windows, xdc fails with error: compilation failed: can't find specification file: mypkg.mymod.xdc

This error indicates that a required specification file (i.e., .xdc file) could not be found along the package path. Even on Windows systems, which are have case-insensitive file systems, it is important that the names of your package directories exactly match the names of your packages. For example, a package name declared to be myPkg in your package.xdc must be in a directory named myPkg and can not be in a directory named mypkg, MYPKG, or any other name that differs only in letter case.

The RTSC IDL translator fails with "can't resolve name (...)"

The error indicates that (for some reason) the IDL parser can't figure out whether the name between the ()'s is a package, a module, a configuration parameter of a module, ... In other words, it can't resolve what this identifier is.
Usually this indicates that your package path is not correct; the name between ()'s can't be found along the package path.

tar fails with "file changed as we read it"

Before tar copies a file into an archive it reads the file's time-stamps. After tar copies each file into the archive, it re-reads the file's time-stamps and checks them against the previously read values. If the time-stamps differ, tar (rightly) believes the file was changed and that the contents of the archive are inaccurate; so, it exits with the failure message above.
This failure is also caused by poor network file system configurations that report inaccurate file time-stamps. For example, UNIX-based network file systems that are accessed via a Windows port of tar often exhibit problems. Windows file time-stamps differ from UNIX file time-stamps so network file systems must carefully translate these times.
So how do you fix the problem? The only reliable solution is to fix your network file system to report reliable file time-stamps; otherwise, the time-stamps recorded in the package archive will be inaccurate and, in some cases, result in failures when the packages are used. For example, GNU make may mistakenly believe that the package must be rebuilt.
If you can't fix your build environment's filesystem infrastructure, the only solution is to switch to zip as the package archiver. Each package release can specify which "archiver" to use to create the single file containing all of the package's files; currently, there are only two options: "tar" or "zip". Since zip version 2.3 does not perform the same time-stamp checks that tar does, it's possible to reliably create a zip package release archive.
You can specify which archiver to use on a per-release basis and set the default release archiver for all releases within a package. To set the archive format of a release to be zip, simply set the Release.attrs.archiver attribute to the string "zip":

package.bld

Pkg.addRelease(..., {archiver: "zip"});
To set the default to be zip for all releases in a package, set the PackageContents.attrs.archiver attribute to the string "zip":

package.bld

Pkg.attrs.archiver = "zip";
Rather than change each package's package.bld script, you can set the default to be zip for all releases of all packages by placing this setting in a config.bld file shared by your packages:

config.bld

Pkg.attrs.archiver = "zip";

tar fails with "gid_t value ... too large (max=16777215)"

tar attempts to save and restore all file permissions and ownership IDs and assumes a *nix file permission model which includes a notion of a "group ID". The C type named "gid_t" is used to store group IDs and may vary in size from one host to another. As a result, its maximum value may also vary. In addition, some hosts use distinguished values, such as -1 or -2, to represent special users or groups.
This error can result by using tar files that were produced on a different host operating system (OS) or by modifying a file on one OS and archiving the file on a different host via a network file system. Since Windows does not use the same permission ownership model as *nix, any Windows implementation of tar will have to heuristically map Windows permissions to *nix permissions and these heuristics may result in this error.
If you work in a mixed Windows *nix development environment, it's best to use of zip rather than tar to create package releases. For an example of how to do this, see the previous note.

Configuring Content

Configuration fails with an "Error: Module Xyz does not support static instances" error

For a module to support static instance creation it must:
  1. supply a *.xs" file that implements instance$static$init to initialize the object
  2. define the instance object state in the module's "*.xdc" file in the internal: section
If you continue to get this message you may need to clean and rebuild your package; adding a *.xs after you've already gotten the error above is not enough to trigger a rebuild.

Configuration complains about "incompatible use of package 'x.y.z': imported x.y.z [i,j,k], a.b.c was built with x.y.z [...]"

The package a.b.c was originally produced using a version of x.y.z that is incompatible with the version you are using, [i,j,k]. See Compatibility Keys for more information about how incompatibilities are detected and controlled.
To make this concrete, suppose x.y.z and a.b.c are ti.bios.utils and ti.rtdx, respectively. Your configuration requires both ti.bios.utils and ti.rtdx but your version of ti.rtdx is [i,j,k] and ti.bios.utils was built with an earlier incompatible release of ti.rtdx. So, either your supplier of ti.bios.utils (which could be Codec Engine or DSP/BIOS) needs to update their product to use a more recent version of ti.rtdx, or you need to use an earlier release of the product that supplied ti.rtdx (DSP/BIOS?)
Since a package can be delivered in more than one product bundle, you must locate the repositories containing ti.rtdx and ti.bios.utils and decide which products you'd like to change. Locating the repository is quite easy:
    xs xdc.tools.path.sg
For the advanced user: you can also use xdc.tools.repoman to build your own repository containing consistent versions of ti.bios.utils and ti.rtdx and place this at the front of your package path.

Configuration fails with an "incompatible use of the target ..." error

When the config step runs, it makes sure the version of the compiler used is "compatible" with the version used to build any prerequisites. This error indicates that you are using a compiler of some version and you are linking libraries built with a version which config believes is incompatible. See Compatibility Keys for more information about what checks are performed.
If the version reported in the error message is "[]", this indicates that when the package.bld script was run, it was not able to determine the version of the compiler. Often this is simply because the target's .rootdir parameter, set in config.bld, was incorrect and the version check failed because the toolchain couldn't be found. The configuration tool assumes that unknown versions are incompatible with any known version of the compiler.
The "right way" to fix this is to ensure that the package.bld script can run without any warnings. However, if you know there is not a problem and you just need to get past this error, it is possible to tell the configuration tool to not check compiler versions (and proceed). For example, to treat compatibility check failures as warnings, you can set the xdc.cfg.check.fatal "environment variable" to false.
If you use the configuro tool this can be done on the command line.
    xs xdc.tools.configuro -Dxdc.cfg.check.fatal=false ...
If you use the XDCscript build scripts directly (package.bld), you can set xdc.cfg.check.fatal by defining the xsopts attribute when adding an executable to your package.

Pkg.addExecutable("app",targ,targ.platform,{
    xsopts: "-Dxdc.cfg.check.fatal=false"
});

The xsopts attribute replaces the deprecated tcopts attribute of earlier XDCtools releases.

For more information see the xdc.cfg package-level documentation.

Configuration fails with an "xdc.services.global.XDCException: ..." error

These types of errors are described in XDCtools Error Codes.

Compiling and linking

The C compiler fails with "error: package/internal/ModXyz.xdc.h: No such file or directory"

Make sure you've added module ModXyz to the package.xdc file and recompiled the IDL files. Internal headers for modules are only generated if the module has a *.xdc file and it's named in the package.xdc file.

The C compiler fails with a "conflicting types" error; e.g., "error: conflicting types for '..._Instance_init__F'"

The type signature of your module's implementation methods do not match the signature defined in the module's generated headers. Make sure that if you specified the @InstanceInitError attribute that your module's Instance_init() function has the proper signature.

The linker fails with "undefined reference to package_name_Mod_Object__create(void)" or "undefined symbol package_name_Mod_function__E"

You must add xdc.useModule("package.name.Mod") statements to your application's configuration script for each module directly referenced by your application.
The undefined reference is to a function that is only generated by the configuration tool if the the specified module is "used". Unfortunately it is not possible to know what you've referenced in the C code, so you should always add an xdc.useModule() statement for each #include of a module header in your C sources.

The TI C6000 linker fails with "Invalid intermediate file:..." and "Compilation failure"

If you are building with "whole program" optimization (i.e., using the "whole_program" profile), this error indicates that some object files being linked into your application were built with an incompatible version of the C6000 compiler. Version 6.1 of the C6000 compiler is incompatible with all previous releases, for example.
You may be able to work around this issue by rebuilding the C6000 xdc.runtime support package ti.targets.rts6000. See Working with xdc.runtime for more information about how to rebuild this package.

The linker fails because there isn't enough space for .text or .bss, or ...

Your platform does not have sufficient space to hold your program's code (or data). Either you have completely filled physical memory and you need to look for a way to reduce your program's code or data requirements, or you simply need to "remap" the sections of your program to different physical memory regions.
You can perform simple remapping operation using xdc.cfg.Program.sectMap from within you program's configuration script. If on the other hand, adding section placement in your program's configuration file ties it to a particular platform. To avoid this you can instead create a new platform which partitions the memory as necessary and then change your build to use this new platform. See Using Targets and Platforms for information about creating new platform instances.

Runtime Issues

At runtime, the application fails with the error message "ModuleXyz: generic error: create policy error"

Your application tried to create an instance of ModuleXyz at runtime but this module's memory policy was set to STATIC_POLICY; i.e., only configuration time instance can be created.

At runtime, Log events for xdc.runtime modules are not being generated

The modules in the xdc.runtime package are not affected by settings made to xdc.runtime.Defaults.common$.logger or the diagnostics flags xdc.runtime.Defaults.common$.diags_*. In order to enable logging of an xdc.runtime module, you must explicitly set its logger and diagnostics flags. This special treatment is intended to keep the logging overhead of the xdc.runtime to an absolute minimum and prevent unintended logging of the xdc.runtime loggers, for example.

var HeapMin = xdc.useModule("xdc.runtime.HeapMin");
var Diags = xdc.useModule("xdc.runtime.Diags");
var Defaults = xdc.useModule("xdc.runtime.Defaults");
Defaults.common$.logger = ...;
/* must explicitly set HeapMin settings to get Log events */
HeapMin.common$.logger = Defaults.common$.logger;
HeapMin.common$.diags_Entry = Diags_RUNTIME_ON;

At runtime, some module's startup functions are not being called

Make sure the module's specification (its .xdc file) has the @ModuleStartup attribute. Without this attribute the module's startup function will not be called.

@ModuleStartup /* required to ensure MyMod_Module_startup() is called during startup */
module MyMod {
    ...
}

XDCscript Errors

An XDCscript fails with "TypeError: Cannot read property "..." from undefined."

This error indicates that the statement on the specified line tried to access the property named "..." from a variable that is undefined. This can be because your script has not initialized the variable, your script explicitly set the variable to undefined, or you've tried to access a global variable that has not been defined.
Make sure any global variables you reference are in fact defined. For example, attempts to reference the configuration script object Program from within a build script will result in this kind of error. Scripts can determine which "model" they are running within by checking the xdc.om.$name property. Depending on the model, one or more global variables are pre-defined.

CCS4 Problems

XGCONF cannot open cfg files which are NOT tied to CCS4

XGCONF depends on the project properties for launching itself. For opening configuration files which are not a part of a project any text editor can be used. In CCS4 XGCONF is set as a default editor for all files with the 'cfg' extension. This maybe changed in the CCS4 preferences. Navigate to Window->Preferences->Editors->File Associations and select the *.cfg file type. Then associate this file type with a text editor of your choice. Then make it the default editor by clicking on the Default button. A screenshot is shown below.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Demo of Customizing Memory Sections - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Demo of Customizing Memory Sections

Editing a platform package and defining your own memory sections

The Flash demo below is Part 2 in a series of RTSC Platform Wizard demos that begins with the Demo of the RTSC Platform Wizard in CCSv4. It shows how to further customize the memory sections defined for a platform package. It also shows how to reopen and rebuild a platform package you have created.

This demo uses XDCtools 3.20. The steps are different if you are using XDCtools 3.16.

When the demo pauses, click "Next" to continue. A table of contents at the end lets you review specific actions.

If you don't see the demo, you can download the Flash player, or save the demo to disk.

RTSC Platform Wizard Demo Part 3: Next, you can continue on to the third demo in this series, which shows the files in a custom RTSC platform package and the zip file you can use to distribute the package.

See also

Demo of the RTSC Platform Wizard in CCSv4 | Using CCStudio v4 to create a custom RTSC platform
Demo Showing Files in a Custom Plaform Package | Platform package directory contains zip file for distribution
Demo Building with Custom Platform Package | Set RTSC configuration project properties and compare a platform to a generated map file
RTSC+CCStudio v4 QuickStart | Using CCStudio v4 to create, build, and debug RTSC projects
RTSC+Eclipse FAQs | Using RTSC with Eclipse-Based Tools

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Demo Showing Files in a Custom Plaform Package - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Demo Showing Files in a Custom Plaform Package

Platform package directory contains zip file for distribution

The Flash demo below is Part 3 in a series of RTSC Platform Wizard demos that begins with the Demo of the RTSC Platform Wizard in CCSv4. The Flash demo below shows the files in a custom RTSC platform package and the zip file you can use to distribute the package.

When the demo pauses, click "Next" to continue. A table of contents at the end lets you review specific actions.

If you don't see the demo, you can download the Flash player, or save the demo to disk.

See also

Demo of the RTSC Platform Wizard in CCSv4 | Using CCStudio v4 to create a custom RTSC platform
Demo of Customizing Memory Sections | Editing a platform package and defining your own memory sections
Demo Building with Custom Platform Package | Set RTSC configuration project properties and compare a platform to a generated map file
Using Targets and Platforms | Introduction to targets and platforms
RTSC+CCStudio v4 QuickStart | Using CCStudio v4 to create, build, and debug RTSC projects
RTSC+Eclipse FAQs | Using RTSC with Eclipse-Based Tools

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Demo Building with Custom Platform Package - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Demo Building with Custom Platform Package

Set RTSC configuration project properties and compare a platform to a generated map file

The Flash demo below shows how to specify the platform package that a RTSC configuration project should build with. It then builds the main project, which causes the referenced RTSC configuration project to also be built. In addition, this demo compares the memory sections defined in a custom platform package with the resulting memory sections in the .map file generated as part of the project build.

This demo uses XDCtools 3.20. The steps are different if you are using XDCtools 3.16.

When the demo pauses, click "Next" to continue. A table of contents at the end lets you review specific actions.

If you don't see the demo, you can download the Flash player, or save the demo to disk.

See also

Demo of the RTSC Platform Wizard in CCSv4 | Using CCStudio v4 to create a custom RTSC platform
Demo of Customizing Memory Sections | Editing a platform package and defining your own memory sections
Demo Showing Files in a Custom Plaform Package | Platform package directory contains zip file for distribution
Using Targets and Platforms | Introduction to targets and platforms

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Creating Targets - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Creating Targets

How to create a new target

Contents

  • 1 Introduction
  • 2 Creating an ITarget Module
    • 2.1 Implementing the xdc.bld.ITarget interface
  • 3 Defining target-specific "base" types
    • 3.1 Example of a Base Types Header
  • 4 Providing a runtime support package
  • 5 Inheriting from an Existing Target

Introduction

Targets are RTSC modules that implement the xdc.bld.ITarget interface and are an essential part of the RTSC build and configuration models. Targets are used to generate makefiles that can compile and link portable C/C++ code and are used by packages during configuration to select appropriate libraries to link into the end application. Targets also serve to enable compatibility checks between packages built with different toolchains.

Adding a new target from scratch involves three major steps.

  1. Create a module that extends the xdc.bld.ITarget interface; i.e., you must implement the methods and supply the configuration parameters declared in the xdc.bld.ITarget interface.
  2. Define the "base" types required from all targets; i.e., create a C header (named by the module created above) that defines the target-specific "base" types (Int8, Int16, Int32, etc.).
  3. Provide a runtime support package for the target. This package contains the startup boot sequence (if necessary) plus a pre-built library of all of the xdc.runtime package's modules.

However, if the target you want to add is a simple variation of an existing target, these steps can be greatly simplified by simply "inheriting" from an existing target. For example, the local.targets package illustrates how to create a package of targets that inherits the xdc.bld.ITarget implementation from ti.targets.ITarget. In this case, each new target is nothing more than a relatively short .xdc module specification that defines a few constants. Also, in Inheriting from an Existing Target, we describe the steps required to create a new target based on an existing target.

Creating an ITarget Module

Since targets are RTSC modules, they are developed and delivered in a package. In addition, it is common for several targets to be delivered together; e.g., a big endian and little endian variation of a target. Object files that should not be combined in a single application must be created with different targets.

Since the implementation of the xdc.bld.ITarget interface is strongly influenced by the compiler toolchain that it "wraps", it is usually best to create separate target packages for each compiler vendor; e.g., GNU gcc compiler targets are in a package separate from the Microsoft Windows compiler targets. While is common for multiple packages to support the same compiler tool chain, it is best not to have a single package support multiple tool chains.

Implementing the xdc.bld.ITarget interface

Different targets in a package often only differ by a small set of required options; e.g., options that select a runtime model, structure packing conventions, or a specific Instruction Set Architecture (ISA). As a result, most target packages first define common interface that both inherits from xdc.bld.ITarget and defines properties that are common to the target modules in the package.

In RTSC, metaonly interfaces can provide "default" implementations of their declared methods. This allows a form of implementation inheritance that often allows new target modules that inherit a common interface to simply declare unique compiler options and rely on the default method implementation in the common interface to do the "heavy lifting" required to implement xdc.bld.ITarget.

For example, the targets package gnu.targets contains an interface gnu.targets.ITarget that inherits xdc.bld.ITarget, defines default values for the targets in this package, and provides default implementations for these targets (in gnu/targets/ITarget.xs).

The local.targets example package illustrates how to create a package of targets that inherits the xdc.bld.ITarget implementation from ti.targets.ITarget. In this case, each new target is nothing more than a relatively short .xdc module specification that defines a few constants.

Defining target-specific "base" types

All targets name a target-specific C header that defines a "base" set of types; see xdc.bld.ITarget.stdInclude. Client source code, on the other hand, always includes the target-independent header xdc/std.h to access these definitions. The xdc/std.h header indirectly includes target-specific definitions of these types based on the value of the symbol xdc_target_types__ defined on the command line. This bit of indirection eliminates target-specific references from sources and makes them trivially portable to any target.

In fact, two symbols are always defined when compiling any code that references a RTSC module: xdc_target_types__ and xdc_target_name__. These symbols are defined on the compiler's command line either explicitly by the end-user or implicitly by the makefile generated from the target module. The first symbol, xdc_target_types__, is used by xdc/std.h to include a target-specific header. The second symbol, xdc_target_name__, is optionally used by the target-specific header to conditionally define base types. For more information about how code that references RTSC modules is compiled, see Integrating RTSC Modules.

Example of a Base Types Header

The following command line sets these symbols for the TI C6x compiler when using the ti.targets.C64 target.

cl6x -Dxdc_target_types__=ti/targets/std.h -Dxdc_target_name__=C64 ... client.c

The client sources include xdc/std.h which, in turn, uses the definition of xdc_target_types__ to include the target-specific header. To make it possible to this target-specific header to easily include automatically generated definitions (from the ITarget interface), most target-specific headers include a header whose name is simply derived from adding ".h" to the end of value of xdc_target_name__.

In summary,

  1. client code includes <xdc/std.h>
  2. xdc/std.h includes a target-specific header, say <ti/targets/std.h>, and finally
  3. this target-specific header includes a machine-generated header whose name is derived from xdc_target_name__, say "C64.h".

The following fragment shows the basic structure of the header used for all targets supplied by the ti.targets package.

ti/targets/std.h

#ifndef ti_targets_STD_  /* prevent multiple includes of this header */
#define ti_targets_STD_

/*  Include target-specific "portable" macros
 *
 *  The build command-line defines xdc_target_name__ to be the value
 *  of the target's name config parameter.  We use this to include the
 *  target-specific definitions for the required target-independent
 *  xdc_target* macros.
 *
 *  xdc__local_include is a macro that expands into a #include of
 *  "<name>.h", where <name> is the argument to the macro. This macro
 *  is defined in xdc/std.h.
 *
 *  This header is machine generated from the template xdc/bld/stddefs.xdt
 *  and includes many definitions that are specified in the xdc.bld.ITarget
 *  interface.
 */
#if defined(xdc_target_name__) & !defined(xdc_target_macros_include__)
#include xdc__local_include(xdc_target_name__)
#endif

/* include the C99 standard integer types supported by TI */
#include <stdint.h>

/* use compiler specific macros to guide definitions within xdc/std.h */
#if defined(_TMS320C6X) /* defined by cl6x for all C6x CPUs */
       :
    #define xdc__BITS64__     /* has a precise 64-bit type */
    #define xdc__INT64__      /* has a 64-bit integer type */
#elif ...
    :
#else
    /* generate an error if this header is used with an unknown target */
    #error <ti/targets/std.h> is not supported for this target
#endif

/* define the RTSC base types in terms the TI compiler understands */
typedef int_least8_t    xdc_Int8;
typedef uint_least8_t   xdc_UInt8;
typedef int_least16_t   xdc_Int16;
typedef uint_least16_t  xdc_UInt16;
typedef int_least32_t   xdc_Int32;
typedef uint_least32_t  xdc_UInt32;

#ifdef xdc__INT64__
    typedef int_least64_t   xdc_Int64;
    typedef int_least64_t   xdc_UInt64;
#endif

#endif /* ti_targets_STD_ */

In most cases, it is unnecessary to create the file above from scratch. In fact, most new targets are simple variations of existing target. In these cases, the new targets can "inherit" the definitions above by simply #include'ing the header and redefining as necessary. For example, a new package of targets, say local.targets, can define local/targets/std.h as shown below.

local/targets/std.h

#ifndef local_targets_STD_  /* prevent multiple includes of this header */
#define local_targets_STD_

/* include my target-specific "portable" macros (which will
 * override the ones included by ti/targets/std.h because
 * xdc_target_macros_include__ is defined by my target's
 * header)
 */
#if defined(xdc_target_name__) & !defined(xdc_target_macros_include__)
#include xdc__local_include(xdc_target_name__)
#endif

/* include the existing TI RTSC base definitions */
#include <ti/targets/std.h>

#endif /* local_targets_STD_ */

Providing a runtime support package

The xdc.bld.ITarget interface names a package that contains pre-built libraries of the modules contained in the xdc.runtime package; see xdc.bld.ITargets.rts. The xdc.runtime package contains target-independent C sources and files to simplify the creation of target-specific packages that contain pre-built versions of these sources. This architecture ensures that new targets can be added and used without requiring any re-release of the xdc.runtime package itself.

Although it is not required, it is natural to "nest" the runtime support package under the package of targets that reference it. Suppose, for example, that the targets package is named local.targets, the runtime support package might be named local.targets.rts. The files below are the only source files required to create this package.

package.xdc

package local.targets.rts {
}
package.bld

var RtsBuild = xdc.loadCapsule('xdc/runtime/build.xs');

Pkg.makePrologue = RtsBuild.makePrologue;
Pkg.attrs.exportAll = true;

for (var i = 0; i < Build.targets.length; i++) {
    var targ = Build.targets[i];
    if (targ.rts == Pkg.name) {
        var lib = Pkg.addLibrary("lib/" + Pkg.name,
            targ);
        lib.addObjects(RtsBuild.objs);
    }
}

To build and release this package you must add your newly created targets to your config.bld script and run the "xdc release" command from the base of the local.targets.rts package. The resulting package archive contains all the libraries necessary for clients to take full advantage of the xdc.runtime modules without any additional build steps.

Inheriting from an Existing Target

An easy way to create a new target is to find an existing target similar to the new target, copy the existing target's files, and make the changes required for the new target. This section demonstrates a simple scenario where the target producer plans to create only one target named local.targets.Arm9e and this target is a simple variation of the preexisting ti.targets.arm.Arm9 target.

In this example, the target producer creates a target similar to ti.targets.arm.Arm9 target, with the difference that new target uses the big endian code model.

1. Create a package local.targets by creating a directory local/targets, and create the files config.bld, package.bld and package.xdc. The content of these three files is shown below.

config.bld

Build.useTargets = null;
package.xdc

requires ti.targets.arm;

package local.targets {
    module Arm9e;
}
package.bld

Pkg.attrs.exportAll = true;

The purpose of config.bld in this package is to prevent an accidental usage of another config.bld, which might have a reference to the target being built in this package.

In package.xdc, we declare that this package contains the module Arm9e. This module, described in the following steps, defines the new target. Also, since the new target relies on the ti.targets.arm.IArm interface to define most of the new target's configuration, the package ti.targets.arm must be available on the package path.

Finally, package.bld ensures that all files required to use this target are available in the package's releases.

2. Copy the Arm9.xdc file from the ti.targets.arm package to Arm9e.xdc in the local.targets package.

3. Make the changes in Arm9e.xdc that differentiate the local.targets.Arm9e target from ti.targets.arm.Arm9. The extent of the changes that must be made in this step greatly depends on the differences between the existing and the new target. In this case, besides the obvious changes related to the name of the new target, we changed the build options for both the compiler and assembler, the name of the target-specific header (stdInclude), the target's runtime support library (rts, which will be built using this target), and the default toolchain runtime library (linkLib).

The content of the new file is shown below with the lines with changes marked by >.

Arm9e.xdc

>
>
>

>

>

>

>

>

>

/*!
 *  ======== Arm9e.xdc ========
 */
metaonly module Arm9e inherits ti.targets.arm.IArm {
    override readonly config string name = "Arm9e";
    override readonly config string suffix = "9e";
    override readonly config string isa = "v5T";
    override readonly config string rts = "local.targets.rts";

    override readonly config xdc.bld.ITarget.Module base = ti.targets.TMS470;

    override readonly config xdc.bld.ITarget.Model model = {
        endian: "big"
    };

    override config String stdInclude = "local/targets/std.h";

    override readonly config ti.targets.ITarget.Command cc = {
        cmd:  "cl470 -c",
        opts: "-mv5e --abi=ti_arm9_abi"
    };

    override readonly config ti.targets.ITarget.Command asm = {
        cmd:  "cl470 -c",
        opts: "-mv5e --abi=ti_arm9_abi"
    };

    /*!
     *  ======== linkLib ========
     *  Default TMS470 cgtools runtime library to link with executable
     *  (comes from $rootDir/lib)
     */
    config string linkLib = "rts32.lib";
}

4. Add the std.h file, shown below, whose purpose and content are described in Defining target-specific "base" types.

local/targets/std.h

#ifndef local_targets_STD_  /* prevent multiple includes of this header */
#define local_targets_STD_

/* include my target-specific "portable" macros */
#if defined(xdc_target_name__) & !defined(xdc_target_macros_include__)
#include xdc__local_include(xdc_target_name__)
#endif

/* include the existing TI Arm RTSC base definitions */
#include <ti/targets/arm/std.h>

#endif /* local_targets_STD_ */

5. Create the package local.targets.rts that will contain a pre-compiled version of the runtime support package for your new target. Follow the steps from Providing a runtime support package to add files and build the support package. Once the target package and this runtime support package are successfully built, the new target can be configured in a config.bld file and used to build executables.

config.bld

var Arm9e = xdc.useModule('local.targets.Arm9e');
Arm9e.rootDir = "C:/CCStudio_v3.3/tms470/cgtools";
Build.targets = [Arm9e];

The result of building this package should look something like the following:

% xdc

making package.mak (because of package.bld) ...
generating interfaces for package ti.targets.rts6000 (because package/pack\

cl9e /db/ztree/dr/xdc-s18x/src/packages/xdc/runtime/SysMin.c ...
cl9e /db/ztree/dr/xdc-s18x/src/packages/xdc/runtime/Startup.c ...
cl9e /db/ztree/dr/xdc-s18x/src/packages/xdc/runtime/Memory.c ...
cl9e /db/ztree/dr/xdc-s18x/src/packages/xdc/runtime/Core_params.c ...
cl9e /db/ztree/dr/xdc-s18x/src/packages/xdc/runtime/Diags.c ...
cl9e /db/ztree/dr/xdc-s18x/src/packages/xdc/runtime/System.c ...
cl9e /db/ztree/dr/xdc-s18x/src/packages/xdc/runtime/Assert.c ...
cl9e /db/ztree/dr/xdc-s18x/src/packages/xdc/runtime/Core_mem.c ...
cl9e /db/ztree/dr/xdc-s18x/src/packages/xdc/runtime/SysStd.c ...
cl9e /db/ztree/dr/xdc-s18x/src/packages/xdc/runtime/LoggerSys.c ...
cl9e /db/ztree/dr/xdc-s18x/src/packages/xdc/runtime/Core_label.c ...
cl9e /db/ztree/dr/xdc-s18x/src/packages/xdc/runtime/Timestamp.c ...
cl9e /db/ztree/dr/xdc-s18x/src/packages/xdc/runtime/Error.c ...
cl9e /db/ztree/dr/xdc-s18x/src/packages/xdc/runtime/Text.c ...
cl9e /db/ztree/dr/xdc-s18x/src/packages/xdc/runtime/Gate.c ...
cl9e /db/ztree/dr/xdc-s18x/src/packages/xdc/runtime/HeapMin.c ...
cl9e /db/ztree/dr/xdc-s18x/src/packages/xdc/runtime/GateNull.c ...
cl9e /db/ztree/dr/xdc-s18x/src/packages/xdc/runtime/LoggerBuf.c ...
cl9e /db/ztree/dr/xdc-s18x/src/packages/xdc/runtime/Log.c ...
cl9e package/package_ti.targets.rts6000.c ...
cl9e /db/ztree/dr/xdc-s18x/src/packages/xdc/runtime/HeapStd.c ...
cl9e /db/ztree/dr/xdc-s18x/src/packages/xdc/runtime/xdc_noinit.c ...
cl9e /db/ztree/dr/xdc-s18x/src/packages/xdc/runtime/TimestampNull.c ...
cl9e /db/ztree/dr/xdc-s18x/src/packages/xdc/runtime/TimestampStd.c ...
archiving package/lib/lib/ti.targets.rts6000/xdc/runtime/SysMin.o9e  ...
all files complete.
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Creating Platform Packages - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Creating Platform Packages

How to create a new platform package

NOTE: to be written

A RTSC Platform Wizard is provided in CCSv4 as part of XDCtools. You can watch a demo that shows how to use this wizard.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Existing Targets - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Existing Targets

Targets suppled with XDCtools

Contents

  • 1 Introduction
  • 2 ti.targets
  • 3 microsoft.targets
  • 4 gnu.targets
  • 5 How the tables were created

Introduction

The sections below enumerate the targets currently supplied with XDCtools (as of 6/00/08) and the compiler options that define these targets.

Since targets can be supplied outside the XDCtools bundle and new releases may include targets that not shown here it is best to open the CDOC online documentation (see Using the CDOC reference help system) and expand the ti.targets, microsoft.targets, and gnu.targets packages to see a list of currently supported targets as well as details about compiler options required by these targets.

To determine the code generation options that define the target, look at the cc.opts property of the target. For example, examining ti.targets.C64P.cc indicates that the -mv64p option defines the ti.targets.C64P target.

ti.targets

Name | Compiler Options | Description
ti.targets.C62 |  | TI C62 little endian target
ti.targets.C62_big_endian | -me | TI C62 big endian target
ti.targets.C64 | -mv6400 | TI C64 little endian target
ti.targets.C64_big_endian | -me -mv6400 | TI C64 big endian target
ti.targets.C64P | -mv64p | TI C64P little endian target
ti.targets.C64P_big_endian | -me -mv64p | TI C64P big endian target
ti.targets.C674 | -mv6740 | TI C674 little endian target
ti.targets.C674_big_endian | -me -mv6740 | TI C674 big endian target
ti.targets.C67 | -mv6700 | TI C67 little endian target
ti.targets.C67_big_endian | -me -mv6700 | TI C67 big endian target
ti.targets.C67P | -mv67p | TI C67P little endian target
ti.targets.C67P_big_endian | -me -mv67p | TI C67P big endian target
ti.targets.C54 |  | TI C54 target
ti.targets.C54_far | -mf -v548 | TI C54 far model target
ti.targets.C55 |  | TI C55 target
ti.targets.C55_large | -ml | TI C55 large model target
ti.targets.C55_huge | --memory_model=huge | TI C55 huge model target
ti.targets.C55P_word | --memory_model=huge | TI C55P word mode target
ti.targets.C55P_byte | --memory_model=huge --byte_mode | TI C55P byte mode target
ti.targets.C28 | -v28 -mo | TI C28 target
ti.targets.C28_large | -v28 -DLARGE_MODEL=1 -ml | TI C28 large model target
ti.targets.C28_float | -v28 -DLARGE_MODEL=1 -ml -mo --float_support=fpu32 | TI C28 with float point support (fpu32) target
ti.targets.TMS470 | -me -mv4 | TI TMS470 (Arm) little endian target
ti.targets.TMS470_big_endian | -mv4 | TI TMS470 (Arm) big endian target
ti.targets.MSP430 | -vmsp | TI MSP430 little endian target

microsoft.targets

Name | Compiler Options | Description
microsoft.targets.VC98 | -W3 -Zp1 -DWIN32 -D_DLL -D_AFXDLL -DEXPORT="" | Microsoft Windows 32-bit target using the Visual C/C++ 6.x compiler
microsoft.targets.Win32 | -Zp1 -W3 -DWIN32 -D_DLL -D_AFXDLL -DEXPORT="" | Microsoft Windows 32-bit target using the Visual C/C++ compiler
microsoft.targets.Net32 | -nologo -c | Microsoft .Net 32-bit native target

gnu.targets

Name | Compiler Options | Description
gnu.targets.Sparc | -B$(rootDir)/lib/gcc/$(GCCTARG)/$(GCCVERS)/ -B$(rootDir)/lib/gcc-lib/$(GCCTARG)/$(GCCVERS)/ | Native Sparc Solaris target
gnu.targets.Linux86 |  | Native x86 Linux target
gnu.targets.Mingw |  | MinGW native Windows target
gnu.targets.MVArm9 |  | MonteVista Arm9 little endian embedded Linux target
gnu.targets.UCArm9 |  | uClibc Arm9 little endian embedded Linux target

How the tables were created

The target tables in the previous sections were all created by running the script shown below on the XDCtools 3.10 release.

gentt.xs

/*
 *  Generate Target Table for mwiki
 *
 *  usage: xs -c gentt.xs target-package
 */

var ITarget = xdc.module("xdc.bld.ITarget");

/* ======== main ======== */
function main(args)
{
    var pkg = xdc.loadPackage(args[0]);

    print('{|cellpadding="4" cellspacing="2" border="1"');
    print("|-");
    print("!Name\n!Compiler Options\n!Description");
    print("|-");

    for each (var mod in xdc.om.$modules) {
        if (mod instanceof ITarget.Module
            && mod.$name.match("^" + args[0])) {
            var xdoc = mod.$spec.makeXDoc();
            print("|" + link(mod));
            print("|<tt> " + mod.cc.opts + "</tt>");
            print("|" + xdoc.getSummary());
            print("|-");
        }
    }

    print("|}");
}

/* ======== link ======== */
function link(mod)
{
    var a = mod.$name.split('.');
    var modName = a[a.length - 1];
    a.pop();
    var pkgName = a.join('.');

    return ("{{#tag:cdoc|name=" + pkgName + ":" + modName + "|" + mod + "}\

}

For example, running the script above on the microsoft.targets package produces the output shown below.

% xs -c gentt.xs microsoft.targets
{|cellpadding="4" cellspacing="2" border="1"
|-
!Name
!Compiler Options
!Description
|-
|{{#tag:cdoc|name=microsoft.targets:VC98|microsoft.targets.VC98}}
|<tt> -W3 -Zp1 -DWIN32 -D_DLL -D_AFXDLL -DEXPORT=""</tt>
|  Microsoft Windows 32-bit target using the Visual C/C++ 6.x compiler
|-
|{{#tag:cdoc|name=microsoft.targets:Win32|microsoft.targets.Win32}}
|<tt> -Zp1 -W3 -DWIN32 -D_DLL -D_AFXDLL -DEXPORT=""</tt>
|  Microsoft Windows 32-bit target using the Visual C/C++ compiler
|-
|{{#tag:cdoc|name=microsoft.targets:Net32|microsoft.targets.Net32}}
|<tt> -nologo -c</tt>
|  Microsoft .Net 32-bit native target
|-
|}

For information about how to create additional XDCscript tools, see The XDCscript Language.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Integrating RTSC Modules - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Integrating RTSC Modules

Integrating RTSC modules into existing C/C++ environments

Contents

  • 1 Introduction
  • 2 Compiling
    • 2.1 Required -D Options
    • 2.2 Required -I Options
    • 2.3 A Complete GNU make Example
  • 3 Additional Compiler Options
    • 3.1 Portable Inclusion of Configuration Constants
    • 3.2 Eliminating Identifier Conflicts
      • 3.2.1 Disabling Short Names Defined By Modules
      • 3.2.2 Disabling Short Names Defined By xdc/std.h
      • 3.2.3 Disabling Deprecated Definitions
    • 3.3 Eliminating File Name Strings
  • 4 Linking
    • 4.1 Symbol Names
    • 4.2 Linker Command Files
  • 5 Debugging

Introduction

RTSC modules are designed to be portable to virtually any C/C++ environment - from host workstation applications to deeply embedded MCU or DSP applications. To enable this degree of portability, RTSC requires modules to conform to some simple physical design constraints and it defines an abstraction called a target whose attributes are used to compile sources. The physical design constraints enable modules from multiple suppliers to be installed without conflicts and the target enables the C headers from these suppliers to be compiled without conflicts.

As you'll see below, both the physical design constraints and the target, enables you to easily and uniformly build any code that references a RTSC module. In effect, once you've integrated one RTSC module into your code base, you can use any other RTSC module without making any changes to your build system.

Before using a RTSC module in an executable, the module must be configured; i.e., a RTSC configuration tool must be run and the output of this tool must be used in the application linking process. To simplify build integration, in addition to linker control files, the RTSC configuration tool generates a set of required compiler options that can be directly passed to the compiler when building the application's sources. However, if you are simply building a library that references a RTSC module, you only need to specify a few -D and -I compiler options "by hand".

Compiling

When compiling a C/C++ source file that references a RTSC module, there are two required -D options and a set of required -I options that correspond one-to-one with the repositories on the package path. All of these required options are independent of the module and the package containing the module.

In addition to these required options, RTSC headers support additional features that assist in integration with other code bases. These options are described in Additional Compiler Options below.

Required -D Options

Source files that reference a RTSC module must be compiled with pre-defined macros that identify the target being used to compile the source. Each target has a globally unique name (the module that implements the xdc.bld.ITarget interface) and is responsible for defining a set of standard types and constants that enables source code to be portable among all targets.

To compile sources that use a RTSC module, two symbols must be defined before including its 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.

If your source files use the xdc/cfg/global.h header to reference global objects created during configuration, you must also define the following symbol:

  • xdc_cfg__header__ - the package qualified name of the executable-specific C/C++ header generated by the program configuration tool. See Portable Inclusion of Configuration Constants for more information.

For example, to compile sources with the ti.targets.C64 target, the following command line is sufficient:

cl6x -Dxdc_target_types__=ti/targets/std.h -Dxdc_target_name__=C64 ...

Where, cl6x is the name of the TI compiler, ti/targets/std.h is the value of the stdInclude attribute of the ti.targets.C64 target, and C64 is the module name of the target within the ti.targets package.

To maximize portability, code should never directly include the stdInclude header specified by a target. Instead, the definitions from this header should always be included using the target-independent header xdc/std.h. See the xdc package reference documentation for more information about this header.

#include <xdc/std.h>   /* define portable types; e.g., String, Bool, ... */
    :

Required -I Options

RTSC packages can be installed in any directory, called a repository, and RTSC package names match the name of the sub-directory within the repository containing the package. For example, if the package xdc.runtime is installed in the repository /home/me/packages, the absolute path to the xdc.runtime package is /home/me/packages/xdc/runtime.

By convention, all code that references a module's interface, must #include the module's header using the module's package name as well as the module's name. For example, to use the xdc.runtime.Memory module, C files will contain the following statement.

#include <xdc/runtime/Memory.h>

Following this pattern implies that the compiler's command line need only include -I options for each repository named on the package path. Recall the package path is simply a list of all repositories containing packages that are required by your code. This has the advantage that the -I options are completely independent of the package names; adding a new package to your project does not require any change to your build system's files.

The following GNU make file converts a package path, defined by the PACKAGE_PATH variable, to the required -I options.

PACKAGE_PATH = $(XDCPATH);$(XDCROOT)/packages
CCINCS = -I$(strip $(subst ;, -I,$(PACKAGE_PATH))

A Complete GNU make Example

Suppose you want to build sources using the target defined by ti.targets.C64. You must first examine the ti.targets.C64.stdInclude attribute - either by reading the ti/targets/C64.xdc file or reading the generated reference documentation for this module (ti.targets.C64). Using just this one value, it is possible to build the required compiler command line options.

The following GNU makefile illustrates how this information might by used in a make-based build system.

PACKAGE_PATH = $(XDCPATH);$(XDCROOT)/packages

CC_INCS  = -I$(strip $(subst ;, -I,$(PACKAGE_PATH))

CC6x     = /home/tools/ti/c6x/6.1.0/bin/cl6x

C64_DEFS = -Dxdc_target_types__=ti/targets/std.h -Dxdc_target_name__=C64

%.o:%.c
    $(CC6x) -c $(CC_INCS) (C64_DEFS) $*.c -o $@

Notice that

  1. the package path is easily converted into the list of -I options required by the compiler, and
  2. the include path settings are independent of the target (so porting to a new target does not affect the -I options).

To illustrate how this pattern scales to other targets, suppose you want to support two different targets: one for native execution on, say, Linux running on a PC and one for an embedded C64P device. A simple GNU makefile for this is shown below. In this case, we need to choose different object file suffixes to allow side-by-side compilation of both the embedded target and the native target. But, as we noted above, the -I options don't change.

PACKAGE_PATH = $(XDCPATH);$(XDCROOT)/packages

CC_INCS  = -I$(strip $(subst ;, -I,$(PACKAGE_PATH))

CC6x     = /home/tools/ti/c6x/6.1.0/bin/cl6x
CCHOST   = /home/tools/gnu/gcc-4.1.0-glibc-2.3.2/i686-unknown-linux-gnu/bin/gcc

C64P_DEFS = -Dxdc_target_types__=ti/targets/std.h -Dxdc_target_name__=C64P
HOST_DEFS = -Dxdc_target_types__=gnu/targets/std.h -Dxdc_target_name__=Linux86

%.o86U:%.c
    $(CCHOST) -c $(CC_INCS) (HOST_DEFS) $*.c -o $@

%.o64P:%.c
    $(CC6x) -c $(CC_INCS) (C64_DEFS) $*.c -o $@

Additional Compiler Options

In addition to the required -D options, RTSC headers use two other -D options to facilitate the creation of portable code and minimize the chance of identifier conflicts with existing code bases.

Portable Inclusion of Configuration Constants

C/C++ source code that is dependent on values specified in a configuration script can portably reference these values by adding the following #include statement to the top of the referencing source file.

#include <xdc/cfg/global.h> /* include definitions appearing in an executable's config script */
    :

For more information about how to specify values that can be referenced using this header, see the reference documentation for the xdc.cfg.Program.global configuration parameter.

In order to support multiple side-by-side configurations, the xdc/cfg/global.h header requires the name of the header that is generated as part of configuration. So, 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 RTSC Build Engine, xdc.bld, to create executables; see xdc.bld.Executable.addObjects. It is also defined in the compiler options file automatically generated by the xdc.tools.configuro tool.

Eliminating Identifier Conflicts

RTSC module headers are designed to enable developers to handle identifier conflicts that may arise when integrating RTSC modules or RTSC standard types with existing C source code bases. All RTSC headers allow you to control, to some extent, the names defined by the header via -D compiler options.

Every identifier ident defined by a RTSC module Mod (names of functions, constants, config params, typedefs, structs, etc.) contained in package pkg has at least two names:

  1. the fully qualified (or "long") name: pkg_Mod_ident, and
  2. short names: Mod_ident and, if @GlobalNames is specified in the pkg/Mod.xdc specification, ident.

Why are there multiple names for the same thing? Long names are guaranteed to be globally unique (assuming the package name is globally unique) and will not, therefore, conflict with any identifier from another part of the code base. On the other hand, the long name is ugly; it's onerous to type and makes sources difficult to read. Since conflicts are relatively rare, RTSC headers also define an optional short names for each identifier that is enabled by default. In those rare situations where short names conflict and it is not practical (or desirable) to modify existing code, it is possible to disable the definitions of these short names on a per module basis.

Disabling Short Names Defined By Modules

To disable the definition of short names for the module Mod in the package pkg, you must define the symbol pkg_Mod__nolocalnames before including the module's header. Suppose, for example, that you need to disable the short names for the xdc.runtime.Memory module. You can simply add a #define of the symbol xdc_runtime_Memory__nolocalnames prior to including xdc/runtime/Memory.h for the first in your source file.

#define xdc_runtime_Memory__nolocalnames  /* disable short name definitions of identifiers */
#include <xdc/runtime/Memory.h>

Alternatively, you can add this definition on the compile line used to build the file.

gcc -Dxdc_runtime_Memory__nolocalnames -Dxdc_target_types__=... -Dxdc_target_name__=...

Disabling Short Names Defined By xdc/std.h

As with module headers, each identifier defined by xdc/std.h - the header that defines the target's standard types - has both a "short name" and a "long name". The short name is often a single word, such as Bool, whereas the long name is the short name with the prefix "xdc_"; for example, the long name of Bool is just xdc_Bool.

To disable the definition of short names, you must define the symbol xdc__nolocalnames before including any header that includes xdc/std.h. You can add the definition directly to the files affected by the collision.

#define xdc__nolocalnames    /* disable short name definitions of standard types */
#include <xdc/std.h>

Alternatively, you can add this definition on the compile line used to build the file.

cl6x -Dxdc__nolocalnames -Dxdc_target_types__=ti/targets/std.h -Dxdc_target_name__=C64 ...

Of course, either way, you must reference the identifiers defined by the target using their (somewhat ugly but unique) long names.

Disabling Deprecated Definitions

As modules and interfaces evolve over time it is common practice to keep definitions and declarations that should not be used in any new code; they exist solely to support backward compatibility with existing code bases. In order to verify that a code base does not leverage any of these deprecated definitions, you can disable them by defining the xdc__strict symbol prior to including any headers.

As above, you can do this either on the compiler's command line or within selected files.

#define xdc__strict    /* disable short name definitions of standard types */
#include <xdc/std.h>

Alternatively, you can add this definition on the compile line used to build the file.

cl6x -Dxdc__strict -Dxdc_target_types__=ti/targets/std.h -Dxdc_target_name__=C64 ...

Eliminating File Name Strings

Both the xdc.runtime.Error and the xdc.runtime.Assert modules use the symbol xdc_FILE to obtain the current file name when raising errors. By default this symbol is defined to be __FILE__, a compiler generated string whose value is the name of the current translation unit. While these file names are valuable when tracking the source of errors, they also consume a considerable amount of data space.

It is possible to eliminate the string space overhead associated with errors by re-defining xdc_FILE to be NULL.

#define xdc_FILE NULL    /* eliminate use of __FILE__ in Assert and Error macros */

Alternatively, you can add the equivalent -D option to your compiler's command line.

cl -Dxdc_FILE=NULL ...

For more information see Eliminating File Name Strings in Using xdc.runtime Errors.

Linking

When linking an executable that references a RTSC module, you must include an object file and a linker command file produced by a separate "configuration step". This configuration step allows you to specify additional information about the executable that allows the RTSC modules to optionally supply alternative implementations that are "optimal" for your particular situation. For details about how to integrate configuration into your build system, start with Configuration Basics.

While this configuration step may seem unnecessary, it allows producers to completely change their underlying libraries without requiring you to make any changes to your build system's project files. In addition, since the configuration step is independent of any specific package, it is possible to add or remove modules from a project without changing the link steps required by your executable. In other words, the configuration step provides additional flexibility to the producer while at the same time insulating you from variations among different producers as well as future changes made by any of these producers. So, like the compilation requirements above, once you're integrated configuration into your build system for one module or package, you'll never have to change this to support new modules from any RTSC package.

Linking with RTSC modules has been designed to be modular and easy; new modules can be created at any time by third parties and added to a project without making any changes to linking process. To make this possible all symbols defined in the new modules must not clash with any existing symbols and the linking process must be independent of the ad hoc library names chosen by the module/package producer.

Symbol Names

To ensure symbol names do not clash, all RTSC module functions, types, and constants are given names that include both their package and module names. Assuming package names are globally unique, the C/C++ linker will never see a symbol conflict between two modules in different packages no matter who created the modules, when they were created, or what target you're using.

The table below describes the symbol references and definitions, as seen by the linker, that are created by a RTSC module named ModA delivered in a package whose name is pkg. See the C Language Binding for more information about what functions and variables are created for each module.

Kind | Client Reference [Producer Ref/Def] | External Symbol, Example | Type
client-visible function REF (or DEF if @DirectCall) | ModA_fxn() | pkg_ModA_fxn__E, xdc_runtime_System_printf__E | T
client-visible function DEF | ModA_fxn() | pkg_ModA_fxn__F, xdc_runtime_System_printf__F | T
internal function DEF or REF (spec'd in internal: section) | pkg_ModA_fxn() [ModA_fxn()] | pkg_ModA_fxn__I, xdc_runtime_Core_createObject__I | T
module-wide config param REF | ModA_cfg | pkg_ModA_cfg__C, xdc_runtime_System_A_cannotFitIntoArg__C | D,A
per-instance config params default REF | struct ModA_Params | pkg_ModA_Object__PARAMS__C, xdc_runtime_HeapStd_Object__PARAMS__C | D,A
static per-instance object array REF | ModA_Object_get() | pkg_ModA_Object__table__V, xdc_runtime_HeapStd_Object__table__V | D,A
module-wide system function REF (spec’d in IModule) | ModA_startupDone() | pkg_ModA_Module__*__S, xdc_runtime_HeapStd_Module__startupDone__S | T
per-instance system function REF (spec’d in IModule) | HeapStd_create() | pkg_ModA_Object__*__S, xdc_runtime_HeapStd_Object__create__S | T
proxy module system function REF (spec’d in IModule) | - | pkg_ModA_pxy_Proxy__delegate__S, xdc_runtime_Memory_HeapProxy_Proxy__delegate__S | T
module internal state structure REF | [ModA_module] | pkg_ModA_Module__state__V, xdc_runtime_HeapStd_Module__state__V | B
inheriting module virtual function table REF | ModA_Module_upCast() | pkg_ModA_Module__FXNS__C, xdc_runtime_HeapStd_Module__FXNS__C | D,A
interface run-time type identifier REF | - | pkg_IMod_Interface__BASE__C, xdc_runtime_IHeap_Interface__BASE__C | D,A
internal module root structure DEF | - | pkg_ModA_Module__root__V, xdc_runtime_HeapStd_Module__root__V | B

TODO: review consumer/producer reference for both VFT and RTTI

The type codes in the table below are described in the following table.

Type | Description
T | read-only code section (often called Text)
B | read-write data (sometimes called BSS)
D | initialized read-only data, requires storage space
A | absolute symbol, does not require storage space

Linker Command Files

To ensure that users of a package are insulated from having to make changes to their project's build files because of changes to physical library names provided by a package or the addition of a new package, the RTSC configuration step produces a linker command file that contains an ordered list of all libraries that need to be linked with to produce the application. The user never needs to consider the names or the order of libraries required to satisfy references to RTSC modules.

Debugging

Unless you are using a debugger that understands the symbol name mapping that occurs with RTSC modules and interfaces, you will need to use the linker symbol names, described above, to set breakpoints and view static data structures. Future releases of XDCtools will include Eclipse CDT support to make this easier.

The definitions of the key RTSC module data structures, shown below in pseudo-C, can help when navigating in-memory data structures.

struct pkg_ModA_Module__State {        /* typeof pkg_ModA_Module__state__V */
    fieldDecl;                         /* field of pkg.ModA.Module__State */
};

struct pkg_ModA_Object {
    pkg_ModA_Fxns__ *__fxns;           /* inheriting modules only */
    xdc_runtime_Types_Label __label;   /* 32-bit coded name, unless common$.namedInstance == false */
    fieldDecl;                         /* field of pkg.ModA.Instance__State */
};

struct pkg_ModA_Handle__;                   /* intentionally incomplete struct definition */
typedef pkg_ModA_Handle__ *pkg_ModA_Handle; /* convertible to/from pkg_ModA_Object* */

struct pkg_ModA_Params {                    /* typeof pkg_ModA_PARAMS */
    size_t      __size;                     /* sizeof this struct */
    const void *__self;                     /* pointer to self; used to check params are init'd */
    void       *__fxns;
    xdc_runtime_IInstance_Params *instance; /* common per-instance params */
    fieldDecl;                              /* per-instance param of pkg.ModA */
};

struct xdc_runtime_IInstance_Params {  /* common parameters for all instances */
    size_t     __size;                 /* sizeof this struct */
    xdc_String name;                   /* name of this instance */
};

struct pkg_ModA_Fxns__ {               /* typeof pkg_ModA_Module__FXNS__C */
    xdc_runtime_Types_Base *__base;    /* inherited interface’s id */
    (*__create)();                     /* system create function (or NULL) */
    (*__delete)();                     /* system delete function (or NULL) */
    (*fxnDecl)();                      /* inherited function of pkg.ModA */
};

struct xdc_runtime_Types_Base {
    xdc_runtime_Types_Base *base;      /* inherited interface’s id (or NULL) */
};

In addition to the structures shown above, the configuration tool generates a data structure for each module to hold runtime state that is not explicitly managed by the module; e.g., a module's diagnostics mask. These data structures vary depending on whether the module supports instance creation, logging is enabled for the module, and whether the creation policy is allows runtime creation.

non-instance module with logging enabled

struct pkg_ModA_Module__ {        /* typeof pkg_ModA_Module__root__V */
    diagsMask;                         /* module's diagnostics mask */
};
struct pkg_ModA_Module__ pkg_ModA_Module__root__V = { ...};

instance module with logging enabled

struct pkg_ModA_Module__ {        /* typeof pkg_ModA_Module__root__V */
    xdc_runtime_Types_Link link;       /* link to module's runtime created instances */
       :
    diagsMask;                         /* module's diagnostics mask */
};
struct pkg_ModA_Module__ pkg_ModA_Module__root__V = { ...};

These structures are generated as part of the configuration process and may change from release to release of XDCtools. So, to maintain compatibility with future releases, code should never directly reference fields within these structures nor should any code even assume the existence of this structure (this structure may not exist for modules that do not require runtime state).

By design, all direct accesses to the "extra" module state fields in the Module__root__V structure are limited to the configuration generated .c file itself; this enables changes in representation without impacting (binary) compatibility. Access to (say) the link field is via special getters/setters declared in the module's .h file and the implementation of these special functions is generated as part of the generated .c file.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript Debugging - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript Debugging

Overview of script debugging techniques

Contents

  • 1 Script debugging
  • 2 "printf" Debugging
  • 3 Trace Debugging
    • 3.1 Tracing everything
    • 3.2 Tracing package loads
    • 3.3 Tracing the configuration process
    • 3.4 Tracing more than one thing
    • 3.5 Tracing the XDCspec file re-compilation
    • 3.6 Enabling trace from within scripts
  • 4 Single-step Debugging
    • 4.1 xs Scripts
    • 4.2 Build Scripts
    • 4.3 Config Scripts

Script debugging

This topic summarizes a variety of script debugging techniques. This content is aimed at package consumers. For package producers who want to enable trace support in their packages, and for more elaborate filtering of trace output, please see Trace Support.

"printf" Debugging

It is possible to easily print scaler and array values via the print() method. For example,

Script

var i = 3;
var a = [1, 2, 3];
print("i = " + i);
print("a = [" + a + "]");
Output

i = 3
a = [1,2,3]

Using JavaScript's reflection capabilities, it is also possible to display objects with named properties.

Script

var obj = {foo: 1, bar: "a string"};
for (var i in obj) {
    print("obj." + i + " = " + obj[i]);
}
Output

obj.bar = a string
obj.foo = 1

The xdc.bld.Utils capsule provides a utility function to recursively display the value of an object.

Script

var Utils = xdc.loadCapsule('xdc/bld/Utils.xs');
var a = {afield: "far"}
var b = {obj: a, name: "bee"};

Utils.display("b =  ", b);
Output

b =  [object Object] {
    obj = [object Object] {
        afield = far
    }

    name = bee
}

Trace Debugging

Many of the modules and capsules included with XDCtools have embedded "trace" statements that may be optionally enabled. These trace statements are printf-like statements that output informational messages about what a tool is currently doing.

This section outlines how to enable these statements and shows examples of useful traces. For more elaborate filtering of trace output, please see Trace Support.

Tracing everything

Tracing everything. The easiest way to enable all trace statements is to set the environment variable XDC_TRACE_ENABLE to all.

xdc XDC_TRACE_ENABLE="all"

Normally this environment variable names specific capsules containing traces statements that should be enabled. But in this case, all is a special token that enables trace for all capsules.

Tracing package loads

Tracing package loads. To enable tracing of package loads, set the XDC_TRACE_ENABLE environment variable as follows

Unix

export XDC_TRACE_ENABLE=xdc/xdc.tci
Windows

set XDC_TRACE_ENABLE=xdc/xdc.tci
Tracing the configuration process

Tracing the configuration process. To enable tracing during configuration, set the XDC_TRACE_ENABLE environment variable as follows

Unix

export XDC_TRACE_ENABLE=xdc/cfg/Main.xs
Windows

set XDC_TRACE_ENABLE=xdc/cfg/Main.xs
Tracing more than one thing

Tracing more than one thing. It's also possible to enable more than one trace at a time. For example, to trace the configuration process and package loads at the same time, set the XDC_TRACE_ENABLE environment variable as follows

Unix

export XDC_TRACE_ENABLE="xdc/cfg/Main.xs;xdc/xdc.tci"
Windows

set XDC_TRACE_ENABLE=xdc/cfg/Main.xs;xdc/xdc.tci

The use of quotes (") in the definition of XDC_TRACE_ENABLE is important on Unix systems because ';' is used to separate commands. Similarly, it is important to not use quotes on Windows systems because the quotes will be treated as part of the file name to be traced.

Tracing the XDCspec file re-compilation

Tracing the XDCspec file re-compilation. If XDC_TRACE_ENABLE is defined to include "xdc/services/spec", messages indicating the re-compilation of spec files it occurring. Suppose, for example, you set XDC_TRACE_ENABLE to the "xdc/services/spec".

Unix

export XDC_TRACE_ENABLE="xdc/services/spec"
Windows

set XDC_TRACE_ENABLE="xdc/services/spec"

Notes similar to the following will be displayed.

Note: BrowserSession compiling ...; could not find .ccs file
This message indicates that you are using a version of the XDCtools whose IDL processor is not compatible with the IDL processor used to originally build the package whose base directory is named in the message. This message is informative only; the only problem with recompiling the .xdc files is that the tools will take longer to complete.
Enabling trace from within scripts

Enabling trace from within scripts. In addition to enabling trace on the command line as shown above, it is also possible to enable trace from within a script

xdc.traceEnable("xdc/xdc.tci");

For more information about using tracing within scripts see xdc.traceEnable reference documentation. For information about adding tracing to your modules see the XDCscript reference documentation of the $trace function.

Single-step Debugging

The underlying JavaScript engine for XDCscript is Rhino; a Mozilla open source implementation written entirely in Java. This engine is supported by a GUI debugger that allows one to single step debug any script.

This section shows how to enable this debugger for a variety of scripts in the RTSC environment.

xs Scripts

You can run the Rhino GUI debugger directly from the xs command line via the -g option.

   xs -g -f myscript.xs

When the debugger window appears, it will look something like the following figure.

You will notice that you are stopped in a file that is not related to your script. The debugger initially stops in xs.js, a top-level script that parses the xs command-line arguments and calls your script. To single step your script you should:

  1. open the Debug menu and un-select "Break on Function Enter"
  2. single step-over through the xs.js file until your script is about to be loaded
  3. single step-into your script

It's currently not possible to set a breakpoint in a file that has not already been loaded. You must single step until the file of interest is loaded and only at that point can you set breakpoints. Once a file has been loaded you can set a breakpoint as follows.

  1. open the Window menu, locate your script file (you may need to select the "More Windows ..." item), and select it
  2. set a breakpoint in your script by clicking in the left-most column
  3. click the Go button

Build Scripts

You can run the Rhino GUI debugger directly from the xdc command line by adding -g to the XDCOPTIONS settings.

xdc XDCOPTIONS=-g .make

When the debugger window appears, it will look something like the following figure.

You will notice that you are stopped in a file that is not related to your script. The debugger initially stops in bld.js, a top-level script that runs both the config.bld and package.bld scripts. To single step your script you should:

  1. open the Debug menu and un-select "Break on Function Enter"
  2. single step through the bld.js file until your script is about to be loaded
  3. single step-into your script

Alternatively, you can set a breakpoint in the utils.tci file at the utils.load() function and repeatedly click the Go button watching for your package.bld (or config.bld) script to be loaded.

Config Scripts

NOTE: to be written

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - xdc.traceEnable - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - xdc.traceEnable

Enable debug trace output

Contents

  • 1 Synopsis
  • 2 Parameters
  • 3 Description
    • 3.1 Setting xdc.traceEnable via an environment variable
    • 3.2 Setting xdc.traceEnable on command lines
  • 4 See also

Synopsis

xdc.traceEnable(mask);

Parameters

mask
string-valued "masks" that designate a set of named capsules.

Description

This function accepts string-valued masks that designate a set of named capsules for which calls to the special function $trace(msg) result in the msg string being printed. If called with no arguments, the function returns the current trace mask; otherwise, the function updates the current trace mask and returns its previous value.

The trace mask itself comprises a set of semicolon-separated patterns that are suffix-matched against the canonical filename of the capsule. Occurrences of slashes (forward or backward) within the patterns are appropriately normalized. Wildcards ('*') within the patterns match arbitrary character sequences that themselves do not contain slashes. For convenience, capsules can be designated without any particular file extension (e.g., ".xs").

This function is called upon startup with the value of the system property "xdc.traceEnable", if the latter is defined. This system property can be defined via command line options to the xs and xdc commands or by setting the XDC_TRACE_ENABLE environment variable.

Setting xdc.traceEnable via an environment variable

Setting xdc.traceEnable via an environment variable. In the event that Java Runtime Environment system property xdc.traceEnable is not defined, it is set to the value of the XDC_TRACE_ENABLE environment variable.

Unix

export XDC_TRACE_ENABLE=foo
Windows

set XDC_TRACE_ENABLE=foo
Setting xdc.traceEnable on command lines

Setting xdc.traceEnable on command lines. Both the xs and xdc commands allow you to set the system property xdc.traceEnable on the command line, overriding the any setting of XDC_TRACE_ENABLE that may be in the current environment.

xs -Dxdc.traceEnable=bar
xdc XDC_TRACE_ENABLE=bar

See XDCscript Debugging for useful settings of xdc.traceEnable.

See also

XDCscript - Capsule-Object.$trace | Print a trace message
XDCscript - Capsule-Object.$traceQuery | Query whether capsule debug trace is enabled

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - xdc.loadCapsule - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - xdc.loadCapsule

Load specified capsule

Contents

  • 1 Synopsis
  • 2 Parameters
  • 3 Description
  • 4 Return Value
  • 5 Throws

Synopsis

var capsuleObject = xdc.loadCapsule(capsulePathName);

Parameters

capsulePathName
path string of the capsule file to load; e.g., "ti/sysbios/BIOS.xs". The capsule file is located via xdc.findFile().

Description

xdc.loadCapsule() loads and runs the XDCscript code in the specified file (also known as a capsule). The first time a capsule is loaded, all variables and functions defined in the file are "bound" to a newly created object which is the return value of xdc.loadCapsule(). Subsequent calls to xdc.loadCapsule() with the same capsule file will return the object created the first time the capsule is loaded. So, the code in a capsule is run just once when the capsule is loaded. Functions defined within the capsule can, of course, be run repeatedly.

Return Value

xdc.loadCapsule() returns a JavaScript object whose properties are the functions and variables defined in the capsule.

Throws

This method may throw an xdc.services.global.XDCException exception with one of the following ids:

  • "xdc.FILE_NOT_FOUND" - in the event that the specified capsule (JavaScript file) can not be found along the package path.
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - xdc.findFile - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - xdc.findFile

Find file along the package path

Contents

  • 1 Synopsis
  • 2 Parameters
  • 3 Description
  • 4 Return Value
  • 5 Example

Synopsis

var path = xdc.findFile(fileName);

Parameters

fileName
string name of a file to be located

Description

xdc.findFile searches for the file named fileName along the current package path. xdc.findFile searches for fileName according to the following algorithm:

  1. If fileName is an absolute path or begins with "./": findFile returns fileName if it exists; otherwise, it returns null.
  2. If fileName is a relative path that does not start with "./": the following directories are searched in order:
    • the current script directory (see xdc.csd())
    • the directories specified by the RTSC package path
    • If the file can not be found in these directories, null is returned.

Return Value

xdc.findFile returns a path name of a file that exists or null if no file can be found. The path returned may be absolute or relative to the current working directory.

Example

To locate the file named std.h relative to the package ti.bios:

var path = xdc.findFile("ti/bios/std.h");

Notice how the '.'s in the package name are replaced with '/'s in the argument to xdc.findFile. Always use '/' to separate directories even on Windows hosts; Windows supports both '/' and '\' as directory separators whereas UNIX systems only support '/'.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - xdc.loadXML - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - xdc.loadXML

Load an XML file

Contents

  • 1 Synopsis
  • 2 Parameters

Synopsis

var e4xObject = xdc.loadXML(xmlPathName);

Parameters

xmlPathName
path string of the XML file to load; e.g., "common/benchmarks/bios.xml". The XML file is located via xdc.findFile().
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - xdc.loadTemplate - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - xdc.loadTemplate

Create a template object from a template file

Contents

  • 1 Synopsis
  • 2 Parameters
  • 3 Description
  • 4 Return Value
  • 5 Example
  • 6 See also

Synopsis

var templateObject = xdc.loadTemplate(templatePathName);

Parameters

templatePathName
string file name of the template to be loaded; e.g., "my/template/pkg/foo.xdt" The template file is located via xdc.findFile().

Description

xdc.loadTemplate() loads a template file and returns a template object that can then be used to generate output either to a file or an output stream. This object has two methods that "expand" the template into either an existing output stream or into a new file.

  • tplt.genFile(fileName, thisObj, args, clobber)
    Generates output to fileName, which is created if necessary. Unless clobber is true, an existing file is overwritten only when its content has truly changed.
  • tplt.genStream(outStream, thisObj, args)
    Generates output to outStream, an instance of class java.io.PrintStream. All three parameters are passed to the underlying template generation function.

Return Value

xdc.loadTemplate returns a template object or throws an exception if the package can not be found or a syntax error occurs within the template file itself.

Example

Suppose the file header.xdt is a template for a C header that has an include guard based on the first argument of the argument array passed to the genFile method. The following code fragment will generate a file named "foo.h with an include guard based on the string "foo".

foo.xs

var template = xdc.loadTemplate("header.xdt");
template.genFile("foo.h", this, ["foo"]);
header.xdt

%%{
    var NAME = $args[0];
%%}
/*
 *  ======== `NAME`.h =========
 */
#ifndef `NAME`_include
#define `NAME`_include 1

#endif /* `NAME`_include */

See also

XDCscript - Template-Body | Contents of the template file
XDCscript - Template-Object.genFile | Generate textual output file from a template
XDCscript - Template-Object.genStream | Generate textual output stream from a template

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Compatibility Keys - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Compatibility Keys

How inter-package dependencies are managed

Contents

  • 1 Introduction
  • 2 Package Compatibility Keys
  • 3 Target Compatibility Keys
  • 4 Sources of Compatibility Keys
  • 5 Compatibility Key Checks
    • 5.1 Installation Time Checks
    • 5.2 Configuration Time Checks
    • 5.3 Package Release Time Checks
  • 6 Managing "Built-With" Dependencies
    • 6.1 How to view built-with dependencies
    • 6.2 How to control built-with dependencies
  • 7 Controlling Compatibility Key Checks
    • 7.1 Installation Time Checks
    • 7.2 Configuration Time Checks
    • 7.3 Package Release Time Checks

Introduction

In order to manage different versions of packages being updated at different times by the end-user, it is important that there be some mechanism for ensuring compatibility of a collection of packages. RTSC packages have built-in support for managing dependencies among a set of packages which relies on the RTSC concept of "compatibility keys". Every package has a compatibility key consisting of an ordered tuple of three or more numbers.

Compatibility Keys are not version numbers; i.e., two different versions of a package may share a common compatibility key. Moreover, because RTSC package tooling interprets these numbers to determine if certain combinations of packages are permissible, it is important that compatibility key numbers be managed very carefully. This is in contrast to "Product Marketing" version numbers, which are often chosen on an ad hoc basis to convey subjective qualities of a product release. A package's compatibility key combined with its release date and "release name" (an arbitrary name specified by the package producer at the time the release is created) is used by RTSC tooling as a version identifier.

Compatibility among packages is not only affected by different versions of other packages. Use of different versions of code generation tools can also be the source of incompatibilities. For example, a client using compiler version 4.0 might get a package of binary content that was built with version 5.0 of the same compiler. Although compiler vendors are generally very good about maintaining backward compatibility (the ability of new linkers to use objects produced by older compliers), for obvious reasons, code generation tools are usually not forward compatible (the ability of old linkers to use objects produced by new compilers). As a result, it is important that each package specify a target compatibility key for each compiler used to generate objects it contains.

Package Compatibility Keys

Each package has a Compatibility Key, of the form [M,S,R,P], that expresses the compatibility of this version of the package with other versions of the same package. The semantics of each dimension of the compatibility key for a package pkg is described in the table below.

Name | Compatibility | Consumer Must | Indicated By
Major | incompatible | re-write sources that reference pkg, get new versions of all packages that reference pkg, and ensure that these packages are built with a version of pkg whose key matches M | change in M
Source | source backward compatible | re-compile sources that reference pkg, get new versions of binary packages that reference pkg, and ensure that these packages are built with a version of pkg whose key matches both M and S | same M, change in S
API Radius | binary backward compatible | re-link applications and ensure that all packages that reference pkg are built with a version of pkg whose key matches M and S and whose R is less than or equal to the current pkg's R value | same [M,S], change in R
Patch | binary 100% compatible | re-link dependent applications with any version | same [M,S,R], change in P

Any change to M, S, R, or P requires re-running the configuration step. TODO: is it possible to weaken this requirement?

To ensure compatibility among a group of packages each package specifies its compatibility with other versions of itself. Each package also specifies the compatibility key of the packages that it was built and tested against. Given this information about each package, it is possible to determine if a specified set of packages are expected to work together.

Target Compatibility Keys

Each target has a Compatibility Key, also of the form [M,S,R,P], that expresses the compatibility of pre-compiled object files produced by this version of the target's underlying tool-chain with those produced using other versions of the same tool-chain. The semantics of each dimension of the compatibility key for a target T is described in the table below.

Name | Compatibility | Consumer Must | Indicated By
Major | incompatible | re-write sources built with target T, get new versions of all packages built with target T, and ensure that for each of these packages that T's key is M | change in M
Source | source backward compatible | re-compile dependent source packages, get new dependent binary packages, and ensure that for each of these packages that T's key matches both M and S | same M, change in S
API Radius | binary backward compatible | re-link applications and ensure that the R digit is greater than or equal to the R digits of the built with target versions | same [M,S], change in R
Patch | binary 100% compatible | re-link application with any packages built with T which has key with the same M, S, and R digits | same [M,S,R], change in P

Target compatibility keys are typically computed automatically by a target from the version number reported by the underlying compiler tool-chain. Each compiler tool-chain has a unique way of communicating compatibility via its version numbers but, by first converting these version numbers to a compatibility key, XDCtools can uniformly manage some compiler compatibility checks without having to know about any particular tool-chain.

Although there can be exceptions, most targets map compiler version numbers into compatibility keys by simply using the compiler's major and minor version number as the API Radius. For example, version 3.4.6 of a compiler might be converted to the compatibility key [1, 0, 3.4, 6]. This simple mapping implies:

  • it's always possible to use a version of the compiler with the same (or greater) major or minor version number than that used to build any content you are referencing; e.g., you can use a 4.1.0 compiler to consume content built with 3.4.6.
  • it's possible to use an earlier version of a compiler provided the major and minor version number match; e.g., you can use 3.4.2 to consume content built with 3.4.6 of the compiler.
  • a warning (or optionally an error) will be triggered if you try to use an older compiler to consume content built with a compiler that has later major or minor version number; e.g., a warning is generated if you try to use 3.4.6 to consume content built with a 3.6.0.

Sources of Compatibility Keys

There are three sources of compatibility key information:

  1. All packages declare at least [M, S, R] in their package.xdc package specification file;
  2. All packages specify the compatibility keys of all other packages used in its construction and this specification appears in an XML file named package/package.rel.xml which complies with the DTD release.dtd supplied in the xdc.bld package; and
  3. All packages specify the target compatibility key for all of the objects it contains and this specification appears in an XML file named package/package.bld.xml which complies with the DTD build.dtd supplied in the xdc.bld package.

So, in addition to a package's declared compatibility key (item 1 above), each package carries with it a set of "built-with" compatibility keys - the keys of the packages and targets used to build the package (items 2 and 3 above). These "built-with" keys provide the connection to other packages that allows RTSC tooling to detect when a specific combination of packages should not be used together.

Both files containing "built-with" compatibility keys, package/package.rel.xml and package/package.bld.xml, are automatically generated by the xdc command during the package build process. The "built-with" keys named in the package/package.rel.xml file are determined from two sources: the optionally supplied compatibility keys named by requires statements in the package's package.xdc file and all packages determined by examining the makefile dependencies generated by the RTSC Build Model during the build of the package. If you do not use the RTSC Build Model to compile your C content, you must manually update the package's package.xdc requires statements to ensure the completeness of the package's "built-with" keys. The "built-with" target keys named in package/package.bld.xml are determined by the targets named by the target configuration file (typically config.bld) used to build the package.

We don't require packages to specify the patch number because this value is not needed by tooling to detect a compatibility failure; if the first three digits of a pair of compatibility keys match the two components are (as far as the key is concerned) 100% interchangeable. The reason for having a patch digit is to enable compatibility keys optionally to serve as version numbers.

In the rare case that a package does not provide any programmatic interface that can be referenced by another package, the compatibility key for such a package is technically unnecessary. For example, some products include example applications (in the form of a package) which are never referenced by another package. We still require a compatibility key to be specified because there is no way for "package checking" tools to reliably recognize this situation. For these cases the package should simply be given the compatibility key [1, 0, 0].

Compatibility Key Checks

Package and target compatibility keys are checked only at specific points in the development process:

  • during package installation,
  • as part of the configuration process when modules are assembled, and
  • when the producer creates a release of a package.

All checks can be controlled on a per package or per target basis and can even be disabled altogether.

Why is it necessary to control or disable the compatibility checks? There are times when, strictly speaking, a package as a whole is incompatible with another package but it is still possible to use both packages safely in an application. Suppose for example, that a package provides a new version of a module in which a C-language macro is reimplemented as a function. The package's compatibility key should indicate that a re-compile is necessary (a change in the S digit). On the other hand, clients that never reference this particular macro do not need to be recompiled even though the package compatibility key suggests that it is required. Since packages have a single compatibility key - rather than a key for each constant, type, and method of each module - and it's not practical to precisely determine what parts of each package are actually used by others, there are times when the compatibility checks will falsely indicate a problem.

The following sub-sections describe what checks are performed.

Installation Time Checks

Before a package can be used it must be installed in a repository that appears along your project's package path. If two "incompatible" packages are installed in the same repository and your application references both of these packages, it is difficult (though not impossible) to build your application with compatible versions of these packages. So, tools that build repositories, such as xdc.tools.repoman, perform the following checks on each repository:

  1. all versions of each target T used to build a package in the repository are compatible with the "latest" version of T used: if T[M, S, R] is the latest version of T used by any package, and T[M', S', R'] is also used, then we require that M == M', S == S', and R >= R'
  2. for every package P in the repository, the versions of all packages B used to build P are compatible with the versions of B currently contained in the repository: for each "built-with" package B[M, S, R] we compare the version of B in the repository B[M', S', R'] (if it exists) and require that M' == M, S' == S and R' >= R

Packages may be "installed" in any repository either by hand or by using a repository management tool such as xdc.tools.repoman. Installation by hand simply means that you've copied the package contents into a directory. In this case, of course, no compatibility checks are performed. You may, however, manually check that the packages in a repository are mutually compatible using the xdc.tools.check utility.

Configuration Time Checks

During configuration, three compatibility checks occur

  1. for all imported packages P, P's "built-with" package keys are compared with "actual" keys: for each "built-with" package Q[M, S, R] we compare the "actual" imported Q[M', S', R'] and require that M' == M, S' == S and R' >= R
  2. for all imported packages P, the configuration's target key is compared to P's target key: each package's "built-with" target T[M, S, R] is compared to the configuration's imported target T[M', S', R'] and we require that M' == M, S' == S and R' >= R
  3. for all imported packages P, P may perform custom compatibility checks when P is imported by any script (via P.init())

As an example of a package-specific compatibility check, consider the following fragment of a package's xdc.IPackage implementation file, package.xs. In this case, validate() examines the version of another package (ti.bios) and based on the version either succeeds or fails.

package.xs

function validate() {
    var biosVers = xdc.om["ti.bios"].$vers;        /* get ti.bios key as an array */
    if (biosVers.join(",").indexOf("1,2") == 0) {  /* if its key is 1,2,* ... */
        switch (biosVers[2]) {
            case 3: { /* avoid version 1,2,3,x, where x < 10 or x == 15 */
                if (biosVers[3] < 10 || biosVers[3] == 15) {
            throw new Error("incompatible version of ti.bios");
                }
            }
         :

Package Release Time Checks

During the build of a release of a package P, two compatibility checks occur:

  1. for all "required" packages R, the specified requirement key is "source compatible" with R's actual key (M identical, >= R)
  2. for all "directly required" packages R, if R's key is not prefix of the "built-with" R's key, a remark is displayed

Managing "Built-With" Dependencies

Before releasing a package for general use it is important to review the package's dependencies. These dependencies affect whether the package can be used without warnings from the compatibility checks described above.

How to view built-with dependencies

How to view built-with dependencies. The following script can be used to display a released package's external references.

refs.xs

function main(args) {
    /* convert package name to release XML file name */
    var file = args[0].replace(/\./g, '/') + "/package/package.rel.xml";

    /* load the specified package's release XML file */
    var ext = xdc.loadXML(file);

    /* use E4X extensions to get and display information from this file */
    var references = ext.references["package"];
    print("package " + ext["package"].@name + " references the following packages:");
    for (var i in references) {
        print("    " + references[i].@name + " [" + references[i].@version + "]");
    }
}

This script can be run using the -c option of the xs command.

% xs -c refs.xs xdc.runtime
    package xdc.runtime references the following packages:
        xdc.utils.tconf [1, 0, 0, 0]
        xdc.services.global [1, 0, 0]
        xdc.services.spec [1, 0, 0, 0]
        xdc.corevers [16, 0, 1, 0]
        xdc.bld [1, 0, 0, 0]
        xdc.services.intern.cmd [1, 0, 0, 0]
        xdc.services.intern.xsr [1, 0, 0]
        xdc [1, 1, 0, 0]
        xdc.shelf [1, 0, 0, 0]
        xdc.services.intern.gen [1, 0, 0, 0]
%
How to control built-with dependencies

How to control built-with dependencies. A package's built-with dependencies are automatically computed by the xdc tool when building the release goal; e.g., when running the command "xdc release" in a package's base directory. The algorithm used to compute these dependencies scans the package's generated makefiles for external pre-requisites, computes the packages containing these pre-requisites, and records both the package name and version information for each such package.

There is currently (7/11/2008) no way to add or remove built-with dependencies to this automatically generated list.

Controlling Compatibility Key Checks

The next few sub-sections describe how to control the compatibility checks described above.

Installation Time Checks

When extracting package into a repository, the xdc.tools.repoman tool first checks that the packages are compatibile with the other packages in the repository. If an incompatibility is detected, the repository is not modified. You can force the installation of these packages using the -F flag, however.

xs xdc.tools.repoman -x -F ...

Configuration Time Checks

Configuration time checks are controlled by two "environment" variables:

  • 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, and
  • xdc.cfg.check.fatal - if set to false, force any incompatibilities detected to be treated as warnings only; otherwise incompatibilities are fatal

To define these environment variables you must pass the appropriate -D options to the XDCscript shell (xs). For example, to ignore any incompatibilities triggered by packages whose names start with ti.targets.rts, set xdc.cfg.check.exclude to the regular expression 'ti.targets.rts.*':

xs -Dxdc.cfg.check.exclude='ti.targets.rts.*' xdc.tools.configuro ...

Similarly, to treat any detected package incompatibilities as warnings only, set xdc.cfg.check.fatal to false:

xs -Dxdc.cfg.check.fatal=false xdc.tools.configuro ...

If you are using the RTSC Build Model to build your application, you can pass these options to the the XDCscript shell on a per executable basis via the xdcopts attribute of an Executable.

package.bld

Pkg.addExecutable("app", targ, targ.platform, {
    xsopts: "-Dxdc.cfg.check.exclude='ti.targets.rts.*'"
});

In addition, if you don't want to set xsopts for each executable, it is possible to set it for all executables within a package by setting the xsopts attribute of the xdc.bld.PackageContents (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:

config.bld or package.bld

Pkg.attrs.xsopts = "-Dxdc.cfg.check.fatal=false";

Package Release Time Checks

To ensure the correctness of the information contained in each package's package.xdc file, the release time checks can not be overridden.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Using xdc.runtime Errors - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Using xdc.runtime Errors

How to raise and handle runtime errors

Contents

  • 1 Introduction
  • 2 Overview
    • 2.1 Architecture
    • 2.2 Configuration
  • 3 Examples
  • 4 Performance Considerations
    • 4.1 Eliminating File Name Strings
    • 4.2 Eliminating Error and Assert Message Strings

Introduction

The xdc.runtime package contains several modules that work together to provide rich application diagnostic support that can be controlled in real-time within deployed systems. This section focuses on those modules that are used to raise and handle errors and provide assertion support: Error and Assert, respectively.

Use of these modules is illustrated below by a series of examples that take advantage of two other distinguished xdc.runtime modules:

  1. Main - a module whose configuration applies to all code that is not a RTSC module; e.g., existing C code bases, and
  2. Defaults - a module whose configuration applies to all RTSC modules (including Main), unless explicitly overridden on a per-module basis.

Overview

Each embedded application runs in a unique environment with specific resource requirements and, as a result, adopts application-specific policies for managing runtime errors; e.g., reset-and-reboot, catch-and-retry, log-and-continue, or a combination of these policies for different parts of the system. The xdc.runtime package provides a set of mechanisms for raising and handling runtime errors that enables code to be written once and used in any application - independent of the application's error handling policies.

Architecture

The xdc.runtime package supports two distinct "categories" of error:

  1. errors that are explicitly checked for and handled by the code, and
  2. assertion violations that arise when the current application state is inconsistent with the range of states required by a piece of code.

The first category of errors are managed by the Error module and the second category is managed by the Assert module. Rather than use simple fixed-length error numbers, the xdc.runtime package uniformly employs an opaque Error_Block structure to "raise" errors via Error_raise(). Functions that raise errors are passed a pointer to an Error_Block structure which is passed to Error_raise() when an error is detected. When an error is raised, the Error_Block structure records the source of the error, a unique ID for for the error, a message format string, and up to two arguments associated with this particular occurrence.

Using an Error_Block structure has several advantages. Perhaps most importantly, the information about the source of the error as well as data specific to the particular occurrence is efficiently copied into the structure for later processing. In effect, Error_raise() combines the efficiency of a simple error code with the richness of a printf at the site of the error. Since the error information is simply recorded in the Error_Block structure, the application developer can control when and how the information will be formatted and displayed.

Similar to the standard C assert() macro, the Assert module's methods are interspersed with other code to add runtime checks - primarily during early development - that ensure the code is being called in the appropriate context. 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 assertions remain in the final application, if any.

When an assertion violation is detected, an Assert.E_assertFailed error is raised (via Error_raise()) with a NULL Error_Block reference; so, assertions are handled using the same error handling hooks as "normal" errors.

Configuration

Users of libraries that embed xdc.runtime.Assert statements can configure their application to specify:

  • on a per-module basis, what assertions should be evaluated and whether these assertions are always enabled (disabled) or whether they can be enabled and disabled at runtime via Diags_setmask()
  • on a per application basis whether errors should terminate the application or "unwind" to the caller
  • on a per application basis, a custom error handler

These configuration options make it possible for the system integrator to strike a balance between the need for runtime error checking against the overhead required for these checks without making any changes to the code containing embedded Error or Assert statements. Even better, these options are possible without requiring re-compilation of any source code making it possible to (re)configure pre-built binary libraries that utilize xdc.runtime.Error or xdc.runtime.Assert methods.

Examples

In the table below, we provide a series of graduated examples that illustrate the key capabilities of this package and provide links to more advanced topics.

Example | Description | Purpose
Example 1 | Using Error to raise and "catch" errors | a minimal example to illustrate using Error in existing code bases
Example 2 | Using Assert to perform runtime checks | a minimal example to illustrate using Assert in existing code bases
Example 3 | Creating an Error handler | illustrate how to bind a custom error handler
Example 4 | Creating new Error Ids | illustrate how to create new Error Descriptors
Example 5 | Logging All Errors | illustrate custom error handler that logs all errors

Performance Considerations

In this section we review the performance impact of using Error and Assert. In addition, we provide techniques for balancing the overhead against increased per error information.

Eliminating File Name Strings

Unless otherwise specified, both Error_raise() and Assert_isTrue() pass the file name of the caller (__FILE__) to the underlying functions that handle errors. As a result, there are a number of static strings that are embedded in any application that uses Error or Assert. To eliminate these strings you can add the following line, before including xdc/runtime/Error.h or xdc/runtime/Assert.h, to each source file.

#define xdc_FILE NULL    /* eliminate use of __FILE__ in Assert and Error macros */

Alternatively, you can add the equivalent -D option to your compiler's command line.

cl -Dxdc_FILE=NULL ...

Eliminating Error and Assert Message Strings

As with the Log module, the strings associated with an error or assertion descriptors can be entirely eliminated from the target's memory. These strings can be stored and used on a "diagnostic" client that has less constrained resources.

To eliminate the runtime strings you must configure the Text module to place all strings in a special section that will not be loaded onto the target.

var Text = xdc.module("xdc.runtime.Text");
Text.isLoaded = false;

In addition to message strings used in Error and Assert descriptors, the Text module maintains the string names of all modules and (optionally) instances are also maintained on the target. Setting Text.isLoaded to false will also eliminate these string names. Again, in systems where space is a precious resource, it is sometimes necessary to eliminate these "conveniences" in favor of other critical data.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Using xdc.runtime Gates - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Using xdc.runtime Gates

How to serialize access to shared data structures

Contents

  • 1 Introduction
  • 2 Overview
    • 2.1 Architecture
    • 2.2 Configuration
  • 3 Examples
  • 4 Performance Considerations

Introduction

The xdc.runtime package contains modules that work together to provide support for serializing access to shared data structures. This section focuses on the Gate module which is used to "enter" and "leave" critical sections of code that access shared data.

Use of this module is illustrated below by a series of examples that take advantage of one other distinguished xdc.runtime module:

  • GateNull - a module that is used to eliminate unnecessary serialization overhead for those situations where data is known to be accessed by one thread at a time; e.g., in single threaded systems or for modules that are known to be used by just one thread in a multi-threaded application.

Obviously the most interesting examples will require a "real" gate; i.e., one that serializes access to a shared data structure in a multi-threaded application. Extending xdc.runtime Gates provides an example that uses posix mutexes and illustrates how, using services commonly provided by an RTOS, the xdc.runtime package can be made thread-safe with respect to that RTOS.

Overview

Each embedded application runs in a unique environment with specific mechanisms for managing multiple threads; some use a real-time operating system while others simply run a control loop that coordinates with interrupt service routines. The Gate module provides an RTOS independent interface that allows applications to portably protect shared data structures in multi-threaded environments by simply "entering a gate" prior to using the data and "leaving the gate" once access is no longer required.

Gates are also used internally by the xdc.runtime package. In order to allow the xdc.runtime functions to be called from different threads, it is important that any global data managed by the xdc.runtime modules is updated "atomically". The xdc.runtime package atomically updates global data by always "entering the System gate" (via Gate_enterSystem()) prior to accessing the global data and "leaving the System gate" (via Gate_leaveSystem()) once the update is complete.

While gates make it easy to protect shared data structures and ensure the functional correctness of a multi-threaded application, it is important to minimize the time spent within a gate; the longer a thread operates within a gate the greater the chance that this thread will interfere with the timely operation of other threads in the system. If two (or more) threads need to enter the same gate, all but one will be suspended until the thread in the gate leaves even if the thread inside the gate has lower priority than the blocked threads. Worse, for performance reasons, some gates work by disabling all scheduling while inside the gate; even threads that are not trying to modify the data protected by the gate are potentially affected.

By carefully selecting the type of gate used to protect shared data structures and associating each shared data structure with a unique gate, it is possible to strike a balance between the runtime overhead caused by frequent calls to enter and leave gates and the scheduling latency engendered by unnecessarily blocking the execution of threads that are operating on unrelated data.

The xdc.runtime package

  • enables creation of portable thread-safe code with shared data structures,
  • provides a distinguished "System gate" to efficiently protect very short critical sections,
  • supports gates on both a per-module and a per-instance basis for modules that need to operate within a gate for periods longer than the worst-case scheduling latency allowed by the application, and
  • allows system integrators to configure gates to achieve the proper balance between runtime overhead and scheduling latency for their application.

Architecture

Any module may declare that it is "gated"; i.e., that the module protects internal data shared among multiple threads in the system via an xdc.runtime.Gate instance. Gated modules always have at least one gate instance created implicitly. However, it is possible to override the creation of this gate by explicitly creating it and assigning it to the module's common$.gate configuration parameter during configuration.

Modules enter and leave gates via the methods provided by the xdc.runtime.Gate module. This Gate module provides methods that enable modules to enter (and leave) their gate as well as dynamically create and delete gates associated with their instance objects. Users of gated modules don't need to use these methods (they are for use within the implementation of RTSC modules) and should consult the documentation of each gated module used to understand how best to balance the module's need to protect shared data structures and the application's scheduling latency requirements.

In addition to the services provided to implement thread-safe modules, the Gate module also provides access to the distinguished "System gate" via Gate_enterSystem() and Gate_leaveSystem. In fact, this System gate is the gate associated with the gated xdc.runtime.System module. This one gate is used throughout the xdc.runtime package to serialize access to global data and it's only used when the duration of the critical section is known to be deterministic and very short.

Using the System gate to protect logically independent data structures is contrary to the design principle that, to minimize scheduling latency effects, you should use a unique gate for independent data structures. This exception exists because, if the duration of time required to update these independent structures is always very short (less than any application's maximum scheduling latency requirements), the System gate can be implemented very efficiently by simply disabling all scheduling while inside the gate. While this may sound excessive, it often results in a significant overall performance gain, keeps data space requirements to a minimum with just one gate, and has no impact to scheduling latency.

Deadlocks. Although it is possible to "nest" gates — enter a gate while inside another gate — care should be taken to avoid deadlocks; e.g., thread 1 enters gate a, thread 2 enters gate b, thread 1 tries to enter gate b and blocks waiting for thread 2 to leave, but thread 2 tries to enter gate a and blocks waiting for thread 1 to leave. One way to avoid deadlocks is to ensure that nested gates are always entered in the same order.

Since the System gate is used throughout the xdc.runtime and the modules in this package are widely used, you should never enter another gate while inside the System gate. If another thread enters the same gate and makes a call to an xdc.runtime method, such as System_printf(), there is a risk of deadlock.

The System gate should only be used to protect low-level data structures where the total execution time within the gate has a constant upper bound independent of the data being protected.

Scheduling Latency. Undisciplined use of gates can lead to scheduling latencies that violate a system's real-time constraints. Since the System gate is used to protect a wide variety of independent data structures, it is important to keep the time within the System gate to an absolute minimum. Similarly, when assigning gates to gated modules it's important to minimize sharing gates between different modules; while sharing can reduce your application's data footprint, you risk creating unnecessary scheduling blockages.

Configuration

Users can configure their application to specify

  • on a per application basis, the System gate used to protect global data (including the xdc.runtime shared data),
  • on a per module basis, the gate used to protect the module's global data structures as well as the parameters used to create additional gates used internally by the module to protect the data in its individual instances.

The System gate. Since the System gate is used throughout the xdc.runtime package, it's important to configure the System module's gate before using the xdc.runtime modules in a multi-threaded environment. Fortunately, some RTOS providers automatically configure the xdc.runtime.System gate to ensure correct operation in a multi-threaded environment. For example, if you use the ti.sysbios package, lines similar to the following are effectively added to your configuration by the ti.sysbios package itself:

var System = xdc.useModule("xdc.runtime.System");
var GateHwi = xdc.useModule("ti.sysbios.gates.GateHwi");
System.common$.gate = GateHwi.create();

If the System gate is not configured by some package in the system, it will default to an instance of GateNull. Since GateNull provides no synchronization, it should only be used for modules that are never called by more than one thread at a time. Multi-threaded applications must either

  1. configure the System module's gate with a mutex that serializes all threads that access the xdc.runtime modules, or
  2. ensure that there are no concurrent accesses to the xdc.runtime modules.

It's easy to identify those modules that provide gates; only modules that inherit the xdc.runtime.IGateProvider interface can be used to create gates. For posix-based applications, you can use the Lock module developed in Extending xdc.runtime Gates/Example 1.

For more information about how the System gate is used within the xdc.runtime package, see Multi-Threading Support section of Working with xdc.runtime.

Configuring gated modules. Every gated module, Mod, has two configuration parameters related to gates:

  1. Mod.common$.gate — the gate instance object used by Mod to protect module-wide shared data.
  2. Mod.common$.gateParams — gate instance creation parameters used by Mod to create gates for its instance objects. These parameters are used with the same module that manages the Mod.common$.gate instance.

Suppose there is a heap memory module, say Heap, whose instances manage independent heaps and, to avoid unnecessary scheduling blockages, Heap uses a separate gate per instance to protect each heap. The following configuration script uses a hypothetical gate module named GateSemaphore, with a timeout instance parameter, to provide gates to Heap.

var Heap = xdc.useModule("...Heap");
var GateSemaphore= xdc.useModule("...GateSemaphore");
Heap.common$.gate = GateSemaphore.create();
Heap.common$.gateParams = new GateSemaphore.Params();
Heap.common$.gateParams.timeout = ...;

Examples

In the table below, we provide a examples that illustrate the key capabilities of the Gate module.

Example | Description | Purpose
Example 1 | Using Gate to protect global data | a minimal example to illustrate using Gate in existing code bases

In addition to the "client-side" examples above, the table below lists examples of how to create IGateProvider modules that can be used to manage simple concurrency requirements.

Example | Description | Purpose
Example 1 | posix-based IGateProvider | a simple but complete example of a Gate provider for pthread-based applications

Performance Considerations

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 on a single core CPU 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 during an allocation operation 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.

TODO: describe system gate, gate qualities, and the latency-performance tradeoff

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Using xdc.runtime Logging - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Using xdc.runtime Logging

How to generate and control Log events

Contents

  • 1 Introduction
  • 2 Overview
    • 2.1 Architecture
    • 2.2 Configuration
  • 3 Examples
  • 4 Built-in Loggers
    • 4.1 LoggerBuf Module
      • 4.1.1 Configuration example
    • 4.2 LoggerSys Module
      • 4.2.1 Configuration example
  • 5 Performance Considerations
    • 5.1 Execution Time
    • 5.2 Code Space
    • 5.3 Data Space
    • 5.4 Configuration Options
      • 5.4.1 Making Log_print() or Log_write() deterministic
      • 5.4.2 Eliminating unnecessary strings
      • 5.4.3 Eliminating per-instance and per-module space overhead
      • 5.4.4 Eliminating runtime event control code

Introduction

The xdc.runtime package contains several modules that work together to provide rich application diagnostic support that can be controlled in real-time within deployed systems. This section focuses on those modules that are used to generate "events", enable/disable their generation, and display the events: Log, Diags, and LoggerSys, respectively.

Use of these modules is illustrated below by a series of examples that take advantage of two other distinguished xdc.runtime modules:

  1. Main - a module whose configuration applies to all code that is not a RTSC module; e.g., existing C code bases, and
  2. Defaults - a module whose configuration applies to all RTSC modules (including Main), unless explicitly overridden on a per-module basis.

Overview

The xdc.runtime package's logging support enables developers to embed "printf-like" Log statements virtually anywhere in an embedded real-time code base. In addition to the traditional printf() format string and arguments, each Log statement is associated with a calling module and an "event mask" - a bit mask that identifies the "type" of statement. The Log statements

  • provide all the functionality of a "normal" printf,
  • can be enabled or disabled at runtime on a per-module and per-type basis, and
  • have fixed low execution time independent of the arguments passed.

Applications can be configured to eliminate the data space required for the format strings, permanently disable (or enable) selected statements, eliminate the code space required for runtime control, and provide application-specific handling of the "events" produced by these statements. All of these configuration options are possible without requiring re-compilation of any source code.

Architecture

For the purpose of logging, every line of code in an application is treated as being part of some RTSC module. All code falls into one of three classes:

  1. code that is part of a RTSC module
  2. code that is part of a dynamically registered module. Code can dynamically register itself as a module through the xdc.runtime.Registry module.
  3. all other code. Any code that is not part of a RTSC module or a registered module is considered to be part of the distinguished xdc.runtime.Main module.

All RTSC target modules, including xdc.runtime.Main, have a

  • current "event mask" - a set of event categories that are enabled for the module,
  • an optional ILogger service provider - a module that handles events generated by the module, and
  • an optional string name used to display the source of events

All dynamically registered modules also have an event mask and a required string name.

The Log_print or Log_write methods are used to generate or log "events". These methods are simply in-line macros that conditionally invoke the calling module's underlying ILogger service provider to "handle" the events. This service provider is called only if:

  1. the module has a non-null ILogger service provider, and
  2. the mask argument passed to Log_print (or the mask of the event passed to Log_write) anded with the calling module's current "event mask" is non-zero

The initial value of a module's event mask is specified during configuration and may be changed at runtime via Diags_setMask().

Beyond the parameters passed to Log_print (or Log_write), the id of the module that called Log_print (or Log_write) is communicated to the ILogger service provider so that it knows the source of the events. This information, possibly in addition to a timestamp recorded by the ILogger service provider, can be used to correlate events from multiple sources (even from different CPUs).

Two ILogger service providers are included in the xdc.runtime package:

  1. LoggerBuf - copies events to a circular buffer in a fixed small number of cycles and is suitable for real-time high-frequency event sources, and
  2. LoggerSys - outputs events as they occur using System_printf() and is suitable for initial development or low-rate non-real-time event sources.

Custom ILogger service providers can easily be created to address platform or application specific needs. These custom providers can, of course, filter events and call LoggerBuf or LoggerSys. For information about creating and deploying a custom logger see Extending xdc.runtime Logging.

As part of an application's configuration step, developers "bind" zero or more ILogger service providers to the modules that comprise the application. Each module in a system can have a different ILogger service provider or they can all share the same provider. Events generated by modules without an ILogger service provider are silently ignored.

Configuration

Users of libraries that embed xdc.runtime.Log statements can configure their application to specify:

  • what modules should be "traceable" and whether their Log events are controllable at runtime or only at configuration time
  • on a per-module basis, what ILogger service providers should be used to "handle" the events as they are generated
  • for the ILogger service providers LoggerBuf and LoggerSys, what ITimestampProvider service module to use to timestamp individual events

The ability to configure a unique ILogger service provider for each module in an application together with the xdc.runtime.Main module representing all other code, enables the integrator to separately manage events from all parts of the code base independent of who produced the code.

Since the computation of timestamps is highly platform-specific and the required precision of timestamps is application dependent, the ILogger service providers in the xdc.runtime package can be configured with an appropriate timestamp service provider.

These configuration options make it possible for the system integrator to strike a balance between the need for application runtime visibility against the overhead required for this visibility without making any changes to the code containing embedded Log_print (or Log_write) statements. Even better, these options are possible without requiring re-compilation of any source code making it possible to (re)configure pre-built binary libraries that utilize xdc.runtime.Log methods.

Examples

The best way to understand how to use and take advantage of the logging facilities provided by the xdc.runtime package is to study some simple examples. In the table below, we provide a series of graduated examples that illustrate the key capabilities of logging and provide links to more advanced topics.

Example | Description | Purpose
Example 1 | Classic "hello world" using Log | provide a gentle introduction to basic logging concepts
Example 2 | Events provided by all RTSC target modules | show how users manage the Log events implicitly generated by RTSC modules
Example 3 | Adding logging to existing code bases | show how to add logging by making minimal changes to existing code and how, with almost no extra effort, to provide the same logging "look and feel" as RTSC modules.
Example 4 | Adding logging to RTSC target modules | show how to add logging to RTSC modules in such a way that users can view fully decoded events without any format strings on the embedded target

In addition to the "client-side" examples above, the table below lists examples of how to create ILogger modules that "handle" the events generated by clients. The examples listed below illustrate how one can provide sophisticated application and platform specific capabilities and require a bit more experience with RTSC modules. However, they are simple enough to be used and modified by relative novices.

Example | Description | Purpose
Example 1 | Creating a custom ILogger | show how to create an ILogger to handle and optionally filter Log events

Built-in Loggers

The xdc.runtime package includes two built-in loggers:

  1. LoggerBuf - a logger that simply records events in a memory buffer, and
  2. LoggerSys - a logger that uses System_printf() to output events as they occur.

The following sections briefly describe these loggers and show examples of their use. Extending xdc.runtime Logging describes how to create additional loggers.

LoggerBuf Module

The xdc.runtime.LoggerBuf module provides a logger that stores run-time Log events in a buffer.

This logger captures Log events in real-time to a buffer. The Log events stored in the buffer are unformatted; the log event formatting is deferred. Use LoggerBuf_flush() to process the Log events stored in the buffer and stream the formatted output to stdout.

The implementation of this logger is fast with minimal stack usage making it appropriate for real-time applications. If this logger is used in a preemptive environment, then an appropriate gate must be assigned to the module. For example, if you wish to generate Log events 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 contains the last LoggerBuf_numEntries events. If the bufType is fixed, the log buffer contains the first LoggerBuf_numEntries events since the buffer was cleared.

Configuration example

Configuration example. The following 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() reference documentation for details on specifying the module names.

var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
LoggerBuf.enableFlush = true;

var Defaults = xdc.useModule('xdc.runtime.Defaults');
Defaults.common$.logger = LoggerBuf.create({exitFlush: true});

var Diags = xdc.useModule('xdc.runtime.Diags');
Diags.setMaskMeta("my.pkg.%", Diags.USER1, Diags.RUNTIME_ON);

LoggerSys Module

The xdc.runtime.LoggerSys module routes events to the System_printf() function.

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 System.SupportProxy.

Note that the Log events are processed within the run-time 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.

Configuration example

Configuration example. The following 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() reference documentation for details on specifying the module names.

var LoggerSys = xdc.useModule("xdc.runtime.LoggerSys");

var Defaults = xdc.useModule("xdc.runtime.Defaults");
Defaults.common$.logger = LoggerSys.create();

var Diags = xdc.useModule("xdc.runtime.Diags");
Diags.setMaskMeta("my.pkg.%", Diags.USER1, Diags.RUNTIME_ON);

Performance Considerations

This section provides an overview of the performance overhead you can expect when using the xdc.runtime logging facilities. Generally speaking, the configuration capabilities included allow developers to strike a balance between runtime visibility and overhead for even the most resource constrained systems. Several common configuration options are described in the Configuration Options section below.

Execution Time

Because Log_print and Log_write are inline macros, when events are disabled, the time overhead for these statements is quite low; typically only a few instruction cycles. As a result, leaving these statements in deployed applications is quite practical. When events are enabled, the time overhead is largely a function of the underlying module's ILogger service provider.

For providers like LoggerBuf, even this overhead is small enough to allow most applications to continue to meet their real-time deadlines even while simultaneously capturing logging events. On the other hand, the LoggerSys provider does not simply record event data to a buffer, it "formats" each event as it occurs using System_printf(). While useful during initial development, this processing can be somewhat expensive and should not be used with modules whose methods are time critical.

Runtime control of event generation is supported via Diags_setmask(). Since this method uses a string to "look up" module event masks, its execution time is a function of the number of modules in the system and the lengths of their names. Although relatively efficient, this method should not be used in time sensitive legs of an application.

Code Space

Code space overhead for logging support comes from three places:

  1. the instructions required at each Log_print() / Log_write() call site (to test the current mask and conditionally generate a Log event)
  2. the xdc.runtime modules themselves, and
  3. the underlying ILogger service provider

Although the code space overhead per Log_print() / Log_write() call site is only a few words, thousands of call sites can add up to a significant amount of code. Since "entry", "exit" and "life-cycle" events are added during configuration for RTSC modules (and don't appear in the module's sources), the overhead for this support is 100% controllable by the system integrator via configuration options; on a per module basis, the end user can add or remove varying degrees of logging support.

The code space required for the xdc.runtime library is relatively small (e.g., approximately 2K bytes for the C64) but, even if there are embedded references to the Log_print() / Log_write() functions, the runtime library code can be completely "configured out" of an application by the system integrator; i.e., no recompilation of any sources is required.

Finally, the ILogger service provider's code size is a function of the module used to "handle" Log events. Although only LoggerBuf and LoggerSys are provided by xdc.runtime package, it is expected that customized ILogger service provider will be used to leverage platform-specific communication mechanisms. A practical estimate of the code size overhead is the code size of the larger of the two supplied loggers, LoggerBuf, which is about 2K bytes on a C64 architecture.

Data Space

Data space overhead for logging support comes from three places:

  1. the format strings required at each Log_print() call site and the format strings in each Log_Event
  2. the data space for the module name lookup tables required to support Diags_setMask(), and
  3. one string pointer per "named" instance object to maintain a "human readable" name for these instances

The format strings used for each event can add up to be relatively significant amount of space, especially on very small systems. Using Log_write() in lieu of Log_print() allows these strings to be moved entirely off the target. In addition, since RTSC modules do not need to add Log statements to provide "entry", "exit", or "lifecycle" events, the only significant overhead comes from explicit calls to Log_print(). Judicious use of Log_print() should ensure that this overhead is acceptable for most applications.

To support runtime control of Log events via Diags_setMask() a table of module names is created during configuration. This table is relatively small (approximately two words per module plus a module name string). For systems that do not need runtime control of events, it is possible to disable the generation of this table; see the Configuration Options section below.

Finally, all RTSC modules optionally support the ability to associate a string name with instances. While this can be beneficial for systems with a relatively small number of instances (hundreds), high density systems that need to support thousands of channels don't need (or want) a distinct string name for each instance, for example. Each RTSC module can be separately configured to reserve space for instance names (or not).

Configuration Options

The xdc.runtime logging support offers a variety of configuration options to satisfy the often conflicting performance requirements of different embedded applications. This section summarizes some of these options.

  • every module can have a different ILogger service provider
  • every RTSC instance object can have a "human readable" string name
  • runtime control via Diags_setMask() can be "configured out" of an application
  • event format strings do not need to be stored in the application
Making Log_print() or Log_write() deterministic

Making Log_print() or Log_write() deterministic. When an event is generated by either Log_print() or Log_write(), the execution time overhead is purely a function of the underlying ILogger serive provider. So, to get deterministic low overhead execution times, you must use an appropriate service provider: you can use LoggerBuf or, of course, write your own ILogger service provider. You must then configure the modules in you application to use this logger. The following configuration script fragment sets LoggerBuf to be the default logger for all modules.

var Defaults = xdc.useModule("xdc.runtime.Defaults");
var Logger = xdc.useModule("xdc.runtime.LoggerBuf");
Defaults.common$.logger = Logger.create();
Eliminating unnecessary strings

Eliminating unnecessary strings. Adding "printf-like" statements to a C code base not only increases code space (the instructions to put arguments in registers and call a function) but it can significantly increase an application's data space requirements; each "printf-like" format string is added to a data section reserved for constants and the size of section can grow quickly as more and more logging statements are added. While it's not possible to stop the strings used in Log_print() statements from taking up space in the target, it is possible to completely eliminate the format strings by used by Log_write().

In lieu of a mask and a format string as initial arguments, Log_write() takes a Log_Event. A Log_Event is an opaque reference to a structure that contains a mask and a format string. How does this help? By eliminating direct references to literal strings in the C sources, the C compiler only sees an integer index being passed to Log_write() and never needs to allocate space for the constant format string. During configuration, it's possible to generate a table of all Log_Event format strings, define Log_Event as an index into this table, and arrange for this table to loaded in a separate output section. Since this table is only needed when the event is "decoded", the table (with the strings) does not need to be loaded into the target's memory; events can be decoded by host-based development tools which simply lookup the event based on the index supplied by Log_write(). This table of strings is managed by the xdc.runtime.Text module.

To eliminate the runtime strings you must configure the Text module to place all strings in a special section that will not be loaded onto the target.

var Text = xdc.module("xdc.runtime.Text");
Text.isLoaded = false;

In addition to format strings used in Log_print() statements, string names of all modules and (optionally) instances are also maintained on the target. Again, in systems where space is a precious resource, it is sometimes necessary to eliminate these "conveniences" in favor of other critical data. The next section shows how to not only eliminate the strings but also the one-word per-instance and per-module overhead to hold a pointer to these strings.

Eliminating per-instance and per-module space overhead

Eliminating per-instance and per-module space overhead. To facilitate deciphering an application's Log events, all RTSC modules can optionally reserve an extra word to hold a pointer to a string name for each instance. Unless you specify otherwise, space required to hold a pointer to a name is not reserved in instance objects and, as a result, the "life-cycle" events do not provide the names of the instances that were specified in the application. Make sure you have not inadvertently enabled instance names via the namedInstance configuration parameter.

On the other hand, all RTSC modules do have a string name that is part of the target runtime (by default). You can eliminate these names for all modules, except for Memory and Main, by setting the and namedModule configuration parameter to false.

   var Defaults = xdc.module("xdc.runtime.Defaults");
   Defaults.common$.namedModule = false;

Since the overhead of two module names is quite small and both Memory and Main are referenced in many Error events, to eliminate the names for Main and Memory you must explicitly set their common$.namedModule configuration parameter to false.

   var Main = xdc.module("xdc.runtime.Main");
   Main.common$.namedModule = false;

   var Memory = xdc.module("xdc.runtime.Memory");
   Memory.common$.namedModule = false;
Eliminating runtime event control code

Eliminating runtime event control code. The ability to control event masks at runtime is a common requirement but, in extremely resource constrained systems it may not be a luxury that can be afforded. Eliminating this support is possible by setting the Diags.setMaskEnabled configuration parameter to false.

You must also not set any module's event types to Diags.RUNTIME_*; otherwise the setMaskEnabled will be implicitly reset to true and you will not see the code savings you expect.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Using xdc.runtime Memory - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Using xdc.runtime Memory

Introduction to memory management

Contents

  • 1 Introduction
  • 2 Overview
    • 2.1 Architecture
    • 2.2 Configuration
  • 3 Examples
    • 3.1 Using design-time heaps
    • 3.2 Static buffer allocation
    • 3.3 Runtime heap creation
  • 4 Built-in Heap Managers
    • 4.1 The HeapMin Module
      • 4.1.1 Examples
    • 4.2 The HeapStd Module
      • 4.2.1 Examples
  • 5 Performance Considerations
    • 5.1 Execution Time
    • 5.2 Code Space
      • 5.2.1 Static-only systems
      • 5.2.2 Create-only systems

Introduction

The xdc.runtime package contains several modules that work together to provide modular and extensible memory management support. This support is centered around the Memory module that enables the application to allocate and free memory. All memory allocations are eventually "handled" by a module that implements the IHeap interface. These modules are responsible for managing a region of memory in a manner appropriate for the application.

Two such modules are provided in the xdc.runtime package:

  1. HeapMin - a module that simply maintains a "high water" mark for each managed memory block and never frees memory, and
  2. HeapStd - a module that uses the ANSI C standard library functions malloc() and free().

While it is possible to create new implementations of the IHeap interface that provide more sophisticated or even application-specific memory management policies, most users will rely on IHeap implementations from their preferred RTOS (such as TI's BIOS 6.0). For information about creating and deploying a custom heap see Extending xdc.runtime Memory.

Overview

Memory management within embedded systems often requires

  • explicit management of distinct memory "classes";
  • control over alignment of critical buffers;
  • deterministic memory allocation, support for variable length allocation; and in some cases
  • the ability to eliminate _all_ runtime allocation and freeing of memory

Explicit use of different "classes" of memory, such as high-speed on-chip memory verses bulk external DRAM, is critical for embedded real-time applications. For example, careful use and efficient management of precious high-speed on-chip memory often determines whether an application meets its real-time deadlines or not. Even with different classes of memory, to get full entitlement from modern CPU cores, it is important that critical buffers be allocated on appropriate address boundaries - either for improved cache performance or to take advantage of specialized "zero overhead" looping constructs.

Different applications have widely differing "policy" requirements. For example, traditional embedded applications do not need, nor can they afford, extra memory management code to allow the system to automatically free memory from a terminated thread. On the other hand, some embedded systems allow for the execution of untrusted (but not malicious) code. In this case, the robustness requirements of the system all but require a memory manager that can track the ownership of every allocated memory block. Similarly, because real-time applications provide "guaranteed" response times for certain events and variable length memory allocators often have execution times that vary as a function of the number and size of previous allocations, real-time applications generally take one of two approaches to memory management:

  1. use "fixed size" block allocation algorithms which have deterministic execution times but have poor memory utilization, or
  2. use a distinguished "low priority" thread to perform all functions that require memory allocation so the "real-time" threads never stall waiting to allocate or free memory.

From these examples, it's clear that embedded systems have unique memory management requirements and that no one memory allocation algorithm is appropriate for all embedded applications.

The xdc.runtime package provides core memory management functions suitable for virtually any embedded application. In particular, it includes a single module, Memory, that supports

  • multiple heaps and allows each heap to manage its heap in a memory-specific or application-specific manner;
  • aligned allocations on any boundary supported by the underlying hardware;
  • static placement of buffers required by other modules that create objects at configuration-time; and
  • zero-space-overhead allocations that do not require "allocation header" information to be retained on each allocation.

Architecture

The Memory module's methods take a first parameter that identifies the heap from which to allocate memory. This parameter may be NULL and, in this case, a "default heap" will be used. The "default heap" is specified by the developer by setting the Memory module's defaultHeapInstance configuration parameter. If this parameter is not explicitly set by the developer, an instance of xdc.runtime.HeapStd (of size Memory.defaultHeapSize) will be assigned to this parameter.

The Memory module itself does very little work: it simply delegates "real" memory management to the specified heap instance object. This makes clients of Memory portable, but where do the heap instances get created? If they are created by the application, the code that creates these instances is not portable to other applications; because it contains direct references to specific heap managers. Of course, applications can factor this "non portable" code into a single place and pass IHeap instance handles to other parts of the application that need memory allocation services. But, an even better solution is to entirely eliminate the runtime creation of IHeap instances in favor of static creation. In this case, not only do we eliminate unnecessary code, but we improve the portability of the code by eliminating direct references to application-specific heap managers.

Memory simply provides the "glue" between portable clients and underlying modules, heap managers, that actually manage the memory. But the xdc.runtime package only provides two heap managers, HeapMin and HeapStd, and these modules have limited usefulness; HeapMin does not reuse freed memory and HeapStd has no advantage over malloc() and free(). So where do you get "real" heap managers that realize the benefits promised by the xdc.runtime package's memory architecture? Heap managers are available from RTOS providers (such as TI's DSP/BIOS 6.x) and Extending xdc.runtime Memory describes how to create new heap managers.

Configuration

Users of libraries that reference the xdc.runtime.Memory module can configure their application to specify:

  • on a per-system basis, the default heap instance object to use when "managing" memory;
  • on a per-module basis, what IHeap service providers should be used to "manage" the memory allocated by the module for its instances; and
  • on a per-module basis, whether instance objects are only statically created, only created but never freed, or are both created and deleted at runtime.

The ability to configure a unique IHeap memory manager for each module that supports instances together with the use of NULL to represent the distinguished heap instance xdc.runtime.memory.defaultHeap, enables the integrator to separately manage memory from all parts of the code base independent of who produced the code.

These configuration options make it possible for the system integrator to strictly control which parts of the system get precious high-speed memory without making any changes to or even re-compiling the code containing embedded Memory_alloc statements. As a result, it possible to leverage these options and (re)configure even pre-built binary libraries that utilize xdc.runtime.Memory methods.

Examples

This section provides a number of code "fragments" illustrating how to leverage the xdc.runtime package's Memory module.

Using design-time heaps

Using design-time heaps. To assist in creating portable modules, every module that supports instances has a heap instance that can be set at configuration time and referenced "anonymously" at runtime; see the instanceHeap field of IModule.common$. Modules access their heap instance via Mod_Object_heap(), where Mod is the name of the calling module. C code that is not part of a module can also use these heap instances. In addition, the Memory module accepts NULL as a heap handle; in this case, the Memory module will use the design-time heap specified by the Memory.defaultHeapInstance configuration parameter.

The following code fragment illustrates how these design-time heaps are used.

app.c (fragment)

#include <xdc/runtime/Memory.h>
#include <xdc/runtime/LoggerBuf.h>

    :
/* allocate from the LoggerBuf module's heap */
Ptr buf0 = Memory_alloc(LoggerBuf_Object_heap(), ...);

/* allocate from the default heap */
Ptr buf1 = Memory_alloc(NULL, ...);

The configuration code necessary to create instances for the default heap and the LoggerBuf module's heap now contains references to the specific IHeap implementations.

app.cfg (fragment)

var Memory = xdc.useModule("xdc.runtime.Memory");
var LoggerBuf = xdc.useModule("xdc.runtime.LoggerBuf");
var Heap1  = xdc.useModule("...");
var Heap2  = xdc.useModule("...");

/* define "default" heap for NULL instance allocations */
Memory.defaultHeapInstance = Heap1.create();

/* define a specific heap for the LoggerBuf module */
LoggerBuf.common$.heapInstance = Heap2.create();

If a module's heapInstance is not explicitly set, it defaults to NULL. Since calling the Memory methods with a NULL heap instance is equivalent to using the "default heap" and each module's default heap is NULL, setting Memory.defaultHeapInstance effectively sets the default heap for all modules in the system.

Static buffer allocation

Static buffer allocation. In addition to the runtime memory allocation services offered, the Memory module also supports placement and alignment of static buffers via the meta-domain function Memory.staticPlace(). This method is typically used when implementing a RTSC module that requires the creation and placement of a static buffer.

For examples of its use see acme/filters/Fir.xs in RTSC Module Primer Lesson 9 and SysBuf.xs in Extending xdc.runtime System Example 1.

Runtime heap creation

Runtime heap creation. There are times when it's necessary to create a heap at runtime. Suppose, for example, that you need to create a single ROM image that must support multiple platforms with differing memory maps. In this case, the size of the memory managed by the heap can not be known until the application runs.

#include <xdc/runtime/HeapMin.h>
#include <xdc/runtime/Memory.h>
    :
IHeapMin_Handle heap; /* dynamically sized heap used by app */

int main(int argc, char *argv[])
{
    HeapMin_Handle heapMin;
    HeapMin_Params params;

    /* create a heap from a specific heap manager */
    HeapMin_Params_init(&params);
    params.size = ...;
    heapMin = HeapMin_create(&params, NULL);
    /* convert HeapMin handle to abstract IHeap handle */
    heap = HeapMin_Handle_upCast(heapMin);
        :
}
    /* allocate from the new heap */
    Ptr buf1 = Memory_alloc(heap, ...);

The call to HeapMin_create() requires allocation of memory from a heap. In this case it will allocate memory from a heap associated with the HeapMin module by the application's configuration script. You can either create an initial HeapMin instance at configuration time large enough to bootstrap the application or you can use HeapMin to "construct" a heap instance from a statically allocated structure. Recall that all modules that support instances also support the initialization of a static structure as a way to create runtime instances (see Lesson 4 of the RTSC Module Primer).

The example above can be re-written to avoid all heap allocations prior to the first call to Memory_alloc() with the runtime created heap instance.

int main(int argc, char *argv[])
{
    HeapMin_Handle heapMin;
    HeapMin_Params params;
    HeapMin_Struct heapStruct;

    /* create a heap from a specific heap manager */
    HeapMin_Params_init(&params);
    params.size = ...;
    HeapMin_construct(&heapStruct, &params, NULL);
    /* convert HeapStruct to a HeapMin_Handle handle */
    heapMin = HeapMin_handle(&heapStruct);
    /* convert HeapMin handle to abstract IHeap handle */
    heap = HeapMin_Handle_upCast(heapMin);
        :
}

Built-in Heap Managers

The xdc.runtime package includes two built-in heap managers:

  1. HeapMin - a module that simply maintains a "high water" mark for each managed memory block and never frees memory, and
  2. HeapStd - a module that uses the ANSI C standard library functions malloc() and free().

The following sections briefly describe these heap managers and show examples of their use. Extending xdc.runtime Memory describes how to create additional heap managers.

The HeapMin Module

The HeapMin module provides a simple "growth-only" heap, meaning that it does not support Memory_free(). It is intended as a minimal footprint heap implementation.

HeapMin services any size allocation request. Attempting to free memory back to a HeapMin instance results in an error.

Examples

Examples. The following configuration example statically creates a HeapMin instance named myHeap:

var HeapMin = xdc.useModule("xdc.runtime.HeapMin");
var params = new HeapMin.Params();
params.size = 1024;

/* Create heap as global variable so it can be used in C code */
Program.global.myHeap = HeapMin.create(params);

The following C code fragment dynamically creates a HeapMin instance named myHeap.

#include <xdc/runtime/HeapMin.h>

static char buf[1024];
HeapMin_Handle myHeap;

HeapMin_Params params;
HeapMin_Params_init(&params);
params.size = 1024;
params.buf = (Ptr)buf;
myHeap = HeapMin_create(&params, NULL);

The HeapStd Module

The HeapStd is a wrapper for the ANSI C Standard Library malloc() and free() functions. As a consequence, allocating from a HeapStd instance requires the "align" parameter passed to Memory_alloc() to be less than or equal to the value returned from Memory_getMaxDefaultTypeAlign.

Examples

Examples. The following configuration example statically creates a HeapStd heap instance named myHeap.

var HeapStd = xdc.useModule("xdc.runtime.HeapStd");

/* Create heap as global variable so it can be used in C code */
Program.global.myHeap = HeapStd.create({size: 1024});

The following C code fragment dynamically creates a HeapStd instance named myHeap.

#include <xdc/runtime/HeapMin.h>

HeapStd_Params params;
HeapStd_Handle myHeap;

HeapStd_Params_init(&params);
params.size = 1024;
myHeap = HeapStd_create(&params, NULL);

Performance Considerations

This section provides an overview of the performance overhead you can expect when using the xdc.runtime memory facilities. Generally speaking, the configuration capabilities allow developers to minimize the code space footprint by eliminating unnecessary functionality as well as tightly control which memory is used by each part of the system and how each memory region is managed.

Execution Time

The execution time of the xdc.runtime.Memory methods is almost entirely a function of the underlying IHeap module. For example, the xdc.runtime.HeapMin memory manager is extremely fast and deterministic. However, it does not support freeing of memory. The xdc.runtime.HeapStd module, on the other hand, has execution times dominated by the underlying ANSI C Standard Library's malloc() and free() functions.

Code Space

As with execution time, the code space overhead is largely determined by the underlying IHeap manager(s) used in the application. However, there are additional configuration options that can further reduce an application's code space requirements. Provided that an application does not need to delete any created instances or, even better, never needs to create instances at runtime, it is possible to reduce the code space by setting the xdc.runtime.Defaults.common$.memoryPolicy configuration parameter appropriately. There are two options that can significantly decrease your code space requirements:

  1. STATIC_POLICY - for "static-only" systems, where all instance objects managed by the module must be created at configuration time, and
  2. CREATE_POLICY - for "delete-only" systems, where instance objects managed by the module may be created at runtime but are never deleted.
Static-only systems

Static-only systems. To absolutely minimize the memory management code-space overhead in an application, eliminate all runtime create calls (by replacing them with configuration-time create calls) and set the memoryPolicy for all modules to be STATIC_POLICY. For example, the following lines in a configuration script set the default memoryPolicy for all modules to STATIC_POLICY.

var Types = xdc.useModule("xdc.runtime.Types");
var Defaults = xdc.useModule("xdc.runtime.Defaults");
Defaults.common$.memoryPolicy = Types.STATIC_POLICY;

Any attempt to call a create operation from a module that has its memoryPolicy set to STATIC_POLICY will result in a fatal runtime error. For example, if you use the configuration statements above and any part of your application calls LoggerBuf_create(), your application with terminate with the following error messages.

xdc.runtime.LoggerBuf: generic error: create policy error
xdc.runtime.Error.raise: terminating execution

Create-only systems

Create-only systems. There are times when it is simply more convenient to create instance at runtime during an application initialization phase and never delete the instances; objects are deleted by rebooting the application. In this case, code for the Memory manager APIs must be present - otherwise it would not be possible to link the application. However, since memory never needs to be freed, the underlying heap managers can be very simple (and small).

The following lines in a configuration script set the default memoryPolicy for all modules to CREATE_POLICY.

var Types = xdc.useModule("xdc.runtime.Types");
var Defaults = xdc.useModule("xdc.runtime.Defaults");
Defaults.common$.memoryPolicy = Types.CREATE_POLICY;

Any attempt to call a delete operation from a module that has its memoryPolicy set to CREATE_POLICY will result in a fatal runtime error. For example, if you use the configuration statements above and any part of your application calls LoggerBuf_delete(), your application with terminate with the following error messages.

xdc.runtime.LoggerBuf: generic error: delete policy error
xdc.runtime.Error.raise: terminating execution
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Using xdc.runtime Timestamps - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Using xdc.runtime Timestamps

How to get and use timestamps

Contents

  • 1 Introduction
  • 2 Overview
    • 2.1 Architecture
    • 2.2 Configuration
  • 3 Examples
  • 4 Built-in Timestamp Providers
    • 4.1 The TimestampStd module
    • 4.2 The TimestampNull module

Introduction

The xdc.runtime.Timestamp module, as the name suggests, provides timestamping services. This module can be used for benchmarking code, adding timestamps to Log events for correlation with other system events, monitoring real-time performance, etc.

Overview

By definition, real-time systems require some means to track and measure elapsed time. However, different systems use very different methods. Some systems leverage platform-specific timer peripherals while others use application-specific data streams that are known to produce data at a fixed rate (i.e., telephony TDM data). The choice of how to measure time is application and platform specific, so it is important that the timer services provided by xdc.runtime enable the system integrator to specify an appropriate time source.

In addition to variations in how time is measured, different applications have very different precision and range requirements. Applications that only require millisecond precision often don't require more than 32-bits of range (almost 50 days), whereas measurements used to causally relate events in a multi-core system requires near nanosecond precision (yielding less than 5 seconds of range from a 32-bit value). In fact, it is not unusual for a single application to require more than one timer with different precision and range requirements.

Architecture

Although the Timestamp module provides two methods for acquiring a timestamp, Timestamp_get32() and Timestamp_get64(), 64-bit timestamps may not be supported on all devices. In this case, the upper 32-bits of Types.Timerstamp are simply set to zero. The values returned by these methods are in implementation-dependent units called "cycles".

The Timestamp module also provides a Timestamp_getFreq() method that returns the frequency of the timestamp counter in Hz. This method can be used to convert the numbers returned by Timestamp_get32() and Timestamp_get64() (cycles) to actual time units (milliseconds).

In order to support multiple timestamp modules, each providing different ranges and precisions, the interface implemented by Timestamp is formally specified by (i.e., inherited from) xdc.runtime.ITimestampClient. By separately defining the ITimestampClient interface from the Timestamp module, multiple "timestamp providers" each implementing the same interface (ITimestampClient) can be present in an application.

Timestamp values returned by different timestamp providers can not be directly compared. If you need to compare values between different providers, you must use Timestamp_getFreq() to first convert the timestamps to units of time.

Since the xdc.runtime package can only provide portable C sources and mechanisms for generating timestamps are inherently platform-dependent, the Timestamp module can be configured to use a platform or application-specific "timestamp provider". In effect, the Timestamp methods simply call the methods of the timestamp provider specified by the application's configuration script.

Configuration

The Timestamp module has a single configuration parameter, named SupportProxy, of type ITimestampProvider. Depending on the provider used, the underlying counter may be implemented quite differently; e.g., it may be a software timer, a 64-bit dedicated counter in the CPU's core, or a 32-bit counter that is part of a timer peripheral.

Built-in Timestamp Providers describes the timestamp providers included in the xdc.runtime package and illustrates their use. One such provider, xdc.runtime.TimestampNull, can be used when timestamp services are not needed by the application. The TimestampNull module always returns a timestamp of ~0. In this case, any modules that use xdc.runtime.Timestamp will see an unchanging timestamp but the overhead of getting the timestamp is negligible.

TimestampNull is the default timestamp provider for the Timestamp module. As a result, unless you explicitly configure the Timestamp.SupportProxy parameter, all timestamps returned by Timestamp will be 0.

Extending xdc.runtime Timestamps describes how to create new custom timestamp providers that can, for example, leverage platform-specific timer capabilities.

Examples

The following configuration script shows how to "bind" an implementation of the underlying timestamp services to the Timestamp module. This configuration script is used for the remainder of the C applications in this section.

app.cfg

var Timestamp = xdc.useModule("xdc.runtime.Timestamp");
Timestamp.SupportProxy = xdc.useModule("xdc.runtime.TimestampStd");

The following C fragment calculates a time delta based on timestamp values. Note that the units returned by Timestamp_get32() and Timestamp_get64() are implementation dependent; timestamp values from different timers can not be compared, even if both timers are on the same CPU.

app.c

#include <xdc/runtime/Timestamp.h>

UInt32 time1, time2, delta;

time1 = Timestamp_get32();
callLongFunction();
time2 = Timestamp_get32();
delta = time2 - time1;

This next C example uses Timestamp_getFreq() to print a message every second. Although this application is impractical, it illustrates the use of Timestamp_getFreq() to measure real elapsed time. Timestamp_getFreq() can also be used to convert timestamps from different timers to a common unit (such as milliseconds) so these values can be compared.

app.c

#include <xdc/runtime/Types.h>
#include <xdc/runtime/Timestamp.h>
#include <assert.h>

main ()
{
    ...
    Types.FreqHz freq;

    Timestamp_getFreq(&freq);

    /* works only for timestamps with 32-bit frequencies */
    assert(freq.hi == 0);

    for (;;) {
        UInt32 start = Timestamp_get32();
        while ((Timestamp_get32() - start) < freq.lo) {
            ; /* do nothing */
        }
        System_print("A second has elapsed");
    }
    ...
}

This example also illustrates an important point about portability. Modern processors often supply timestamp registers that track the number of CPU clock cycles since the last reset. These same processors may require more than 32 bits to represent the number of CPU cycles per second. As a result, applications should take care when converting from a timestamp value to real time units; don't assume that the timestamp frequency is less than 4294967296 (= 2^32).

Built-in Timestamp Providers

The xdc.runtime package includes two built-in timestamp providers:

  1. TimestampNull - a timestamp provider that always returns a timestamp of 0, and
  2. TimestampStd - a timestamp provider that uses the ANSI C Standard Library function clock() to obtain timestamps.

These modules are sufficient for early development but, because they are written to be 100% portable, they don't take advantage of any platform-specific features (such as device-specific instruction counters). Fortunately it's easy to create a custom timestamp provider that takes full advantage of your platform's execution environment and can be bound to Timestamp as easily as TimestampNull or TimestampStd. Extending xdc.runtime Timestamps contains more details about how to create custom timestamp modules and includes a simple example that can easily be extended to leverage unique platform capabilities.

The TimestampStd module

The TimestampStd module. During debugging, you may plug Timestamp.SupportProxy with xdc.runtime.TimestampStd, which simply calls the ANSI Standard C runtime function clock(). For example:

var Timestamp = xdc.useModule("xdc.runtime.Timestamp");
Timestamp.SupportProxy = xdc.useModule("xdc.runtime.TimestampStd");
The TimestampNull module

The TimestampNull module. If timestamps are only used during debugging (to embed time values in Log events, for example), you can plug Timestamp.SupportProxy with xdc.runtime.TimestampNull to keep the time and space overhead for the Timestamp module to an absolute minimum.

var Timestamp = xdc.useModule("xdc.runtime.Timestamp");
Timestamp.SupportProxy = xdc.useModule("xdc.runtime.TimestampNull");
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Extending xdc.runtime Gates - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Extending xdc.runtime Gates

How to provide mutual exclusion gates

Contents

  • 1 Introduction
  • 2 Overview
    • 2.1 Architecture
    • 2.2 Configuration
  • 3 Examples
  • 4 See also

Introduction

The xdc.runtime package manages a few global data structures that must be protected in multi-threaded environments. Since the xdc.runtime package requires a mechanism to protect concurrent access to data and this is a common requirement for multi-threaded applications, the xdc.runtime package

  • provides a module, Gate, that enables applications to easily serialize access to shared data structures, and
  • defines an interface, IGateProvider, that enables you to "extend" or port the xdc.runtime package to support any multi-threaded environment.

In the sections below, we show how to port the xdc.runtime package to virtually any multi-threaded environment. This not only enables use of the xdc.runtime modules in a multi-threaded environment, but also enables the use of "thread-aware" modules that rely exclusively on the xdc.runtime services for synchronization services to also be used in such an environment.

Overview

Concurrency support is provided by the xdc.runtime package via "gates", simple mutexes that can be recursively acquired by the same thread.

With the exception of "lock free" data structures, mutexes are necessary to protect shared data structures. But not every application allows multiple threads to call every function in a system and, as a result, some applications don't require protection for all modules that manage sharable data; just because data managed by a module is sharable does not mean that it's shared in every application. Of course a module producer can't know whether their module(s) will be concurrently accessed, so they must implement their module assuming that it will be. The consequence is that single threaded applications, and even well structured multi-threaded applications, incur unnecessary overhead of locking and unlocking mutexes around data that are never accessed concurrently. This performance verses multi-threading support tradeoff can be resolved if the overhead of the mutex can be made very low.

Short duration locks can often be implemented efficiently using platform-specific services; e.g., locks on uni-processors systems are very efficiently implemented by disabling all interrupts on entry and restoring interrupt state after the operation is complete. Some processors, such as TI's C6000 CPUs can disable and restore interrupts around short sections with just 1 cycle of overhead. Because of the low overhead of these mechanisms, the unnecessary overhead incurred by some applications can be largely ignored. However, it's important to keep in mind that execution time overhead is not the only performance metric for real-time systems. Response time latencies are also critically important and a module that disables interrupts for even a micro-second may be unacceptable.

Depending on the operation required on shared data, it may be necessary to allow a thread to be preempted while it holds one or more locks. But locks with this property generally require much greater overhead and are operating system specific. So we're back to the problem of imposing unnecessary overhead on some users and the module producer must reimplement the module for every operating system used by her customers.

RTSC enables module providers to write their modules in such a way that they

  • are 100% operating system independent,
  • enable integrators to eliminate unnecessary execution time overhead, and
  • can be delivered as binary libraries; i.e., they don't require re-compilation by the end user.

In short, module providers can write their code once for all application environments and system integrators can eliminate unnecessary synchronization overhead on a per module basis.

Architecture

RTSC modules that manage data that may be concurrently accessed must be designed with synchronization overhead and scheduling latency considerations in mind. The System gate is used to protect very short duration operations (via Gate_enterSystem() and Gate_leaveSystem()). If a module requires a longer duration gate, it declares that it is "gated" via the @Gated attribute in the module's specification. In so doing, the system integrator has the opportunity to assign an appropriate gate to the module. If a gated module will be concurrently accessed you must assign an appropriate IGateProvider instance to the module. If, on the other hand, you know that a gated module is never accessed concurrently, you can assign an instance of the GateNull module to the module's .common$gate configuration parameter and avoid the time and space overhead associated with a non-trivial gate.

The xdc.runtime.System module is gated and the xdc.runtime.Gate module allows other modules to use the "System gate"; i.e., the gate associated with the system module.

Configuration

If the xdc.runtime package is used in a multi-threaded environment you must configure the xdc.runtime.System module's gate with a gate that only allows one thread at a time to operate inside the gate. Some Real-Time Operating Systems (RTOS), such as DSP/BIOS, automatically configure the System module's gate to allow any thread (even ISRs) to use the xdc.runtime. If you are not using such an RTOS, you'll have to find (or create) a module that implements the IGateProvider interface, and use this module to create an appropriate gate for the System module.

var Lock = xdc.useModule("examples.runtime.gates.Lock");
System.common$.gate = Lock.create();

Examples

In the table below, we list examples that illustrate the key requirements of gate providers.

Example | Description | Purpose
Example 1 | Simple pthread-based IGateProvider module | illustrate a module that allows xdc.runtime to be used in pthread-based applications

See also

Using xdc.runtime Gates | How to serialize access to shared data structures
XDCspec - @Gated | This module has a gate

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - @Gated - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @Gated

This module has a gate

A module with the Gated attribute has an xdc.runtime.Gate instance that it uses to serialize access to internally managed "shared" data structures. Unless the user's configuration script explicitly initializes a gated module's gate, a gate is implicitly created for the module during configuration. The gate created in this situation is determined by the xdc.runtime.Defaults.common$.gate configuration parameter.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Extending xdc.runtime Logging - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Extending xdc.runtime Logging

How to create customized Log Event service providers

Contents

  • 1 Introduction
  • 2 Overview
    • 2.1 Architecture
    • 2.2 Configuration
  • 3 Examples
  • 4 See also

Introduction

The xdc.runtime package contains several modules that work together to provide rich application diagnostic support that can be controlled in real-time within deployed systems. This diagnostic support is centered around APIs that enable the application to generate or control the generation of Log "events". Every such event is eventually "handled" by a module that implements the ILogger interface. These modules are responsible for recording, displaying, or transmitting the event as appropriate for the application.

Two such modules are provided in the xdc.runtime package:

  1. LoggerBuf - a module that manages a circular memory buffer where events are stored, and
  2. LoggerSys - a module that interprets each event as it occurs and outputs the result via System_printf().

In addition, it is possible to create new implementations of the ILogger interface that leverage platform or application-specific capabilities. For example, a logger may transmit the events via existing application communication links, filter events for special handling, or record them to a mass storage device.

In the following sections we focus on how to create modules that implement the ILogger interface and show how these modules fit into the overall event logging architecture of the xdc.runtime package.

Overview

The Log module provides an interface that allows any client code to embed statements that conditionally generate "diagnostic" events. These events are "handled" by an application-specific or even platform-specific, event "logger". This architecture allows code that generates events to be developed and delivered independently of code that handles events. The handling of events is often application or platform specific:

  • depending on the system hardware platform, events may be handled by the same processor generating the event or events may need to be transmitted to other processors in the system for display;
  • depending on the application's real-time requirements, events may be displayed as they occur or may need to be deterministically buffered and displayed "in the background" by a separate low priority thread.

Regardless of how events are handled, the code generating the events need never change or even be re-compiled.

Architecture

All event "loggers" are modules that implement the ILogger interface.

Source code that embeds calls to Log_write() or Log_print() enables integrators to conditionally enable and disable the generation of events at these call sites. The events generated by these calls include call site information. In particular, the module ID of the caller of Log_write() (or Log_print()) is encoded in the event that is passed to the underlying ILogger associated with the module. This not only enables loggers to conditionally handle events from different parts of the system, it keeps the number of parameters to the embedded Log_write (and Log_print()) methods to a minimum - making their presence in the code stream less intrusive.

  • Both Log_print() and Log_write() "compose" events that are then passed to an underlying "logger".
  • Loggers are responsible for "handling" events; e.g., storing, interpreting, or displaying each event.
  • Loggers are provided with the event, which encodes the "event ID" and the event's diags mask. They are also provided with the module ID of the call site.
  • The logger used to handle the event is determined by the module containing the call site.
    • If the call site is in code associated with a statically configured module, the logger associated with that module is used.
    • If the call site in code which is associated with a dynamically 'registered' module the logger associated with the xdc.runtime.Registry module is used.
    • If the call site is not in any module, the logger associated with the xdc.runtime.Main module is used.

The figure below illustrates the flow of control that results from a simple Log_print0() statement in the application all the way down to an ILogger module that "handles" the resulting Log event.

Configuration

All RTSC modules can be configured with a unique logger. In addition, any code that is not in a RTSC module can be dynamically registered as a module through the xdc.runtime.Registry module. Finally, any code that is not associated with a RTSC module or a dynamically registered module is implicitly associated with the xdc.runtime.Main module. So, from the point of view of logging, it's possible to consider all code in an application as being part of some module with a potentially unique logger.

Of course, most systems do not create a unique logger for each module but, as we'll see in the examples, the ability to associate a unique logger for selected modules can be extremely useful. Not only is it possible to strike a different balance between logging overhead with system visibility within different sub-systems of an application, but you can also "chain" loggers to provide sophisticated application-specific event filtering and triggers (see Example 1).

The most common configuration, illustrated in the figure below, is to have a single logger for the entire application. In this figure, the application consists of the modules xdc.runtime.Main and ModA through ModZ, where xdc.runtime.Main represents all code not in any module and ModA is a module that implements the xdc.runtime.ILogger interface.

Logger configuration architecture

The logger field shown for each module is simple a pointer to an instance object created by a module that implements the ILogger interface. In addition, each call to a Log function implicitly references the logger pointer associated with the module in which the Log function is called. By assigning different logger pointers to selected modules, the system integrator can "redirect" the output of the Log statements for these modules without ever having to recompile these modules.

The configuration script that corresponds to this figure is shown below.

var Defaults = xdc.useModule("xdc.runtime.Defaults");
var ModA = xdc.useModule("...ModA");
Defaults.common$.logger = ModA.create(); /* create an anonymous ILogger instance (say inst#0) */

Notice that although we've used the xdc.runtime.Defaults module to set a default logger for "all" modules (exactly as we did in hello.cfg Example 2), the ModA module's logger does not point to this logger instance. Why wasn't the logger for ModA also set to the specified default logger?

The xdc.runtime package does not use the common$.logger setting of the Default module to enable logging on modules that implement the ILogger interface.

Imagine if we enabled "entry" trace on ModA and its logger were set to an instance created by ModA. Although it may not be obvious at first, your application would enter an infinite recursion on the first call to any Log operation and you'd be in for a long day of debugging. You might wonder why we would even allow the assignment of a logger instance to an ILogger module. As we'll see in Example 1, the ability to assign an ILogger instance to an ILogger module allows you to easily create and use powerful application-specific Log event filters in your application.

Examples

The best way to understand how to use and take advantage of loggers is to study some simple examples. In the table below, we provide examples that illustrate the key requirements of loggers and provide links to more advanced topics.

Example | Description | Purpose
Example 1 | Simple Log_Event filter | illustrate the ability to add custom event filtering without changing any existing sources

See also

Using xdc.runtime Logging How to generate and control Log events

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Extending xdc.runtime Memory - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Extending xdc.runtime Memory

How to create customized heap managers

Contents

  • 1 Introduction
  • 2 Overview
    • 2.1 Architecture
    • 2.2 Configuration
  • 3 Examples
  • 4 Related Topics

Introduction

The xdc.runtime package contains several modules that work together to provide modular and extensible memory management support. This support is centered around the Memory module that enables the application to allocate and free memory. All memory allocations are eventually "handled" by a module that implements the IHeap interface. These modules are responsible for managing a region of memory in a manner appropriate for the application.

Two such modules are provided in the xdc.runtime package:

  1. HeapMin - a module that simply maintains a "high water" mark for each managed memory block and never frees memory, and
  2. HeapStd - a module that uses the ANSI C Standard Library functions malloc() and free().

In addition, it is possible to create new implementations of the IHeap interface that provide more sophisticated or even application-specific memory management policies. For example, a heap may limit the memory allocated by specific tasks, monitor ownership of each memory block (to allow reclamation of memory from terminated threads), and even implement custom allocation algorithms to minimize fragmentation (first-fit, best-fit, etc.).

In the following sections we focus on how to use and create modules that implement the IHeap interface.

Overview

Memory management in embedded systems, especially DSPs with their high-speed but relatively small on-chip memories and lack of virtual memory, can be a critical factor in getting full entitlement from the hardware. The performance difference between on-chip static RAM and external dynamic RAM makes it especially important that the on-chip memory be allocated only to the performance critical portions of a system. But, from the point of view of an individual module, it's often not be possible to know in advance whether the module's memory should be in on-chip memory or in bulk external memory; two different applications may have very different usages of the module. As a result, it's important that the system integrator have control over the management of each module's data memory placement.

The xdc.runtime memory architecture enables developers to write their code once, deliver modules in binary form, and still allow the system integrator to, on a per module basis,

  • monitor and track allocations,
  • control the type and amount of memory allocated, and
  • select alternate allocation strategies, striking a balance between deterministic performance and minimal fragmentation loss.

In other words, modules can be written once, delivered in binary form, and be reused in virtually any application without limiting the flexibility required by system integrators to get full entitlement from their unique hardware platform.

Architecture

The Memory module provides an interface that allows any client code to allocate and free memory. However, each Memory function is passed a handle of a heap instance and it is this instance that performs the requested service. As a result, each heap can manage a different memory space, such as on-chip DARAM or external bulk DDR memory, using unique allocation and management algorithms, such as fixed-length deterministic or variable-length first-fit allocation.

All "heaps" are modules that implement the IHeap interface. The relationship between heaps and the Memory module is depicted in the figure below.

Using each heap instance to reference the actual memory management code provides a great deal of flexibility, but now clients have to pass an IHeap instance object on each allocation. Since these handles are heap-specific, it appears that clients must tie themselves to a specific heap - defeating the goal of keeping the clients unaware of any particular heap manager. To solve this problem and enable client code to be 100% independent of the heaps it uses, it is possible to pass NULL as a heap instance handle and, in this case, the distinguished heap instance defined by the Memory.defaultHeapInstance configuration parameter is used.

In addition, every module that supports instances has a unique heap instance, a "generic" means to get this heap, and a means for the system integrator to define this heap at configuration time. These RTSC modules reference their configured heap instance from the module's C code using Mod_Object_heap() where Mod is the name of the module.

Of course, most systems do not create a unique heap for each module but, as we'll see in the examples, the ability to associate a unique heap for selected modules can be extremely useful. Not only is it possible to control or redirect access to various memories within different sub-systems of an application, but you can also "chain" heaps to provide sophisticated application-specific memory validation atop any other heap manager (see Example 1).

Configuration

Since heaps are often required very early during runtime startup, they are usually created at configuration time. The most common configuration, illustrated in the figure below, is to have a single heap for the entire application. In this figure, the application consists of the modules xdc.runtime.Main, xdc.runtime.Memory, an IHeap manager (xdc.runtime.HeapStd), and some number of modules Mod0 through ModN, where xdc.runtime.Main represents all code not in any module and HeapStd is a module that implements the xdc.runtime.IHeap interface.

Notice that if the heap instance passed to Memory is NULL, the Memory.defaultHeapInstance configuration parameter is used. In addition, the default value of the Memory.defaultHeapInstance configuration parameter is an instance of xdc.runtime.HeapStd created with Memory.defaultHeapSize MAUS of capacity. Because of these defaults, the configuration script that corresponds to the figure above is quite simple.

app.cfg

var Memory = xdc.useModule("xdc.runtime.Memory");

In fact, the configuration script above is equivalent to the more explicit script shown below. We show this more explicit script because it hints at the some powerful capabilities provided to the system integrator with respect to controlling each part of a system's access to and use of memory.

app.cfg

var Memory = xdc.useModule("xdc.runtime.Memory");
var HeapStd = xdc.useModule("xdc.runtime.HeapStd");
var params = new HeapStd.Params;
params.size = Memory.defaultHeapSize;
Memory.defaultHeapInstance = HeapStd.create(params);

Suppose, for example, you want to use standard variable-length memory allocations in an existing code base but you want to limit all RTSC modules to a simple deterministic growth-only memory manager. The following configuration script can be used to achive this effect.

twoHeaps.cfg

var Memory = xdc.useModule("xdc.runtime.Memory");
var Defaults = xdc.useModule("xdc.runtime.Defaults");
var HeapMin = xdc.useModule("xdc.runtime.HeapMin");
var params = new HeapMin.Params;
params.size = Memory.defaultHeapSize;
Defaults.common$.heap = HeapMin.create(params);

This configuration script results in a configuration depicted in the figure below. As with the first example, even though HeapStd is not directly named in the configuration script, it is part of the configuration because the Memory.defaultHeapInstance is not set by the script.

Examples

The best way to understand how to use and create new heap managers is to study some simple examples. In the table below, we list examples that illustrate the key requirements of heap managers and provide links to more advanced topics.

Examples | Description | Purpose
Example 1 | Simple heap monitor | illustrate the ability to add custom heap management without changing any existing sources

Related Topics

Using the Runtime Memory Manager

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Extending xdc.runtime System - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Extending xdc.runtime System

How to create customized System support service providers

Contents

  • 1 Introduction
  • 2 Overview
  • 3 Architecture
    • 3.1 Configuration
  • 4 Examples
  • 5 Related Topics

Introduction

The xdc.runtime package contains two modules, Startup and System, that work together to provide a rich but portable foundation for bootstrapping an application, getting basic output, and cleanly shutting down. These modules form the basis for early application "bring up", and remain embedded within deployed systems to provide "fail-safe" mechanisms for diagnosing problems in higher software layers.

The System module provides both character output and basic system shutdown support. In order to enable embedding within virtually any execution environment, the System module relies on an underlying "support module" that implements the ISystemSupport interface. In the following sections we focus on how to use and create modules that implement the ISystemSupport interface.

Overview

The System module provides a platform independent interface that provides both character output and simple application termination services. The System module encapsulates the lowest level services necessary for the simplest applications. Many other modules in the xdc.runtime package build atop these services and, as a result, porting xdc.runtime to new environments really amounts to porting the System module to these environments. By restricting their external references to the services provided by the System module, xdc.runtime modules can be reused in virtually any execution environment: embedded Linux device drivers, DSP/BIOS applications, Windows applications, etc.

Porting System to a new environment requires no change to the System module's sources. To support a new environment, you must either configure one of the existing "back end" modules that implements the ISystemSupport interface (SysMin or SysStd) or create a new such module.

Architecture

The System module is designed to provide basic services while minimizing external dependencies. However, some of the services provided, such as character output, ultimately require platform specific support. To enable developers to adapt System to their platform without modifying anything in the xdc.runtime package, the System module requires that the end-user specify a module that implements the ISystemSupport interface as the "proxy" for the required platform or application-specific services.

The relationship between the System module and an ISystemSupport proxy is illustrated in the figure below.

Configuration

The only configuration parameter related to extending the System module is System.SupportProxy. If this parameter is not set by the system integrator, it defaults to the SysMin module. The effect of setting this parameter is to "bind" an alternative ISystemProvider module to System; i.e., every time System needs to calls a function specified by ISystemProvider, it will invoke the functions implemented by the module "bound" by the system integrator to System.SupportProxy.

var SysStd= xdc.useModule("xdc.runtime.SysStd");
System.SupportProxy = SysStd;

Examples

In the table below, we list examples that illustrate the key requirements of system support providers.

Example | Description | Purpose
Example 1 | Simple ISystemSupport module | illustrate the ability to add custom system services

Related Topics

Using System Services

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Extending xdc.runtime Timestamps - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Extending xdc.runtime Timestamps

How to create customized timestamp providers

Contents

  • 1 Introduction
  • 2 Overview
    • 2.1 Architecture
  • 3 Examples
  • 4 Related Topics

Introduction

The xdc.runtime package contains several modules that need timestamps; e.g., LoggerBuf and LoggerSys. These modules obtain timestamps from other modules that implement the xdc.runtime.ITimestampProvider interface. Two such modules are provided in the xdc.runtime package:

  1. TimestampNull - a timestamp provider that always returns a timestamp of 0, and
  2. TimestampStd - a timestamp provider that uses the ANSI C Standard Library function clock() to obtain timestamps.

In the following sections we focus on how to use and create modules that both implement the ITimestampProvider interface and fully leverage device-specific hardware.

Overview

By definition, real-time systems require some means to track and measure elapsed time. However, different systems use very different methods. Some systems leverage platform-specific timer peripherals while others use application-specific data streams that are known to produce data at a fixed rate (i.e., telephony TDM data). The choice of how to measure time is application and platform specific, so it is important that the timer services provided by xdc.runtime enable the system integrator to specify an appropriate time source.

In addition to variations in how time is measured, different applications have very different precision and range requirements. Applications that only require millisecond precision often don't require more than 32-bits of range (almost 50 days), whereas measurements used to causally relate events in a multi-core system requires near nanosecond precision (yielding less than 5 seconds of range from a 32-bit value). In fact, it is not unusual for a single application to require more than one timer with different precision and range requirements.

Architecture

The xdc.runtime.Timestamp module provides a platform-independent interface that is sufficient for simple timestamping needs. This module makes use of platform-specific implementations which can take advantage of underlying hardware support, for example. Rather than define a single "provider" interface that is sufficient for the needs of the Timestamp module, the xdc.runtime package defines two interfaces:

  • ITimestampClient - defines the platform-independent interface provided by Timestamp, and
  • ITimestampProvider - defines the interface provided by platform-specific implementations and inherits from ITimestampClient

While it may seem odd that underlying timestamp provider implementations must implement the same interface as ITimestampClient, this design enables applications to call timestamp providers directly, when necessary, to leverage platform-specific capabilities. Suppose there is device specific timestamp provider, say Timestamp64, that provides additional methods that put an underlying timer into special low-power modes. Since this Timestamp64 module must implement ITimestampClient (because ITimestampProvider inherits from ITimestampClient), developers that need to leverage the low-power functionality can mechanically replace existing calls to Timestamp methods with calls to Timestamp64 methods and be sure the application will continue to function properly. The figure below illustrates the relationship between the the various timestamp interfaces and modules provided by xdc.runtime as well as this hypothetical Timestamp64 timestamp.

Examples

In the table below, we provide examples that illustrate how to create and use custom ITimestampProvider modules.

Example | Description | Purpose
Example 1 | Simple timestamp provider | illustrate how to create and use a custom timestamp provider

Related Topics

Using Timestamps

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Working with xdc.runtime - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Working with xdc.runtime

How to build xdc.runtime for your target and platform

Contents

  • 1 Introduction
  • 2 Re-building xdc.runtime Support Packages
    • 2.1 Re-building in-place
    • 2.2 Re-building a local copy (recommended)
    • 2.3 Setup for xdc builds
  • 3 Multi-Threading Support
  • 4 Porting to a New Target
    • 4.1 package.xdc
    • 4.2 package.bld
    • 4.3 Testing Your New Target
  • 5 Removing xdc.runtime From an Application
  • 6 Using a Customized Build of xdc.runtime
  • 7 Using xdc.runtime Within C-Only Environments
    • 7.1 Rebuilding Just the C Sources
    • 7.2 Use This New Build of xdc.runtime
    • 7.3 Manually Initializing All RTSC Modules

Introduction

This section contains topics related to the "manipulation" and use of xdc.runtime package as a whole rather than individual modules within this package. For a basic overview of the xdc.runtime package see Overview of xdc.runtime.

Re-building xdc.runtime Support Packages

The xdc.runtime package contains 100% portable ANSI C sources but does not include any precompiled libraries of these sources. However, pre-built libraries are generally provided in separate packages named by the targets you're using; whenever you configure an application you must name a target and this target names a default package containing a pre-built library of the xdc.runtime sources. In most cases, the packages containing these pre-built libraries are sufficient and there is no need to rebuild these packages. But, there are times when it's necessary:

  • if you are using a different version of the compiler originally used to build the library and your compiler is unable to use the previously built library; because of an incompatible object file format change, for example
  • if you need to use a new version of the xdc.runtime package

The remainder of this section describes how to rebuild packages containing pre-built libraries of the xdc.runtime sources using the xdc command. This command requires that you specify the targets you want to build for and the installation directory of the compiler tool chain to use for each target. If you haven't already done this, see the "Setup for xdc builds" section below for a simple example.

Re-building in-place

Re-building in-place. The simplest way to rebuild any source package is to simply clean and rebuild from the package's base directory. In the example below, we assume that the package you need to re-build is named ti.targets.rts6000.

% cd .../packages/ti/targets/rts6000
% xdc clean
% xdc

You should see all of the modules in the xdc.runtime package being compiled and archived without any errors or warnings.

You should always maintain a backup copy of any package you modify. In the example above, the "xdc clean" operation may remove support for targets that you don't currently use but may want to use at a later date.

Re-building a local copy (recommended)

Re-building a local copy (recommended). Most development groups prefer to keep all third-party packages unchanged from there original installation state. This makes it much easier to accept and use updates of these packages from the third-party. Fortunately, the package path allows you to easily "override" any existing package with a local version. As before, we assume that the package you need to re-build is named ti.targets.rts6000 but in this case we first need to create a copy of this package in a separate repository denoted by ".../local".

% mkdir -p .../local/ti/targets/rts6000
% cp -rp .../packages/ti/targets/rts6000 .../local/ti/targets/rts6000

We could have used xdc.tools.repoman or xdc.tools.repoman.sg to copy the ti.targets.rts6000 package, but we intentionally chose to use familiar file system commands to keep the process as transparent as possible. The repoman command to copy the package shown above is "xs xdc.tools.repoman -c -p .../packages -r .../local ti.targets.rts6000", where .../packages is the repository containing the ti.targets.rts6000 package.

Now that we have a local copy of the ti.targets.rts6000 package, the process to re-build is identical to the process shown to build the package in-place.

% cd .../local/ti/targets/rts6000
% xdc clean
% xdc

To use this newly re-built package in lieu of any existing version, simply place the ".../local" repository at the beginning of your package path.

Windows

% set XDCPATH=.../local
Unix

% export XDCPATH=.../local

For more information about managing the package path see Managing the Package Path.

Setup for xdc builds

Setup for xdc builds. If you are not already using the xdc command to build source files, you'll have to create a file, named config.bld, that specifies what targets to use when building your sources and where you've installed the compilers that are required by these targets. This file can be placed in any directory named on the package path or in the package you want to (re)build.

The following example illustrates how to setup the xdc command to compile sources using the TI C6x compiler to build for the C64 Plus architecture. In this case, we assume the environment variable TI_DIR is defined to be the installation directory of TI's Code Composer product and that this directory contains an installation of the C6x compiler in the ./tools/compiler/c6000 sub-directory.

config.bld

/* specify the compiler installation directory for the targets we need */
var C64P = xdc.module("ti.targets.C64P");
var tools = java.lang.System.getenv("TI_DIR");
C64P.rootDir = tools + "/tools/compiler/c6000";

/* specify the target(s) to use when building source files */
var Build = xdc.module("xdc.bld.BuildEnvironment");
Build.targets = [C64P];         /* only build using C64P target */

For more information about how to leverage the xdc command to build using any C compiler tool chain, see Managing Compiler Toolchains.

Multi-Threading Support

In order to be portable to any multi-threaded runtime (e.g., DSP/BIOS or posix), the xdc.runtime modules protect their critical sections with the Gate_enterSystem() and Gate_leaveSystem() methods. These methods, in turn, use the mutex gate associated with the xdc.runtime.System module.

Some RTOS providers automatically configure the xdc.runtime.System gate to ensure correct operation in a multi-threaded environment. For example, if you use the ti.sysbios package, the following lines are automatically added to your configuration by the ti.sysbios package itself:

var System = xdc.useModule("xdc.runtime.System");
var GateHwi = xdc.useModule("ti.sysbios.gates.GateHwi");
System.common$.gate = GateHwi.create();

If the System gate is not configured by some package in the system, it will default to an instance of GateNull. Since GateNull provides no synchronization, it should only be used for modules that are never called by more than one thread at a time. Multi-threaded applications must either

  1. configure the System module's gate with a mutex that serializes all threads that access the xdc.runtime modules, or
  2. ensure that there are no concurrent accesses to the xdc.runtime modules

The table below summarizes the synchronization requirements for the xdc.runtime modules. Any modules not mentioned do not require synchronization.

Module | Requires System gate?
Core | yes, to maintain pre-module instance list. Only called during instance create and delete
Error | yes, but only to detect errors that occur within error handlers. Error_print() is not protected by any gate and, as a result, concurrent calls to Error_print() will result in intermingled error output
System | only System_atexit() and during application termination
Assert, Memory, Log, Diags, Text, Timestamp | no
HeapMin, HeapStd, SysMin, LoggerBuf | yes
SysStd | no [image] requires a thread-safe ANSI C Standard Runtime library
LoggerSys | no [image] requires that System_putch() be thread-safe
TimestampNull | no

Porting to a New Target

Most users will never have to port the xdc.runtime package to a new target. If you are not adding a new target to the RTSC Build Model, you should skip this section.

Each target names a target-specific package that has already compiled the xdc.runtime modules into a library. Since targets can be added without requiring a re-release of the xdc.runtime package, the xdc.runtime package can not contain any pre-built libraries. The xdc.runtime package's modules are provided in 100% portable C source form and each target names a target-specific package that contains pre-built libraries suitable for that target.

To create a package that contains pre-built versions of the modules in the xdc.runtime package you need to:

  1. create a new target for your compiler tool chain (say adi.targets.Blackfin) whose rts parameter names a package that will house a compiled version of the xdc.runtime modules (say adi.targets.rtsblackfin)
  2. create the adi.targets.rtsblackfin package; i.e., create a directory named adi/targets/rtsblackfin containing a package.xdc file similar to that shown below.
  3. add a package build script (package.bld similar to the one shown below) to build this package for the new target
  4. add the new target to your config.bld file and build adi.targets.rtsblackfin package by typing xdc in the package's base.

package.xdc

The package specification below both names the package, adi.targets.rtsblackfin, and provides a basic description of the package that will be displayed by the xdc.tools.cdoc.sg command.

/*!
 *  Pre-built xdc.runtime libraries for ADI blackfin targets
 *
 *  This package builds all xdc.runtime modules and provides all necessary
 *  support for using the xdc.runtime package on ADI blackfin devices.
 */
package adi.targets.rtsblackfin {}

package.bld

The build script below builds the xdc.runtime modules in the package containing this script. This allows you to build and release support for new targets without ever having to modify the xdc.runtime package itself!

/* get build support from the xdc.runtime package itself */
var RtsBuild = xdc.loadCapsule("xdc/runtime/build.xs");

/* add makefile content from xdc.runtime to this package */
Pkg.makePrologue = RtsBuild.makePrologue;

/* build libraries for all targets that support the "blackfin" ISA */
for (var i = 0; i < Build.targets.length; i++) {
    var targ = Build.targets[i];
    if (targ.isa == "blackfin") {
        Pkg.addLibrary("lib/" + Pkg.name, targ).addObjects(RtsBuild.objs);
    }
}

If the build of the package succeeded, you've completed the first test of your new target. To ensure that clients can use your target to create executables you should also build and run some simple client applications. This is described in the next section.

Testing Your New Target

To test your port of the xdc.runtime package you should be able build and run the examples referenced in the Overview of xdc.runtime. Since Example 2 minimizes external dependencies, starting with this example will allow you to focus on issues related to your target.

Removing xdc.runtime From an Application

Because the initialization of modules is controlled by the xdc.runtime.Startup module and most modules - even those without startup initialization requirements - rely on at least one of the xdc.runtime modules (e.g., xdc.runtime.Memory), the XDCtools implicitly import a package containing a pre-compiled version of the xdc.runtime modules. However, there are times when you may need to create an application that does not include any of the xdc.runtime code or when you need to specify a specific package of pre-compiled xdc.runtime modules.

Each RTSC target names a package containing pre-compiled versions of the xdc.runtime modules (see xdc.bld.ITargets.rts) and, by default, this package will be imported into your application's configuration. However, you can disable this implicit import by setting the rtsName attribute of the xdc.bld.Executable instance created for your application to null.

If you use the RTSC Build Engine to create your application, your package.bld build script will include a statement similar to the following:

var exe = Pkg.addExecutable("myApp", target, target.platform, {rtsName: null});

If you use the xdc.tools.configuro tool, your command line should include the -rtsName option to disable the inclusion of the target's package of pre-compiled xdc.runtime modules (or to specify an alternative package).

% xs xdc.tools.configuro ... -rtsName="" myApp.cfg

Using a Customized Build of xdc.runtime

Each RTSC target names a package containing pre-compiled versions of the xdc.runtime modules (see xdc.bld.ITargets.rts) and, by default, this package will be imported into your application's configuration. However, you can override this implicit import by setting the rtsName attribute of the xdc.bld.Executable instance created for your application to the name of any package that supplies pre-built versions of the xdc.runtime modules. You may want to do this to use different compiler optimization flags or use a more recent version of a compiler than that used by the package named by the target.

If you use the RTSC Build Engine to create your application, your package.bld build script will include a statement similar to the following:

var exe = Pkg.addExecutable("myApp", target, target.platform, {rtsName: "my.local.runtime"});

If you use the xdc.tools.configuro tool, your command line should include the -rtsName option to specify the package of pre-compiled xdc.runtime modules to use in lieu of the one named by the target.

% xs xdc.tools.configuro ... -rtsName="my.local.runtime" myApp.cfg

Using xdc.runtime Within C-Only Environments

The xdc.runtime package contains a single C++ file that is used to portably initialize all modules in a system by calling Startup_exec() as part of a static C++ initializer. However, there are execution environments where C++ is not supported; e.g., some micro-controllers are only supported by a C compiler, and some kernel-level execution environments don't support C++ initializers. In these cases, it is necessary to

  1. rebuild all of the xdc.runtime C sources without this one C++ file,
  2. configure your system to use this new variant of the runtime, and
  3. "manually" call Startup_exec() prior to using any xdc.runtime services.

If your target supports C++ and there is an existing runtime support library package for your target, you can skip the the first two steps above by simply defining a C function named __xdc__init() in the same file that calls Startup_exec(). The __xdc__init() symbol is referenced in all generated configuration files (to force the initialization of a C++ variable that in turn causes Startup_exec() to run). By defining this symbol in a file that is always linked ahead of any library, you can effectively "short-circuit" the C++ initializer defined in the xdc.runtime sources.

#include <xdc/runtime/Startup.h>

int __xdc__init(void) { return 0;}

int main(int argc, char *argv[]) {
   Startup_exec();
       :
}

Rebuilding Just the C Sources

To rebuild the xdc.runtime so that it does not include any C++ files, you can use a package.bld similar to the one shown below. The only difference between this file and the one shown in the section "Porting to a New Target" is that rather than using the RtsBuild.objs list of files, the package.bld below uses RtsBuild.c_objs (a list that includes all xdc.runtime sources except for the C++ initialization file).

package.bld

/*
 *  This build script builds xdc.runtime modules in the current package
 */

/* get build support from the xdc.runtime package itself */
var RtsBuild = xdc.loadCapsule("xdc/runtime/build.xs");

/* add makefile content from xdc.runtime to this package */
Pkg.makePrologue = RtsBuild.makePrologue;

/* build libraries for all targets that support the "blackfin" ISA */
for (var i = 0; i < Build.targets.length; i++) {
    var targ = Build.targets[i];
    if (targ.isa == "blackfin") {
        /* add only C files: this requires all users to explicitly call Startup_exec() */
        Pkg.addLibrary("lib/" + Pkg.name, targ).addObjects(RtsBuild.c_objs);
    }
}

Use This New Build of xdc.runtime

To use this custom build of the xdc.runtime, we follow the same proceedure outlined in the section "Using a Customized Build of xdc.runtime"; i.e., either use the rtsName attribute of executables when using package.bld scripts or use the -rtsName command line option when using xdc.tools.configuro directly.

Manually Initializing All RTSC Modules

Before using any RTSC module, including any module in the xdc.runtime package, it must first be initialized. The initialization of all RTSC modules is normally handled automatically, but if you are using a variant of xdc.runtime that does not include any C++ initializers you must explicitly call Startup_exec() before the first use of any RTSC module. Normally this simply means calling Startup_exec() in main().

#include <xdc/runtime/Startup.h>

int main(int argc, char *argv[]) {
   Startup_exec();
       :
}
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Creating Configurable Content - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Creating Configurable Content

How to leverage the configuration process

Contents

  • 1 Introduction
  • 2 Configuration Process
    • 2.1 Package Functions
    • 2.2 Module Functions
    • 2.3 Order of Evaluation

Introduction

During the configuration process, the RTSC configuration framework invokes specific package functions in response to commands in the user's script and the commands in loaded packages. As a result, it's important to understand which meta-domain package and module functions are invoked by the RTSC configuration framework, when these functions are called, and the context that exists when they are called. The sections below provide the details necessary for the content producer to fully leverage the RTSC configuration framework.

Configuration Process

The configuration process proceeds in a sequence of "phases":

  1. object model initialization
  2. user's configuration script runs
  3. all loaded packages are closed
  4. module state initialization is run for all "used" modules
  5. instance state initialization is run for all created instances
  6. config model validation is run for all loaded packages
  7. C code generation is run for all "used" modules

In each phase, meta-only XDCscript code defined by the user or the loaded packages is invoked. This script code manipulates a "configuration object model" which is ultimately used to generate a C source file and a linker command file that are integrated into an application's final build.

Package Functions

The following package functions are called during the configuration process and are optionally defined in the package's package.xs file:

  • init() — package initialization occurs when a package is loaded, before a user or any other package can read or write package's configuration parameters
  • close() — after the user's script is run, each package can act upon the current state of the configuration and make changes in the configuration
  • validate() — after all packages and module methods finish modifying the model, the model is "sealed" (made unmodifiable) and then each package can validate the configuration and possibly abort it, but nothing in the model can be changed at this point
  • getLibs() — if validation completes without any errors, getLibs() is called to get the libraries necessary to use this package
  • getSects() — if all of the libraries specified by getLibs() exist, getSects() is called to get package-specific linker section data which is placed in the generated linker command file along with the list of libraries specified by getLibs()

If you don't define one of these functions, a default implementation will be used instead. For detailed documentation of these functions see xdc.IPackage.

Module Functions

The following functions are optionally defined in each module's .xs file:

  • module$meta$init() — called right before the package's init() function, so its purpose is similar, but module specific initialization should be here.
  • module$use() — called after user's script, as a consequence of an xdc.useModule() call on the module. In most cases, the function module$use does not execute immediately within the xdc.useModule() call. The execution of module$use is delayed until the module's package is closing. However, an exception is made for modules whose packages are already closed at the time xdc.useModule() is called on them. In such cases, module$use executes immediately and it executes after the module's package close function is called. Changes in configuration parameters are allowed in module$use.
  • module$static$init() — target object for the module is initialized; no changes in configuration parameters are allowed here and is only called for target modules.
  • module$validate() — called for all modules in a package, before the package's validate() function; can be used to verify the consistency of values assigned to configuration parameters, but no changes in parameters are allowed.
  • instance$meta$init() — invoked whenever create() is called, configuration can be changed.
  • instance$static$init() — invoked after closing to initialize instance object, no changes in configuration parameters are allowed; called only for instances of target modules.

For detailed documentation of these functions see the XDCscript Language Reference.

Order of Evaluation

The table below summarizes the order of evaluation of the methods optionally supplied by a package. Within a package, these methods are guaranteed to be evaluated in top to bottom order. When two methods appear in the same row, no order is guaranteed.

Id | Phase | Package | Module | Instance
2 | user's script |  | module$meta$init [2-3] |
 |  | init [2-3] |  |
 |  |  |  | instance$meta$init [2-5]
3 | package close | close [3] | module$use [3] | instance$meta$init [2-5]
4 | module init |  | module$static$init [4] | instance$meta$init [2-5]
5 | instance init |  |  | instance$static$init [5]
6 | validation |  | module$validate [6] |
 |  | validate [6] |  |
7 | generation |  | module templates [7] |

Order of evaluation between packages is also indicated by this table. Each method name is followed by the id(s) of the phases in which it can be run. A method whose largest phase id is less than the minimum phase id of another method is guaranteed to run first. For example, all package validate() methods run after all instance$meta$init() calls.

Ordering of phases also determines which xdc methods can and cannot be called within a particular phase. Any calls that would require going backwards to an already completed phase are not allowed. For example, module$static$init functions invoked in the phase 4 cannot call xdc.loadPackage() on any new packages because the package's init() function, which can be called only in phases 2 and 3, would have to be called for those packages. Here is a summary of such limitations:

  • After the phase 3, all configuration parameters are sealed and cannot be changed
  • xdc.loadPackage() and xdc.useModule() can be called only in the first 3 phases
  • xdc.module() can always be called for modules in previously loaded packages, but only in the first 3 phases for modules from packages not being already loaded
  • Mod.create() can be called only in the first 5 phases
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


ROV Module Writers Guide - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

ROV Module Writers Guide

Customizing content presentation in the Run-time Object Viewer

For a given RTSC module, ROV will automatically display the module's raw state in ROV--the module state structure and all of the instance state structures, as well as the module's configuration information. This doesn't require any action on the part of the module writer. Module writers have the opportunity, however, to process this raw data and display richer and more meaningful data to the client.

With XDCtools, module writers have the ability to easily contribute to ROV and to the ROV GUI displayed in Code Composer Studio. This guide details how to make a module work with ROV to provide data to display.

Contents

  • 1 What you'll need to know
  • 2 How to use this guide
  • 3 Sections
  • 4 See also

What you'll need to know

You should already be familiar and comfortable with creating RTSC modules.

You should also be comfortable with the ROV GUI in CCS 4. The ROV Users Guide is not required reading if you feel comfortable with the GUI itself.

How to use this guide

This guide is divided into a number of sub-topics which should generally be read in order.

To begin, the Fundamentals article lays down all of basic concepts of how ROV views are created. This will prepare you to write a very basic ROV view. The Getting Started article will then walk you through the creation and testing of your first view using these basic concepts. Creating a simple ROV view should solidify your understanding of how ROV works and give you the confidence to work towards a more full-featured view.

The Processing Data article goes into further detail about the functionality ROV provides for retrieving arbitrary data from the target, such as retrieving arrays of data or structures at given addresses. ROV provides many features for retrieving and processing data, and this article will explain the approach and guidelines for using these features.

At this point, you can begin planning out the views you want to provide with your module. The View Types article discusses each of the four view types and serves as a reference for using each of them. Each view type works with either module state or instance state, and each view has a different representation in the ROV GUI in CCS 4. Look over this article to determine which view types you will want for your module, and then return to it later as a reference.

You're now ready to begin writing the views for your module. Use the approach you followed in Getting Started, and follow the simple conventions in Conventions and Keywords.

You should begin by getting the most basic features of your views working. Some of the fields in your view will undoubtedly require some advanced ROV functionality to process and display, however, such as a pointer to a structure or an array. For each specific ROV use case, refer to the Module Writer FAQ where you'll find all of the ROV features discussed in question and answer form with code snippets. All of these advanced ROV operations are also formally documented in the CDOC for the xdc.rov.Program module, which can be used as a reference after first referring to the Module Writer FAQ.

The following list summarizes these steps.

Progression

  1. Read Fundamentals, then follow Getting Started to create a basic ROV view.
  2. Read Processing Data to learn how to make a more advanced view.
  3. Start planning out the views for your module. Read View Types to decide what view types to use.
  4. Begin writing your views, following the methodology in Getting Started, and follow the simple conventions in Conventions and Keywords.
  5. As you encounter specific ROV use cases, look them up in the Module Writer FAQ and follow the code snippets there. You can also look at the xdc.rov.Program CDOC as a more formal reference.

Sections

Fundamentals | The basics of creating an ROV view
Getting Started | Steps for writing your first ROV view
Processing Data | Retrieving and processing target data
View Types | Different ways to display data in the ROV GUI
Conventions and Keywords | Discussion of conventions for naming views, functions, etc.
Module Writer FAQ | Discussion of specific ROV tasks and use cases
Full Examples | Complete examples to test or use as templates

See also

RTSC+CCStudio v4 QuickStart | Using CCStudio v4 to create, build, and debug RTSC projects
Runtime Object Viewer | Using ROV for Eclipse-Based Debugging

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


ROV Module Writers Guide/Fundamentals - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

ROV Module Writers Guide/Fundamentals

The basics of creating an ROV view

ROV Fundamentals

Each module that contributes to ROV defines an instance and / or a module "view structure" which defines the data to be displayed in ROV. Each module also defines a set of "view initialization" functions which process the module and instance state data from the target to populate these view structures.

ROV manages the complexity of retrieving and decoding data from the target, so the module writer's responsibility is merely to shape and organize the data to make it suitable to display.

Since ROV can be used to debug a broken system, another role of ROV is to validate the target data, identifying any errors with it and conveying those errors to the ROV user. This validation is done as part of the view initialization functions.

There are essentially three steps to creating an ROV view for a module:

  1. Define a view structure in Mod.xdc which indicates the fields that will be displayed.
  2. Define the name of the view tab in Mod.xdc, specifying what view structure to use and what view initialization function to call.
  3. Write the view initialization function in Mod.xs.

Defining The Views

The view structures, which define what to display in ROV, are defined in the module specification file (e.g., Mod.xdc) for each module. The field names of these structures will be the column headers in the GUI. The column headers will also be in the same order as the fields in the structure.

The view structures may have any name. By convention, they are named after their view tab. For example, "BasicView", "DetailedView", and "ModuleView".

Below are some example view structures.

BasicView example

metaonly struct BasicView {
    String  label;
    Int     priority;
    String  mode;
    SizeT   stackSize;
    Ptr     stack;
    String  fxn[];
    UArg    arg0;
    UArg    arg1;
    SizeT   stackPeak;
}
ModuleView example

metaonly struct ModuleView {
    Bool    schedulerLocked;
    Bits32  readyQStatesMask;
    Bool    workPending;
    UInt    numVitalTasks;
    Ptr     currentTask;
}

Because the ROV GUI displays data in tables, the fields of these structures must be primitive types (integers, strings, pointers, booleans). They cannot be structures, because the GUI cannot display hierarchical data in table form. Arrays of primitive types are allowed, however. Arrays are displayed in the GUI as drop down menus.

All views automatically have an "address" field, which will appear as the first field in the display, so "address" should not be included as a field in these view structures.

When you use the ROV GUI and click on a module on the left hand side, you'll notice that a number of tabs appear on the right hand side, such as "Basic", "Detailed", "Module", and "Raw".

These tabs help to organize the data and separate the instance views, module views, and raw data. They also provide a way of managing the performance of ROV. Data can be divided across the tabs based on how long it takes to retrieve and process, so that some tabs may be accessed quicker than others.

ROV communicates with the target through CCS and reading and decoding memory from the target can be slow. For a module that needs to read a large amount of data from the target, you might create two separate instance views. The "Basic" tab could just read the state structures and provide basic information, while a "Detailed" tab could read more data and present more information. This way, if a user is only interested in the "Basic" data, then this data will be returned to them quickly -- the user only has to pay the penalty of the large memory reads if they are interested in the extra data.

The "Raw" tab is provided automatically by ROV, and will appear automatically for any module, even those that do not specify anything to display in ROV. All other tabs are specified in the module specification file by configuring the module's ROV facet configuration parameter.

ROV facet example

import xdc.rov.ViewInfo

...

@Facet
metaonly config ViewInfo.Instance rovViewInfo =
    ViewInfo.create({
        viewMap: [
            ['Basic',    {type: ViewInfo.INSTANCE, viewInitFxn: 'viewInitBasic',    structName: 'BasicView'}],
            ['Detailed', {type: ViewInfo.INSTANCE, viewInitFxn: 'viewInitDetailed', structName: 'DetailedView'}],
            ['Module',   {type: ViewInfo.MODULE,   viewInitFxn: 'viewInitModule',   structName: 'ModuleView'}],
        ]
    });

The ROV facet is an instance of the module xdc.rov.ViewInfo . The instance's viewMap property defines the views that are displayed in ROV for this module.

The tabs will appear in the order they are specified in the ROV facet. The "Raw" tab should not be on this list; ROV adds it automatically and it will always be the last tab displayed.

Each tab in the facet defines three properties:

  • type -- The type of the view (instance, module, etc.), defined by xdc.rov.ViewInfo.ViewType.
  • viewInitFxn -- Specifies the XDC script function to run in order to populate the view structure for this tab.
  • structName -- The name of the view structure to use for this tab.

Tabs may have any name you choose, and can include spaces and special characters. For consistency with other modules, however, it is recommended to begin with the terms "Basic", "Detailed", and "Module".

View Function Basics

The view initialization functions belong in your module's XS script (e.g., Mod.xs). They may have any name you choose, since the name is specified in the 'viewFxn' field in the module's ROV facet.

The view function parameters depend on the view type. For an instance view, the function takes two parameters, 'view' and 'obj'. The first parameter is an instance of the view structure to be populated for display. The second parameter is an instance state object from the target which contains the target data.

Initializing most of the fields is often as easy as copying a value from the target state structure to the view structure.

view init function example

/*
 * ======== viewInitBasic ========
 * Initialize the 'Basic' instance view.
 */
function viewInitBasic(view, obj)
{
    view.priority = obj.priority;
    view.stackSize = obj.stackSize;
    ...
}

The obj parameter only contains simple scalar data. ROV does not follow any pointers automatically--any pointers in the target structure will appear as addresses, not the data they point to. Retrieving data from pointers is covered later.

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


ROV Module Writers Guide/Getting Started - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

ROV Module Writers Guide/Getting Started

Steps for writing your first ROV view

Getting Started

Where to begin

Start with your module's specification, Mod.xdc.

Begin by defining your view structures, which dictate what will be displayed. A good tactic here is to simply copy your actual state structures, then go through the fields and decide which you want to display. It's a good idea to begin with simple fields to convince yourself that your view is basically working.

Step 1: Define your first view structure

metaonly struct BasicView {
    String  label;
    Int     priority;
    SizeT   stackSize;
}

internal:

metaonly struct Instance_State {
    Int     priority;
    SizeT   stackSize;
}

Once you have your view structure defined, define your module Facet configuration parameter which just specifies what views you will display and what function and structure they will reference.

Step 2: Define your ROV facet

import xdc.rov.ViewInfo

...

@Facet
metaonly config ViewInfo.Instance rovViewInfo =
    ViewInfo.create({
        viewMap: [
            ['Basic', {type: ViewInfo.INSTANCE, viewInitFxn: 'viewInitBasic', structName: 'BasicView'}],
        ]
    });

Next move to your module's XS file, Mod.xs. Again, it's good to start with just the basic fields. Write your view function to simply copy values from your target state structure into your view structure. Don't bother with the more complicated fields yet that involve retrieving extra data from the target.

Step 3: Write a basic view function

/*
 * ======== viewInitBasic ========
 * Initialize the 'Basic' instance view.
 */
function viewInitBasic(view, obj)
{
    view.priority = obj.priority;
    view.stackSize = obj.stackSize;
}

Once that's done, launch CCS and ROV and verify that you're seeing your view.

This should give you the confidence to move on and make more complex improvements to the view.

Debugging your code

As you move on to more complex ROV operations, you'll want a way to debug problems in your ROV code.

The main tool for debugging XS code is just print statements.

In CCS, these print statements will go to a special console which you must enable when you launch CCS. To do this CCS needs to be launched with the -consolelog flag. You can do this by opening a command prompt and navigating to the 'eclipse' directory of your CCS 4 installation, and launching CCS with "eclipse.exe -consolelog". Or, you can simply edit your CCS 4 shortcut and in the 'Target' field add -consolelog to the end.

When you launch CCS, you should see a separate command prompt window open behind it. This is the consolelog, and any print statements from your ROV code should appear here.

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


ROV Module Writers Guide/Processing Data - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

ROV Module Writers Guide/Processing Data

Retrieving and processing target data

Contents

  • 1 Retrieving Other Target Data
  • 2 'fetch' Functions - Fetching raw data
  • 3 'scan' Functions - Using data from other modules or instances
  • 4 Sharing data across views
  • 5 Data Validation and Reporting Errors
  • 6 Writing Robust View Code

Retrieving Other Target Data

The state object passed to the view functions only contains the data in the structure; ROV does not automatically follow any pointers when decoding the structure. Any references to data outside the structure, such as arrays, strings, or pointers to other structures, will be represented simply by their address.

Retrieving the actual data associated with these pointers is done using special functions provided by ROV through the 'xdc.rov.Program' interface.

Below are the Program APIs. The return types 'Instance_View' and 'Module_View' are not actual types, these are just used to indicate that the API returns an instance view structure or a module view structure.

xdc.rov.Program interface

Object fetchStruct(FetchDesc desc, Ptr addr);
Array fetchArray(FetchDesc desc, Ptr addr, Int len);
String fetchString(Ptr addr);

Instance_View[] scanInstanceView(String modName, String tabName);
Module_View scanModuleView(String modName, String tabName);
DataArr scanDataView(String modName, String tabName);
RawView scanRawView(String modName);
Instance_View scanHandleView(String modName, Ptr instAddr, String tabName);
Instance_View scanObjectView(String modName, Any obj, String tabName);

There are two classes of xdc.rov.Program APIs which retrieve data from the target. 'scan' APIs such as scanInstanceView() and scanModuleView() run view initialization code and return view structures. 'fetch' APIs such as fetchStruct() and fetchArray() retrieve arbitrary data from the target.

API documentation for these APIs can be found with xdc.rov.Program, and examples can be found in part two of this guide.

'fetch' Functions - Fetching raw data

In order to fetch data from the target, ROV must know the data's type in order to know how many bytes to read as well as how to properly decode the raw data. As a result, the Program.fetchStruct() and Program.fetchArray() functions take as their first parameter a 'FetchDescriptor' object which gives ROV information about the type of the data to be fetched.

A fetch descriptor object is automatically generated for every reference-type field in a module's state structures. These generated objects hang off the state objects passed to the view functions and always have a name of the form fieldName$fetchDesc.

For example, a state structure with the following fields:

Instance_State structure example

struct Instance_State {
    Char      arr[ ]; // An array
    MyStruct *sptr;   // A pointer to a structure.
}

Will have the generated fields 'obj.arr$fetchDesc' and 'obj.sptr$fetchDesc'. These can be used in their respective fetch functions as follows:

Instance_State usage example

function viewInitBasic(obj, view) {
    var arr = Program.fetchArray(obj.arr$fetchDesc, obj.arr, len);
    var myStruct = Program.fetchStruct(obj.sptr$fetchDesc, obj.sptr);
}

'scan' Functions - Using data from other modules or instances

The data displayed in one module's view will often depend on data from another module. View init code may access the raw state of other modules, or it may access the views of other modules. Accessing the raw state of another module is discouraged since this does not provide any support for data validation. As a convention, retrieve data using only the views of other modules where possible.

Retrieving a particular view from a module is done using one of four 'scan' APIs that are a part of the Program module. The scan APIs are:

scan APIs

Instance_View[] scanInstanceView(String modName, String tabName);
Module_View scanModuleView(String modName, String tabName);
Instance_View scanHandleView(String modName, Ptr instAddr, String tabName);
Instance_View scanObjectView(String modName, Any obj, String tabName);

These APIs are documented in the Program module. 'scanModuleView' is used to scan a module-level view, and 'scanInstanceView' is used to scan an instance-level view. Calling scanInstanceView will process the requested view for every instance of that module, and return an array of views. In contrast, 'scanHandleView' takes a handle to an instance, and scans only that instance.

The fourth API, 'scanObjectView' has a more advanced use case. It is used to scan an instance that is embedded within another object. That is, it is used when a state structure doesn't contain a handle to another instance but actually has the other instance allocated within it.

Calling Program.scanObjectView will not read any additional data from the target, since the state structure was already read as part of reading its parent structure.

There is an additional scan API for retrieving the raw state of another module, 'scanRawView'.

scanRawView

RawView scanRawView(String modName);

The scanRawView returns a structure defined in xdc.rov.Program which contains the module state as well as an array of instance state structures.

Sharing data across views

Modules may have data which needs to be referenced by multiple views supported by the module. This can be accomplished using the Program.getPrivateData() API, which returns an arbitrary JavaScript object. Any data can be attached to this object and shared across views. There is one of these objects per module, and the objects are reset whenever the ROV model is reset (such as every time the target is run and halted).

Module private data example

var data = Program.getPrivateData("ModA");
if (data.sharedData === undefined) {
    data.sharedData = ... // retrieve the data from the target
}
// Go on to use the shared data...

Data Validation and Reporting Errors

If while processing a view you discover that some of the target data is corrupted and holds incorrect or impossible values, you can report this to the ROV user as an error message.

ROV allows you to associate an error string with each individual field in a view. In the ROV GUI, if a field has an error string associated with it, that field will have its background set to red, and the error string will appear as a tooltip message if the user hovers their mouse over the field.

To specify an error string, use the Program.displayError API, passing it the view structure, the name of the field to display the error in, and the error message to display. If there is a problem with a view structure field named 'priority', for example:

error string example

Program.displayError(view, "priority", "Corrupted state: The value of 'priority' is greater than 'maxPriority'.");

Writing Robust View Code

When retrieving data from the target, it is important to appreciate that there may be problems with the data due to a target's corrupted state. Since ROV is often used as a debugging tool on a corrupted system, it is important that ROV handle errors as gracefully as possible, while still providing helpful information to the ROV user.

All of the 'Program.fetch...' and 'Program.scan...' APIs will intentionally throw an exception if they encounter a problem. The purpose of throwing these exceptions is so that bad data will not be operated on in the view code. This way, if the exception is not caught, the view function will exit before operating on the bad data.

The 'Program.fetch...' APIs will throw an exception if there was a problem reading memory, such as a bad address. The 'Program.scan...' APIs will throw an exception if there are any errors reported in the $status fields for the returned view. All other Program APIs should not throw any exceptions.

It is important, then, to surround all calls to 'fetch' and 'scan' APIs with try / catch blocks, so that any errors can be handled and reported intelligently. ROV will not crash if these exceptions are not caught, but the user will have less information to work with.

When an exception is caught, it is recommended that you report an error with the field you were processing to the user, and include the message from the exception.

For example, when scanning a Handle to an instance:

try/catch example

try {
    var inst = Program.scanHandle('Task', pendElem.task, 'Basic');
}
catch (e) {
    Program.displayError(view, "taskLabel", e);
    return;
}

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


ROV Module Writers Guide/View Types - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

ROV Module Writers Guide/View Types

Different ways to display data in the ROV GUI

Contents

  • 1 View Types
    • 1.1 Instance View
    • 1.2 Module View
    • 1.3 Instance Data View
    • 1.4 Module Data View

View Types

There are five types of ROV views, defined by xdc.rov.ViewInfo.ViewType. The 'RAW' ViewType is reserved for ROV; modules can only define one of the first four views.

metaonly enum ViewType {
    INSTANCE,
    MODULE,
    INSTANCE_DATA,
    MODULE_DATA,
    RAW
}

The type of the ROV view determines how the data is displayed in the ROV GUI as well as how the view function is run.

Instance View

An instance view is displayed in the ROV GUI as a table where each instance is a separate row in the table. The below screenshot is an example.

The view initialization function for an instance view is run once per instance of the module. For example, if there are five instances of ModA in an application, then the view init function will be run five times.

XDC maintains lists of all of the dynamically and statically created instances of each module, and ROV uses these to automatically detect all of the module instances in the system.

Advanced: ROV does not automatically find embedded instances, however. Embedded instances are instances which have been allocated within another structure, and are created using the 'construct' API. ROV only discovers these instances as they are found by the views of modules containing these embedded instances. The list of embedded instances is refreshed at each breakpoint.

An instance view function is passed two arguments: (1) an instance of the view structure, and (2) an instance state structure of one of the module's instances. For example:

function viewInitBasic(view, obj)

Module View

A module view is displayed in the ROV GUI as a table with a single row. Each column is a property of the module. The below screenshot is an example.

Image:ROV Module View.PNG

A module view function is called only once per module. It takes two arguments: (1) the view structure, and (2) the module state structure from the target.

Instance Data View

The instance data view type is intended for displaying tables of data per instance. Good examples are displaying a list of the free memory blocks in a memory manager, or all of the records in a log buffer.

An instance data view is displayed in the ROV GUI as a combination of a tree and a table. The tree on the left side of the view contains a node for each of the instances of the module. Selecting a node from the tree on the left brings up a table of data on the right.

The view structure you define for an instance data view has a different purpose than the ones you define for an instance or module view. Rather than represent the entire instance, an instance data view structure merely represents a single element of data. Each row of an instance's data table is represented by an instance of the view structure.

An instance data view function is called once per instance. It takes two arguments: (1) An instance of the xdc.rov.Program.InstDataView structure, and (2) an instance state structure for one of the module's instances. The xdc.rov.Program.InstDataView structure contains two fields: a label and an array of elements.

metaonly struct InstDataView {
    String     label;
    Any        elements[];
}

The label field is the label you want associated with this instance which will appear as a node in the tree in the GUI.

The array of elements is the array of data elements you want to display. When you create the ROV facet for your module the 'structName' you specify for an instance data view should be a structure containing the fields you want to display in the table.

An instance data view requires that you use a special API to create instances of your view structure (the data element) to populate. Use the Program.newViewStruct(modNam, tabName) API to create each new data element.

The following example demonstrates these concepts.

ModA.xdc

import xdc.rov.ViewInfo;

module ModA {

    metaonly struct DataView {
        UInt32     val;
    }

    @Facet
    metaonly config ViewInfo.Instance rovViewInfo =
        ViewInfo.create({
            viewMap: [
                ['Data', {type: ViewInfo.INSTANCE_DATA, viewInitFxn: 'viewInitData', structName: 'DataView'}],
            ]
        });

instance:

    create();

internal:

    struct Instance_State {
        UInt32    buffer[10];
    }

}
ModA.xs

/*
 * ======== instance$static$init ========
 * Initialize static instance.
 */
function instance$static$init(obj, params)
{
    /* Initialize the buffer to values 0-10. */
    for (var i = 0; i < 10; i++) {
        obj.buffer[i] = i;
    }
}

/*
 *  ======== viewInitData ========
 *  Instance data view.
 */
function viewInitData(view, obj)
{
    var Program = xdc.useModule('xdc.rov.Program');

    /* Display the instance label in the tree */
    view.label = Program.getShortName(obj.$label);

    /* For each element of the buffer... */
    for (var i = 0; i < obj.buffer.length; i++) {
        /* Create a new data element to display the value. */
        var elem = Program.newViewStruct('rovtests.ModA', 'Data');

        elem.val = obj.buffer[i];

        /* Add the element to the list. */
        view.elements.$add(elem);
    }
}

Module Data View

The module data view type is intended for displaying a table of data which is global to the module. An example is the output buffer of the xdc.runtime.SysMin module which holds printf strings.

The view structure you define for a module data view has a different purpose than the ones you define for an instance or module view. Rather than represent the entire instance, a module data view structure merely represents a single element of data. Each row of a module data table is represented by an instance of the view structure.

A module data view function is called once per module. It takes one argument, a Program.ModDataView structure.

metaonly struct ModDataView {
    Any        elements[];
}

This structure has one field which is the array of data elements to be displayed. When you create the ROV facet for your module the 'structName' you specify for an instance data view should be a structure containing the fields you want to display in the table.

An instance data view requires that you use a special API to create instances of your view structure (the data element) to populate. Use the Program.newViewStruct(modNam, tabName) API to create each new data element.

The following example demonstrates these concepts.

ModB.xdc

import xdc.rov.ViewInfo;

module ModB {

    metaonly struct DataView {
        UInt32     val;
    }

    @Facet
    metaonly config ViewInfo.Instance rovViewInfo =
        ViewInfo.create({
            viewMap: [
                ['Data', {type: ViewInfo.MODULE_DATA, viewInitFxn: 'viewInitData', structName: 'DataView'}],
            ]
        });

internal:

    struct Module_State {
        UInt32    buffer[10];
    }

}
ModB.xs

/*
* ======== module$static$init ========
* Initialize module state.
*/
function module$static$init(mod, params)
{
    /* Initialize the buffer to values 0-10. */
    for (var i = 0; i < 10; i++) {
        mod.buffer[i] = i;
    }
}

 /*
 *  ======== viewInitData ========
 *  Instance data view.
 */
function viewInitData(view)
{
    var Program = xdc.useModule('xdc.rov.Program');

    /* Retrieve the module's module state structure */
    var rawView = Program.scanRawView('rovtests.ModB');
    var mod = rawView.modState;

    /* For each element of the buffer... */
    for (var i = 0; i < mod.buffer.length; i++) {
        /* Create a new data element to display the value. */
        var elem = Program.newViewStruct('rovtests.ModB', 'Data');

        elem.val = mod.buffer[i];

        /* Add the element to the list. */
        view.elements.$add(elem);
    }
}

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


ROV Module Writers Guide/Conventions and Keywords - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

ROV Module Writers Guide/Conventions and Keywords

Discussion of conventions for naming views, functions, etc.

Conventions and Keywords

There are no reserved words in ROV.

  • The tabs may have any name.
  • The view structures may have any name.
  • The view functions may have any name.
  • The module Facet configuration parameter may have any name.

The following are some recommended conventions, though.

Tab Names

  • Use 'Basic' for a view of the module's instances which returns quickly
  • Use 'Detailed' for a view of the module's instances which requires more time to process. Detailed views should generally include all of the fields from the 'Basic' view.
  • Use 'Module' for a view of the of the module's state.
  • Name data views based on what they contain, for example 'Records' or 'Buffers'.
  • Display instance tabs first, followed by module tabs, and finally data tabs. For example, 'Basic', 'Detailed', 'Module', 'Records'.

View Structures

  • Name the view structures after the tab names. For example, 'BasicView', 'DetailedView', 'ModuleView', 'RecordsView'

View Functions

  • Give the view functions the name viewInit<tab name>. For example, 'viewInitBasic', 'viewInitDetailed', etc.

Module Facet

  • Name the module facet configuration parameter 'rovViewInfo'.

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


ROV Module Writers Guide/Module Writer FAQ - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

ROV Module Writers Guide/Module Writer FAQ

Discussion of specific ROV tasks and use cases

This section of the guide deals with specific ROV use cases. It is organized like a FAQ in question and answer form with code snippets and discussion of the answers.

Contents

  • 1 How do I incorporate the data from my 'Basic' view into my 'Detailed' view?
  • 2 If I have a Handle to an instance, how do I retrieve the view for that instance?
  • 3 How do I retrieve a view from another module if I don't have a Handle?
  • 4 How do I retrieve the raw state data for a module?
  • 5 How do I retrieve the view for an embedded instance (advanced)?
  • 6 How do I fetch a structure for which I have an address?
  • 7 I have a pointer to a structure, but the pointer is not part of my state. How do I fetch the structure?
  • 8 My state structure contains an array. How do I fetch the array's data?
  • 9 How do I fetch a string?
  • 10 How do I fetch a global scalar value?
  • 11 How do I retrieve the label for my instance?
  • 12 How do I access the module configuration values used to configure my application?
  • 13 How can I save data to be shared across different views?
  • 14 How do I retrieve the address of my state structure?
  • 15 How do I lookup the symbols associated with an address?
  • 16 How do I display the names for an enum type instead of the integer values?

How do I incorporate the data from my 'Basic' view into my 'Detailed' view?

With the tab support in ROV, the convention for the relationship between a 'Basic' and a 'Detailed' view is that the Detailed view displays all of the same fields as the Basic view, but with a few extra fields which require extra processing.

To avoid duplicating all of the processing for your basic view, simply call your 'viewInitBasic' function from your 'viewInitDetailed' function.

Module.xdc

metaonly struct BasicView {
    String  label;
    Int     fldA;
    Int     fldB;
}

metaonly struct DetailedView {
    String  label;
    Int     fldA;
    Int     fldB;
    Int     fldC;
}
Module.xs

function viewInitDetailed(view, obj)
{
    // Call the basic view function first
    viewInitBasic(view, obj);

    // Fill in the other fields
}

This will potentially result in the same view code being run twice. For example, if the user clicks on the 'Basic' tab and then clicks on the 'Detailed' tab, the 'Basic' view function will be run twice. The penalty is usually minor, though, since the target state has already been read in.

If I have a Handle to an instance, how do I retrieve the view for that instance?

If a state object contains a handle to an instance of another module, the view for that handle can be retrieved using Program.scanHandleView.

Module.xdc

Instance_View {
    String taskLabel;
}

Instance_State {
    Task.Handle tsk;
}
Module.xs

function viewInitBasic (view, obj)
{
    try {
        var tskView = Program.scanHandleView('Task', obj.tsk, 'Basic');
    }
    catch (e) {
        Program.displayError(view, "taskLabel", e);
        return;
    }

    view.taskLabel = tskView.label;
}

How do I retrieve a view from another module if I don't have a Handle?

To retrieve a view of another module, you just need the module name and the name of the view that you want to retrieve. Use Program.scanModuleView if the view is a module-type view, and use Program.scanInstanceView if the view is an instance-type view. Program.scanModuleView will return just the requested module view. Program.scanInstanceView will return an array of instance views, one for each instance of the module.

Module.xs

try {
    var semViews = Program.scanInstanceView('Semaphore', 'Basic');
}
catch (e) {
    Program.displayError(view, "blockedOn", e);
    return;
}

for each (var semView in semViews) {
    // Do something with the Semaphore's view data
}

How do I retrieve the raw state data for a module?

To retrieve just the state data for another module, and not its processed view data, you can use the Program.scanRawView API. This returns a structure of type xdc.rov.Program.RawView, which contains the module state, an array of all the instance states, and an object containing all of the module's configuration info.

The use of this API is discouraged unless there is no other way to retrieve the desired data. The problem with using it is that the raw data has not been validated by the module's own view, and so you may end up operating with corrupted data.

Module.xs

try {
    var rawView = Program.scanRawView('Task');
}
catch (e) {
    Program.displayError(view, "someField", e);
    return;
}

// Do something with the module state
var curTask = rawView.modState.curTask;
for each (var instState in rawView.instStates) {
    // Do something with the instance states
}

// Do something with the module config info
var numPriorities = rawView.modCfg.numPriorities;

The scanRawView API can also be used as a way for an instance view to retrieve the raw module state, but again it is preferable to retrieve a formal Module view so that it includes some data validation.

How do I retrieve the view for an embedded instance (advanced)?

If a state object contains an embedded instance of another module, a view for that embedded instance can be retrieved using Program.scanObjectView.

Module.xs

try {
    var qView = Program.scanObjectView('ti.sysbios.misc.Queue', obj.pendQ, 'Basic');
}
catch (e) {
    Program.displayError(view, "pendQ", e);
    return;
}

// Do something with the view
var elem = qView.elem;

Since XDCtools has no way of knowing what embedded objects are present in a system, embedded objects do not appear in the list of a module's instances until they have been scanned in this way.

How do I fetch a structure for which I have an address?

The Program.fetchStruct API is used to retrieve and decode a structure from the target given its address. It takes a fetch descriptor and the address of the structure to fetch. Fetch descriptors are explained here.

The fetchStruct API returns a JavaScript object representing the structure with the data from the target.

Module.xs

try {
    var myStruct = Program.fetchStruct(obj.structPtr$fetchDesc, obj.structPtr);
}
catch (e) {
    Program.displayError(view, "pendElems", e);
    return;
}

// Do something with the fetched struct
view.fieldA = myStruct.fieldA;

I have a pointer to a structure, but the pointer is not part of my state. How do I fetch the structure?

It is possible to have a pointer that is not a part of your state structure, or that actually has a different type then what is specified in the state structure. For example, if you traverse a linked list of data, the type of the element pointers may be different than the type of data on the list.

In this case, you will not have a '$fetchDesc' property generated in your object for the type of data you are interested in. It is still possible to fetch this data, however.

For every type that a module defines, a '$fetchDesc' property is defined for that type. For example, if the Semaphore module defines a struct PendElem, then the Semaphore module will have a property 'Semaphore.PendElem$fetchDesc'.

Module.xs

var Semaphore = xdc.useModule('Semaphore');

try {
    var pendElem = Program.fetchStruct(Semaphore.PendElem$fetchDesc, pendElemAddr);
}
catch (e) {
    Program.displayError(view, "pendElems", e);
    return;
}

// Do something with the fetched struct (pendElem)

My state structure contains an array. How do I fetch the array's data?

The Program.fetchArray API is used to retrieve an array from the target given its address and length. It takes a fetch descriptor, the address of the array, and the length of the array.

The fetchArray API returns a JavaScript array containing the data from the target.

Module.xdc

struct Instance_State {
    Char stack[];
};
Module.xs

var data = Program.fetchArray(obj.stack$fetchDesc, obj.stack, obj.stackSize);

If the array contains structures, those structures will be decoded. However, if the array contains pointers, the data at those pointers will have to be fetched separately.

How do I fetch a string?

If your state structure contains a string, the field will simply contain the address of the string, and not the string of characters. To retrieve the string itself, use the Program.fetchString API, passing it just the address of the string.

Module.xs

try {
    view.myString = Program.fetchString(obj.myString);
}
catch (e) {
    Program.displayError(view, "myString", e);
}

ROV retrieves the string by reading characters starting at the given address until it finds the terminating character '\0'. To protect against memory corruption, ROV will read a maximum of 128 characters and throw an error if this limit is reached.

How do I fetch a global scalar value?

If you have an address and want to retrieve a global scalar, you will need to use the xdc.rov.support.ScalarStructs module. This module simply defines a structure for every XDC scalar type. The structures are named after the scalar, such as ScalarStructs.S_UInt. The structures contain a single field with the name 'elem' which is of the type of the scalar.

ScalarStructs.xdc

struct S_UInt {
    UInt elem;
};

To retrieve the scalar, use the fetch descriptor from the ScalarStructs module for the structure corresponding to your scalar. For example, to retrieve a UInt32, use ScalarStructs.S_UInt32$fetchDesc.

Pass this fetch descriptor to the Program.fetchStruct API, and it will return a structure containing your scalar in the 'elem' field of the structure.

For example, to retrieve a UInt32 at the address 'addr':

var Program = xdc.useModule('xdc.rov.Program');
var ScalarStructs = xdc.useModule('xdc.rov.support.ScalarStructs');

/* Fetch the UInt32 at address 'addr' using the ScalarStructs module. */
var sstruct = Program.fetchStruct(ScalarStructs.S_UInt32$fetchDesc, addr);

/* fetchStruct will return a structure with the value in the 'elem' field. */
var myInt = sstruct.elem;

How do I retrieve the label for my instance?

All instances have a label, which is stored in obj.$label. The label varies depending on whether or not a name was given to the instance by the user.

Task@c0000008// No name given
Task@c0000008:myTsk0// Named 'myTask0'

To retrieve just the given name of the instance, without the module name and address, use the Program.getShortName API:

Module.xs

view.label = Program.getShortName(obj.$label);

If a name was not given to the instance, Program.getShortName will return an empty string.

How do I access the module configuration values used to configure my application?

The module config values used to configure the application are available from within the view initialization functions. They can be accessed by calling Program.getModuleConfig(moduleName), which returns an object containing the configuration info.

In this example, the instance's priority is compared to the configured maximum priority to validate it.

Module.xs

view.priority = obj.priority;

/*
 * Validate 'priority' by comparing the actual priority to the configured
 * maximum priority.
 */
var modCfg = Program.getModuleConfig('Task');
if (obj.priority > modCfg.numPriorities) {
    Program.displayError(view, "priority", "Corrupted data: Task priority is greater" +
                                           "than Task.numPriorities");
}

How can I save data to be shared across different views?

Some modules may contain data which is referenced by more than one of the module's views. ROV provides a mechanism for storing and sharing this data across the different views using the Program.getPrivateData API.

The 'getPrivateData' API takes a module name and returns a JavaScript object which can be used to store data. Data can be stored by hanging it off of this object.

ROV will refresh these objects at every breakpoint (whenever the ROV Model receives a 'clear cache' command).

Module.xs

var Program = xdc.useModule('xdc.rov.Program');

/* Retrieve the private data object for this module. */
var modData = Program.getPrivateData('modA');

/* Check if the data has been retrieved yet. */
if (modData.myData === undefined) {
    /*
     * Retrieve the data and store it in modData.myData so
     * that it can also be accessed by other views that need it.
     */
}

/* The data is available to work with. */

How do I retrieve the address of my state structure?

The 'obj' parameter to the view init functions has a '$addr' field which stores the address of the module or instance state structure. This is the same address displayed in the 'address' field of the GUI.

Module.xs

var address = obj.$addr
// Do something with the address

How do I lookup the symbols associated with an address?

If a state object contains a pointer which has a symbol, such as a function pointer, a reverse symbol lookup can be performed to retrieve the symbol name using the Program.lookupDataSymbol and Program.lookupFuncName functions. The 'lookupDataSymbol' function is used for symbols in data pages and the 'lookupFuncName' function is used for symbols in text pages.

Because there may be multiple symbols at a given address, each of these functions returns an array of symbols.

Module.xs

/* Get the name of the function at the address 'obj.fxn'. */
var symArr = Program.lookupFuncName(obj.fxn);
view.fxn = symArr;

/* Get the name of the symbol at the address 'obj.$addr'. */
symArr = Program.lookupDataSymbol(Number(obj.$addr));
view.stateName = symArr;

How do I display the names for an enum type instead of the integer values?

Enum values have a separate string and integer representation. Use String(enumValue) to force the string representation and Number(enumValue) to force the integer representation.

Module.xdc

enum Mode {
    Mode_COUNTING,
    Mode_BINARY
};

struct Instance_State {
    Mode mode;
};
Module.xs

view.mode = String(obj.mode); // sets mode to "Semaphore.Mode_COUNTING"
view.mode = Number(obj.mode); // sets mode to "0"

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


ROV Module Writers Guide/Full Examples - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

ROV Module Writers Guide/Full Examples

Complete examples to test or use as templates

Full Examples

Basic Example

This example demonstrates the most basic features of ROV. Your initial ROV view should be no more complicated than this one.

ModA.xdc

module ModA {
    metaonly struct BasicView {
        String label;
        Int count;
        Boolean working;
    };

    @Facet
    metaonly config ViewInfo.Instance rovViewInfo =
        ViewInfo.create({
            viewMap: [
                ['Basic', {type: ViewInfo.INSTANCE, viewInitFxn: 'viewInitBasic', structName: 'BasicView'}],
            ]
        });

internal:

    struct Instance_State {
        UInt16 count;
        Boolean flag;
    };
}

ModA.xs

function viewInitBasic (view, obj) {
    var Program = xdc.useModule('xdc.rov.Program');

    view.label = Program.getShortName(obj.$label);
    view.count = obj.count;

    /* Validate count value */
    if (obj.count > 3) {
        Program.displayError(view, "count", "Error: Count should never be larger than 3.");
    }

    view.working = obj.flag;
}

Intermediate Example

This example uses ModA from the Basic Example.

ModB.xdc

module ModB {
    struct Message {
        UInt16 id;
        String msg;
    };

    metaonly struct BasicView {
        String label;
        String messages[];
        Int numSenders;
    };

    @Facet
    metaonly config ViewInfo.Instance rovViewInfo =
        ViewInfo.create({
            viewMap: [
                ['Basic', {type: ViewInfo.INSTANCE, viewInitFxn: 'viewInitBasic', structName: 'BasicView'}]
            ]
        });

internal:

    struct Instance_State {
        UInt16 numMsgs;
        Message messages[];
        ModA.Handle modAInst;
    };
}

ModB.xs

function viewInitBasic (view, obj) {
    view.label = Program.getShortName(obj.$label);

    /* Fetch the messages array. */
    try {
        var msgArr = Program.fetchArray(obj.messages$fetchDesc, obj.messages, obj.numMsgs);
    }
    catch (e) {
        Program.displayError(view, "messages", "Error: Problem reading messages array: " + e);
        return;
    }

    /* Fetch the message string from each message */
    for each (var msgStruct in msgArr) {
        try {
            var message = Program.fetchString(msgStruct.msg);
        }
        catch (e) {
            Program.displayError(view, "messages", "Error: Problem fetching message: " + e);
            return;
        }

        /* Add the message string to the view's messages array. */
        view.messages.$add("(" + msgStruct.id + ") " + message);
    }

    /* Get the value for numSenders from the ModA handle */
    var modAView = Program.scanHandleView('ModA', obj.modAInst);
    view.numSenders = modAView.count;
}

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Config Model FAQs - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Config Model FAQs

General questions about the XDCtools configuration model

FAQ-080923-1 | How do I set a function configuration parameter
FAQ-081229-1 | How can I insert my own C code into the configuration generated .c file
FAQ-081229-2 | How do I define C language global variables within a configuration script
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


FAQ-080923-1 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

FAQ-080923-1

How do I set a function configuration parameter

Function configuration parameters can be set by directly referencing a function (with the right type) declared in any module. For example, suppose you have a module named MyMod that defines a function named output ad you want to use this function as the value of the SysMin.outputFxn configuration parameter.

app.cfg

1

var MyMod = xdc.useModule("«somepkg».MyMod");
var SysMin = xdc.useModule("xdc.runtime.SysMin");
SysMin.outputFxn = MyMod.output;
MyMod.xdc

module MyMod {
        :
     Void output(Char *buffer, UInt len);
}

Line 1 above binds the output function provided by MyMod to the SysMin module's outputFxn configuration parameter. Note that this assignment will fail if the type of MyMod.output does not exactly match the type of SysMin.outputFxn.

To reference functions that are not in any module, you can define a new module that simply declares "legacy" functions. For example, suppose you already have a function named output that has a type signature that matches the SysMin.outputFxn configuration parameter. If you declare this in a module named MyMod as shown below, the configuration script above will work as before.

MyMod.xdc

module MyMod {
     extern Void output(Char *, UInt) = output;
}

Whether you use a module that provides an output function or you simply declare the existence of such an external function in your existing C code, the assignment to SysMin.outputFxn is "type safe"; i.e., the configuration engine checks the type of both the left and right hand sides of the assignment and fails if the types do not match exactly. If you don't care about type safety, the configuration engine also allows you to reference an external function without this check.

To reference a function that is not declared in any module but is guaranteed to exist in the final application, the configuration engine allows you to assign a string that begins with "&" to function type configuration parameters. The characters following "&" simply name the external function being referenced. Suppose you have a function named output that you know is compatible with SysMin.outputFxn, the configuration script below can be used to bind output to SysMin.outputFxn.

app.cfg

SysMin = xdc.useModule("xdc.runtime.SysMin");
SysMin.outputFxn = "&output";

In this case, the configuration engine does no type checking and assumes that the application will contain an external function named output that has the right type signature.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


FAQ-081229-1 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

FAQ-081229-1

How can I insert my own C code into the configuration generated .c file

Any module can contribute C source code to the generated .c file that the configuration process generates. The code that is placed in this file will become part of the applications that use this configuration. Modules specify the C code they want to include via the @Template attribute. In the example below, we show all the files necessary to create a package named mypackage that contains a module named MyMod which generates some C statements that become part of any configuration that uses the mypackage.MyMod module.

package.xdc

package mypackage {
    module MyMod;
}
MyMod.xdc

@Template("myCode.xdt")
module MyMod {
}
package.bld

/* nothing needed here */

The C code to be generated is specified via a template file named "myCode.xdt". This template is expanded in the context of the configuration model and can refer to any modules loaded as part of the configuration process.

Although arbitrary JavaScript statements and values can be used within a template, in the example below, we simply specify a global string variable named myString initialized to a constant value. For a brief description of the syntax and some simple examples of template files see Methods for generating other files in the The XDCscript Language User's Guide.

myCode.xdt

const char *myString = "hello from mypackage.MyMod";

To cause this template to be included in a configuration, the configuration script must "use" the mypackage.MyMod module.

app.cfg

var MyMod = xdc.useModule("mypackage.MyMod");

Whenever mypackage.MyMod is used in a configuration, the string myString declared by myCode.xdt can be referenced from your application as illustrated below.

app.c

#include <xdc/runtime/System.h>

extern char *myString;
int main(int argc, char *argv[]) {
    System_printf("%s\n", myString);
    return (0);
}
output

hello from mypackage.MyMod
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


FAQ-081229-2 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

FAQ-081229-2

How do I define C language global variables within a configuration script

The special Program.global configuration parameter can be used to define simple global variables accessible from within C code.

In the example below, we define a global varibale named myString and initializes it to "hello world".

app.cfg

Program.global.myString = "hello world";

The global variable myString defined by app.cfg above can be referenced from your application as illustrated below.

app.c

#include <xdc/runtime/System.h>
#include <xdc/cfg/global.h>

int main(int argc, char *argv[]) {
    System_printf("%s\n", myString);
    return (0);
}
output

hello world

The xdc/cfg/global.h header file defines the type of all global variables declared in app.cfg. This has the advantage that the C compiler can catch discrepancies between what is defined by app.cfg and what is used in your C code. But, to make this possible you must pass an additional -D option on the compile line of you application sources; for more details see Portable Inclusion of Configuration Constants within the Integrating RTSC Modules topic.

Alternatively, if you are willing to give up on type safety, you can simply add an appropriate extern to your sources (and hope that app.cfg and your C code never gets out of sync).

app.c

#include <xdc/runtime/System.h>
extern char *myString;

int main(int argc, char *argv[]) {
    System_printf("%s\n", myString);
    return (0);
}
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


RTSC/XDCtools __VERSTRDOT__

Under construction

This topic was excluded from the offline document snapshot because it had red light review status at the time of publication. You can view the current version of the topic online at rtsc.eclipse.org.

Copyright © 2009 The Eclipse Foundation. All Rights Reserved


XDCtools Reference Manual - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCtools Reference Manual

Detailing all elements of the XDCtools product

Command Line Tools | Command line tools overview
XDCspec Language Reference | Elements of the RTSC specification language
XDCscript Language Reference | Elements of the RTSC meta-language
C Language Binding | Compile-time & run-time elements introduced by RTSC
XDCtools Packages | Reference documentation for all XDCtools packages

XDCtools Error Codes | Error codes reported by XDCtools
Trace Support | Trace API
XDCtools File Extensions | File extensions used by XDCtools
XDCtools Internal Version Numbers | Managing packages built with different versions of XDCtools
Glossary | Terms used throughout the RTSC-Pedia
Bibliography | References to external resources

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Command Line Tools - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Command Line Tools

Command line tools overview

Contents

  • 1 Core commands
  • 2 XDCscript commands
  • 3 Utility commands

This reference provides an overview of the command-line tools provided for creating and working with packages. In addition, it provides a brief description of the most frequently used commands.

Core commands

XDCtools requires just two "core" commands shown in the table below.

Command - xdc | eXpanDed C package build command
Command - xs | XDCscript interpreter

XDCscript commands

In addition to the core commands above, many of the basic tools are implemented as packages containing XDCscript utilities. Each of the commands shown in the table below is run using the xs utility above.

Command - xdc.tools.cdoc | Package documentation tool
Command - xdc.tools.cdoc.sg | Interactive package documentation tool
Command - xdc.tools.check | Repository compatibility check tool
Command - xdc.tools.closure | Closure tool
Command - xdc.tools.configuro | Target content configuration tool
Command - xdc.tools.path | Package path display tool
Command - xdc.tools.path.sg | Interactive Package Path browser tool
Command - xdc.tools.repoman | Repository management tool
Command - xdc.tools.repoman.sg | Interactive repository management tool

Utility commands

Finally, the commands above use a few "utility" commands that are useful in their own right. These last tools are most useful within makefiles or shell scripts.

Command - xdcdir | Print package name or repository
Command - xdclpf | Package file list command
Command - xdcpkg | Package list command
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Command - xdc.tools.cdoc - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Command - xdc.tools.cdoc

Package documentation tool

Contents

  • 1 Synopsis
  • 2 Description
  • 3 Examples

Synopsis

xs xdc.tools.cdoc [options ...]

For a complete description of this tool's options, see its static Cdoc reference page xdc.tools.cdoc. Alternatively, you can always view this reference documentation using the interactive version of this tool (xdc.tools.cdoc.sg) from the command line.

    % xs xdc.tools.cdoc.sg xdc.tools.cdoc

Description

In addition to viewing reference documentation interactively as described in Using the CDOC reference help system, you can run a "batch" version of the CDOC tool to generate static HTML files for any collection of packages. After generating static pages, you can leverage popular search tools such as Google Desktop to locate relevant documentation or use a tool like htmldoc to create a single PDF reference manual.

Examples

Suppose for example that you have packages installed in the repositories c:/bios_6_00/packages and c:/codec_engine_1_20/packages. The following command generates configuration documentation for all of these packages and places it into the output directory named ref_html.

    xs xdc.tools.cdoc -od:ref_html -Pr c:/bios_6_00/packages c:/codec_engine_1_20/packages
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Command - xdc.tools.check - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Command - xdc.tools.check

Repository compatibility check tool

Contents

  • 1 Synopsis

Synopsis

xs xdc.tools.check [options ...]

For a complete description of this tool and its options, see the Cdoc reference page xdc.tools.check.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Command - xdc.tools.path.sg - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Command - xdc.tools.path.sg

Interactive Package Path browser tool

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

xs xdc.tools.path.sg [options ...]

For a complete description of this tool and its options, see the Cdoc reference page xdc.tools.path.sg.

Description

This tool is useful for quickly viewing the set of package available on a specified package path.

It also shows potential problems with you current package path by highlighting duplicate package on the package path and warning when the first occurrence of a duplicate package in the package path is missing a file contained in one of the duplicates. This situation can lead to your projects inadvertently referencing files from two different versions of the same package!

See also

Command - xdc.tools.path | Package path display tool
xdc.tools.path.sg | Client documentation for xdc.tools.path.sg

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


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 Wed, 08 Dec 2010 20:07:45 GMT


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 Wed, 08 Dec 2010 20:07:45 GMT


Command - xdc.tools.repoman.sg - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Command - xdc.tools.repoman.sg

Interactive repository management tool

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

xs xdc.tools.repoman.sg

For a complete description of this tool's options, see the Repoman reference page xdc.tools.repoman.sg.

Description

The Repoman graphical tool is used to manage package repositories and check the validity of package paths. The left-hand pane displays archived packages and packages found in repositories. The right-hand pane shows packages in repositories that are treated as a package path. Package details can be viewed by hovering the mouse cursor over the package name, as shown in the following figures.

Duplicate packages are displayed under the package name on a separate branch, by version and date.

Add Repository or Archive Directory Dialog

You can populate the "Explore Packages" pane by clicking the [image] button on the pane's toolbar and adding or removing directories via the dialog box. Directories are first searched for archived packages. If none are found, they are then recursively searched for package directories.

You can copy or extract any package in the Explore Packages pane by selecting it and dragging it to the "My Package Path" pane and dropping onto a repository in that pane.

To have an archived package's dependencies extracted along with it, right-click on the package and select a dependency level prior to using drag-and-drop. "Immediate Dependencies" extracts only those packages that are directly referenced by the selected package. "All Dependencies" recursively extracts all of the package's dependencies and their dependencies.

The "My Package Path Repositories" pane is initially populated with the contents of XDCPATH environment variable. You can add additional repositories by clicking the [image] button on the pane's toolbar and specifying a repository in the dialog box that comes up. The dialog box also allows you to create new repositories (directories). Only repositories created in this manner can have packages added and deleted.

A common use for this tool is to copy or extract existing packages to create a “working” repository. You might then modify some of the packages or delete some packages. Then, you can view the “working” repository’s internal compatibility and its compatibility in relation to other repositories.

Your XDCPATH is not modified by adding or removing repositories using Repoman. However, you can copy the resulting path to the clipboard and update your XDCPATH manually.

Remove Repository From My Package Path

You can remove a repository from the path by selecting it and clicking the [image] icon, or by right-clicking on the repository and selecting the "Remove From Path" menu item.

You can move a repository up or down in the order by right-clicking it and selecting the "Move up" or "Move down" menu item.

To delete a package from a repository, select the package and click the [image] icon, or right-click on the package and select "Delete". All of the packages' files will be deleted.

You can copy the pane’s repository list to the clipboard by clicking the [image] icon. The list is delimited by semicolons and provided in the order they are shown in the pane.

My Package Path Error

You can check the package path for errors by clicking the [image] icon. If any errors or warnings are generated, an error [image] or warning [image] icon is displayed next to the repository containing the package that generated the error and also next to the package. To see a description of the error, hover the mouse over the package's icon.

You can save repository information to a file by choosing File->Save from the menu bar. The repository, the name and version of all packages in the My Package Path pane, and the directories used to display packages in the Explore Packages pane will be saved.

You can open repository information files that were created with File->Save by choosing File->Open from the menu bar. Opening a previously saved file displays a dialog showing the repositories that package information was saved for and their state.

If all of the repositories about which information was saved are intact, you can click Done to see the usual Repoman view. If any of the repositories have been modified or deleted, you can start a restore operation for them. You may specify a different name for any repository being restored. If the repository cannot be restored completely to its original state, the operation does not create, modify or copy any directories or files. You may repeatedly retry the restore operation with different search paths.

See also

Command - xdc.tools.repoman | Repository management tool
xdc.tools.repoman.sg | Client documentation for xdc.tools.repoman.sg

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


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 Wed, 08 Dec 2010 20:07:45 GMT


package xdc.tools.repoman.sg
index URL

Graphical interface to repoman tool

  • USAGE
  • OPTIONS
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
generated on Wed, 08 Dec 2010 20:07:45 GMT


Command - xdcdir - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Command - xdcdir

Print package name or repository

Contents

  • 1 Synopsis
  • 2 Description
  • 3 Options
  • 4 Exit Status

Synopsis

xdcdir [-t[a]] base_dir ...

where base_dir is a package's base directory.

Description

The xdcdir command prints a package's name in dot format (e.g., ti.platforms.sim62xx) or its relative repository path (e.g., ../../../) for the specified base directories.

% xdcdir .../packages/xdc/runtime
xdc.runtime

% xdcdir -t .../packages/xdc/runtime
../..

% xdcdir -ta .../packages/xdc/runtime
/home/user/xdctools_3_15_00_14/packages

This command is particularly useful in makefiles that want to avoid hard coding paths to directories that are a fixed relative position from a package's repository; changing a package's name does not require changing the makefile.

Options

-t
rather than the package's name, print the package's repository relative to the specified base directory.
-ta
print the package's repository as an absolute path.

Exit Status

The following exit values are returned:

  • 0 Successful completion.
  • > 0 An error occurred.

Error messages are output to stderr.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Command - xdclpf - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Command - xdclpf

Package file list command

Contents

  • 1 Synopsis
  • 2 Description
  • 3 Options
  • 4 Examples
  • 5 Exit Status

Synopsis

xdclpf [-help] [-a] base_dir ...

Description

The xdclpf command is used to list all files contained in specified packages, one file per line. Since packages can be nested, standard commands such as find and ls are unable to eliminate files that belong to other packages.

File names output by xdclpf are always relative to a package path containing the package's repository. For example, if the current working directory is the base of the xdc.runtime package (say /home/user/xdctools_3_15_00_14/packages/xdc/runtime), all file names displayed by the following commands are identical and begin with "xdc/runtime/".

% xdclpf .
xdc/runtime/package.xdc
    :
% xdclpf ../runtime
xdc/runtime/package.xdc
    :

Options

-a
exclude all packages under the specified package base. Without this flag only packages with the same repository are excluded.
-help
display usage information

Examples

The following command will output all files that are part of the package whose base directory is the current working directory.

% xdcpkg .

To create a "development snapshot" of a package, named my.pkg, which can be easily exchanged between developers:

% xdclpf ./my/pkg > list
% tar czf my_pkg.tar.gz -T list

To compare the manifests of two versions of the same package:

% xdclpf old/my/pkg | sort > old_list
% xdclpf new/my/pkg | sort > new_list
% diff old_list new_list

To check that a new version of a package can safely be placed ahead of an old version on a single package path (i.e., all files in the old version appear in the new version):

% xdclpf old/my/pkg | sort > olist
% xdclpf new/my/pkg | sort > nlist
% cat nlist nlist olist | sort | uniq -u

Exit Status

The following exit values are returned:

  • 0 Successful completion.
  • > 0 An error occurred.
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Command - xdcpkg - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Command - xdcpkg

Package list command

Contents

  • 1 Synopsis
  • 2 Description
  • 3 Options
  • 4 Examples
    • 4.1 Finding Packages
    • 4.2 Getting Package Information
  • 5 Environment Variables
  • 6 Exit Status

Synopsis

xdcpkg [-a] [-d] [-l[:fmt]] [-m[c]] [-p path] [-r] [-s] [dir ...]

Description

The xdcpkg command is used to find and display information about packages. By default, xdcpkg finds only packages that can be built (i.e., packages with both package.xdc and package.bld files).

Options

-a
display all packages, not just the buildable ones,
-d
treat each directory as a package directory and (recursively) find the package's pre-requisites and display them.
-l[:fmt]
display all package information, not just each package's base directory. If the optional ':' is used, the remainder of the option is taken to be a "format" string that controls the contents and format of the output. The format string is similar to a printf format string; each character (except %) in the string is written to stdout, "output specifiers" are introduced by the % character, the special characters '%', '\', tab, new line, and carriage return are output by the character pairs '\%', '\\', '\t', '\n', or '\r' respectively. The following "output specifiers are supported":
%b
base directory of package
%c
release build counter
%d
release date in milliseconds since midnight (GMT) 1/1/1970
%k
package's compatibility key (as specified by the package's package.xdc file)
%l
package's release label
%n
package's name
%r
package's release name
%t
top directory containing package (i.e., the package's repository)
%v
a "version" number created by appending the package's compatibility key with the build counter
%V
a "version" number created by appending the package's compatibility key with the release date in milliseconds
If fmt is not specified, print package names followed by their base directory, release name, release label, version, and release date using the following format:
%n;%b;%r;%l;%v;%d
-m[c]
output make dependencies in the form a:b where a and b are package base directories. If the character c is specified, the ':' character is replaced by c.
-p path
the path to use as the complete package path (not just $XDCPATH)
-r
treat each directory as a repository and display only those packages that are "rooted" in this repository. Without this option, each directory is recursively searched for any package in any repository at or below the starting directory
-s
shallow package search; don't recurse when looking for packages. If -d is also specified only display immediate requirements. This option can't be used with -r.
-v
verbose output; display error messages for any failure.

Examples

Finding Packages

Finding Packages. The following command will output all directories, starting from the current working directory, containing a buildable package.

% xdcpkg .

To find all packages (buildable or not) starting from the current working directory:

% xdcpkg -a .

To find all buildable prerequisite packages for the package whose base is the current working directory:

% xdcpkg -d .

To find an appropriate build order for all buildable prerequisite packages of the package whose base is ./:

% xdcpkg -m" " -d . | tsort

To find all prerequisite packages for the package whose base is the current working directory:

% xdcpkg -a -d .

To find all packages whose repository is ./src:

% xdcpkg -a -r ./src
Getting Package Information

Getting Package Information. The following command will display just the names of all packages located in (or below) the directories ./src and c:/ti/packages:

% xdcpkg -a -l:%n ./src c:/ti/packages

To output the names and a unique version identifier (between []'s) for all packages installed in the repository c:/ti/packages:

% xdcpkg -r -a -l:"%n[%V, %r]" c:/ti/packages</nowiki>

Environment Variables

In the event that the -p flag is not specified, xdcpkg constructs a package path from the environment variables XDCROOT and XDCPATH as follows:

$XDCPATH;$XDCROOT/packages;^

where,

XDCPATH
a string of ';' separated directories that contain packages. This path is used to locate packages. Recall that the '^' character in the XDCPATH definition refers to the current package's repository.
XDCROOT
this variable names an installation directory of the XDCtools.
^
this character represents the current package's repository.

Exit Status

The following exit values are returned:

  • 0 Successful completion.
  • > 0 An error occurred.
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec Language Reference - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec Language Reference

Elements of the RTSC specification language

Contents

  • 1 Grammar
  • 2 Attributes
    • 2.1 Module Attributes
    • 2.2 Method Attributes
    • 2.3 Type Attributes
    • 2.4 Configuration Attributes
  • 3 XDoc tags
  • 4 See also

Grammar

XDCspec - config-specification | configuration specification syntax
XDCspec - const-specification | under construction
XDCspec - enum-specification | under construction
XDCspec - extern-specification | under construction
XDCspec - function-specification | under construction
XDCspec - package-specification | Package specification syntax
XDCspec - proxy-specification | under construction
XDCspec - struct-specification | under construction
XDCspec - typedef-specification | under construction
XDCspec - unit-specification | Module and interface specification syntax
XDCspec - declaration | under construction
XDCspec - initializer | under construction

Attributes

Attributes are additional properties that can be associated with elements of the XDCspec language. Attributes are always prefixed with '@' and must appear immediately before the element to which they apply.

For example, it is possible to declare that a module is "gated" by adding the @Gated attribute just before the module statement in the module's spec file.

@Gated
module System { ...}

The following list enumerates the complete set of currently supported attributes.

XDCspec - @Annex | This parameter or method has been added
XDCspec - @CommandOption | under construction
XDCspec - @CustomHeader | This module's header includes handcrafted headers
XDCspec - @DirectCall | Always generate a direct call to this function
XDCspec - @Encoded | This type has custom encoding
XDCspec - @Facet | This meta-only unit or config parameter is a facet
XDCspec - @Factory | This proxy is a factory
XDCspec - @Gated | This module has a gate
XDCspec - @GlobalNames | This module defines "unprefixed" identifiers
XDCspec - @InstanceFinalize | This module's instances require finalization
XDCspec - @InstanceInitError | This module's instance initialization can fail
XDCspec - @Macro | This function is a macro
XDCspec - @ModuleStartup | This module has a startup initialization function
XDCspec - @NoRuntime | This module does not use xdc.runtime
XDCspec - @Opaque | This structure's fields are not publicly documented
XDCspec - @Prefix | This module defines a custom prefix
XDCspec - @Proxy | under construction
XDCspec - @System | under construction
XDCspec - @TargetHeader | This metaonly module generates a header
XDCspec - @Template | This module contributes configuration C code
XDCspec - @XmlDtd | This structure can be serialized as XML
Module Attributes

Module Attributes. The following list enumerates the attributes applicable to modules and interfaces.

XDCspec - @CustomHeader | This module's header includes handcrafted headers
XDCspec - @Facet | This meta-only unit or config parameter is a facet
XDCspec - @Gated | This module has a gate
XDCspec - @GlobalNames | This module defines "unprefixed" identifiers
XDCspec - @InstanceFinalize | This module's instances require finalization
XDCspec - @InstanceInitError | This module's instance initialization can fail
XDCspec - @ModuleStartup | This module has a startup initialization function
XDCspec - @NoRuntime | This module does not use xdc.runtime
XDCspec - @Prefix | This module defines a custom prefix
XDCspec - @TargetHeader | This metaonly module generates a header
XDCspec - @Template | This module contributes configuration C code
Method Attributes

Method Attributes. The following list enumerates the attributes applicable to methods.

XDCspec - @Annex | This parameter or method has been added
XDCspec - @DirectCall | Always generate a direct call to this function
XDCspec - @Macro | This function is a macro
XDCspec - @System | under construction
Type Attributes

Type Attributes. The following list enumerates the attributes applicable to types defined in a module or interface.

XDCspec - @Encoded | This type has custom encoding
XDCspec - @XmlDtd | This structure can be serialized as XML
Configuration Attributes

Configuration Attributes. The following list enumerates the attributes applicable to configuration parameters defined in a module or interface.

XDCspec - @CommandOption | under construction
XDCspec - @Facet | This meta-only unit or config parameter is a facet
XDCspec - @Factory | This proxy is a factory
XDCspec - @Proxy | under construction

XDoc tags

XDCspec - @_nodoc | under construction
XDCspec - @a | under construction
XDCspec - @b | under construction
XDCspec - @c | under construction
XDCspec - @details | under construction
XDCspec - @field | under construction
XDCspec - @link | under construction
XDCspec - @param | under construction
XDCspec - @p | under construction
XDCspec - @p(blist) | under construction
XDCspec - @p(code) | under construction
XDCspec - @p(dlist) | under construction
XDCspec - @p(html) | under construction
XDCspec - @p(nlist) | under construction
XDCspec - @p(text) | under construction
XDCspec - @see | under construction
XDCspec - @summary | under construction
XDCspec - @value | under construction

See also

xdc.services.spec Client documentation for xdc.services.spec

NOTE: The following documents are obsolete but contain information that has yet to be moved to the current document

XDCspec Language Summary XDCspec language quick reference

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - config-specification - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - config-specification

configuration specification syntax

A configuration parameter is a feature that behaves like a "property" of the underlying module or instance object -- a readable (and sometimes writeable) variable of virtually any type. In the most general case, module-wide configuration parameters are assigned within the meta-domain and then become persistent constants within the target-domain; per-instance configuration parameters are likewise assignable within the meta-domain, but are limited to supporting run-time instance creation within the target-domain. Where appropriate, configuration parameters can be restricted to the meta-domain as well as designated readonly after initialization.

A configuration parameter inherited from some previously specified interface can itself be overridden -- typically to (re-)define its initial value. A configuration parameter can also be finalized, effectively freezing its definition and precluding further overrides.

config-parameter
config-modifiers config typed-declaration [ = initializer]? ;
config-modifiers
final? override? readonly? metaonly?
  • The optional initializer must yield a value consistent with the typed-declaration, using the rules of assignment-compatibility defined by XDCscript for the meta-domain. If no initializer is supplied, the configuration parameter starts out undefined in the meta-domain.
  • If override is specified among the config-modifiers for a configuration parameter, its typed-declaration as well as its use of readonly and metaonly must exactly match that of the inherited configuration parameter being overridden. Configuration parameters marked final cannot be overridden.
  • A readonly configuration parameter without an initializer can still be assigned a persistent value in the meta-domain, during construction of an underlying module/instance object.
  • By convention, configuration parameters names are camelCase identifiers.
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - const-specification - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - const-specification

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - enum-specification - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - enum-specification

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - extern-specification - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - extern-specification

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - function-specification - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - function-specification

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - package-specification - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - package-specification

Package specification syntax

Within the realm of XDCspec, a package is a programmatic element that logically contains modules and interfaces -- collectively termed units -- within its scope. Besides introducing its own public name, a package specification may identify other named packages upon which the current package in some way depends. The specification may also declare its (in)compatibility with earlier versions of the same package, as well as further constrain the level of compatibility required of any dependent packages. Specially-formatted comments embedded in package-specification source file are processed by the xdoc utility when generating HTML documentation for a set of packages.

package-specification
requires-statement*

//! @xdoc
package qualified-package-name compatibility-key?
{
   unit-declaration-list*
}[;]?
//! @xdoc
requires-statement
requires internal? qualified-package-name compatibility-key? ;
qualified-package-name
dirname [.dirname]*
compatibility-key
[ number [,number]* ]
unit-declaration-list
unit-category UnitName [,UnitName]* ;
unit-category
module | interface
  • A qualified-package-name should in general be globally-unique. Packages are located in a directory with a matching name found along the system package path.
  • A package-specification resides in a distinguished source file named package.xdc, found in the corresponding package directory.
  • Each unit-declaration-list introduces individual modules and interfaces within the scope of the current package, all of which must be uniquely named. Units with the same name may only appear in different packages.
  • Each requires-statement designates another package upon which the current package in someway unconditionally depends. The requires-relation among packages cannot contain cycles. The optional internal qualifier allows you to distinguish between packages that are required to "use the package" verses package required to "build the package"; use internal for package only required to build the package. Bundles, for example, require other packages in order to create the repositories they provide. On the other hand, the bundle certainly does not require these packages when the bundle is being used (it provides them!).
  • A compatibility-key is generally interpreted as an numeric array of the form [m,s,r,p] where m denotes major functionality, s denotes source level, r denotes specification radius, and p denotes a particular patch. A new release of a package is source-compatible with any predecessor in which m is the same, and is binary-compatible with that predecessor if s is the same as well.
  • By convention, package names are composed of lowercase identifiers whereas units (modules or interfaces) are named with TitleCase identifiers.
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - proxy-specification - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - proxy-specification

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - struct-specification - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - struct-specification

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - typedef-specification - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - typedef-specification

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - unit-specification - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - unit-specification

Module and interface specification syntax

A unit specification defines all client-visible programmatic features of a module or interface. While virtually identical with respect to their XDCspec syntax, semantically this pair of programmatic elements are almost opposites: a module is concrete and closed, comprising a public specification accompanied by a conforming implementation; an interface is abstract and open, comprising only a public specification which others may import and ultimately implement. In general, the specification of a module or interface can inherit features from exactly one other (interface) specification, which itself can inherit additional features in the same manner -- as if the latterâ€™s cumulative set of features had been directly defined with the unit specification of its inheritor.

The features defined within the scope of a unit partition themselves into two main groups: module-wide features, which are associated with a solitary programmatic object encapsulating the implementation of some concrete module; and per-instance features, which are associated with a family of programmatic objects individually created and manipulated by the same underlying module. Aside from auxiliary definitions of supporting constants and types (deemed module-wide for convenience), features with a meaningful run-time presence in the underlying implementation -- assignable configuration parameters along with callable functions -- can participate in either category. As with packages, special documentation comments can be associated with the module/interface as a whole as well as with any named feature defined within its scope.

In the general case, a single unit specification for a module or interface defines a presence in two congruent programming domains:

  1. the target-domain, where specified features become accessible within executable programs (written in C/C++) running on some particular platform; and
  2. the meta-domain, where specified features become accessible within hosted scripts (written in XDCscript) used to configure these very same target programs ahead of their execution. In some cases, the specification of a particular module or interface can be restricted to the meta-domain -- useful when constructing configuration "facades" atop legacy content as well as when distributing host-based meta-content for use in a broader range of scripting contexts.
unit-specification
//! @xdoc
metaonly? unit-category UnitNameinherited-interface?{
    module-wide-feature* [ instance:per-instance-feature*]?
}[;]?
//! @xdoc
inherited-interface
inherits qualified-unit-name
qualified-unit-name
[qualified-package-name .]? UnitName
module-wide-feature
//! @xdoc
[auxiliary-definition | config-parameter | function-declaration]
per-instance-feature
//! @xdoc
[config-parameter | function-declaration]
  • A qualified-unit-name effectively extends the (already) globally-unique name of the unit's containing package. If the qualified-package-name prefix is absent, the current package name is presumed.
  • A unit-specification resides in a source file named UnitName.xdc, found in the directory of its containing package.
  • Each module-wide-feature or per-instance-feature introduces an individual feature with the scope of the current unit, all of which must be uniquely named. Features with the same name may only appear in different units.
  • An inherited-interface designates a single interface whose features are introduced within the scope of the current unit. Any module or interface can optionally inherit features from another interface, so long as the inherits-relation among all units remains acyclic.
  • Each unit manifests itself in both the target- and meta-programming domains, unless designated metaonly. As a rule, inheritors of metaonly interfaces must themselves be metaonly modules or interfaces.
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - declaration - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - declaration

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - initializer - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - initializer

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - @Annex - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @Annex

This parameter or method has been added

@Annex(N)

This attribute can be applied to configuration parameters and functions. When new functions and configuration parameters need to be added to a module, adding @Annex(N) in front of them ensures that only R digit of the compatibility key needs to be changed. N must be an integer bigger than any of the integers used for @Annex in previous versions of the module.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - @CommandOption - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @CommandOption

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - @CustomHeader - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @CustomHeader

This module's header includes handcrafted headers

Modules that have this attribute supply two additional headers named Mod__prologue.h and Mod__epilogue.h that are included by the generated Mod.h header. These handcrafted headers may contain macro, static inline, and type definitions.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - @DirectCall - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @DirectCall

Always generate a direct call to this function

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

@DirectCall

Description

Methods with the DirectCall attribute do not call through a function stub generated at configuration time. This attribute ensures that there is no extra overhead for call to this method even in unoptimized builds of an application. However, it also means that this method can not be traced via implicit logging.

See also

Using_xdc.runtime_Logging/Example_2 Events provided by all RTSC target modules

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Using xdc.runtime Logging/Example 2 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

Using xdc.runtime Logging/Example 2

Events provided by all RTSC target modules

Contents

  • 1 Implicit Events from RTSC Modules
  • 2 Method Invocation Events
  • 3 Instance Life-cycle Events
  • 4 See also

Implicit Events from RTSC Modules

By default, all RTSC target modules support entry and exit events for every method. In other words, whenever any method of module's function is entered (called) a Log event containing the parameters passed to the function is triggered and when the function exits (returns) a Log event containing the function return value is triggered. In addition, for those modules that support instances, instance life-cycle trace is also available; whenever an instance is created or deleted, an appropriate Log event is triggered. All of these events are called implicit because the module's author did not have to add any code to their sources to trigger these events.

Applications that use RTSC target modules (e.g., any of the DSP/BIOS 6.x modules) can be configured to enable the generation and display of these events in much the same way as shown in Example 1. To illustrate how to use implicit events, we suppose there is a RTSC module named examples.runtime.Mod whose specification includes the following statements.

Mod.xdc

module Mod {
    Bool foo(Int x, String s); /*! A module function */

  instance:
    Int bar();                 /*! An instance function */
}

In this example we show a series of configuration files, each building on the previous, with differences indicated by a ! symbol at the beginning of each line that changed or a + in front of each line added. The first configuration file differs only slightly from the one in Example 1:

  • we add an xdc.useModule() statement for the module examples.runtime.Mod that's used in the example applications, and
  • rather than configuring the Main module (which only applies to non-RTSC modules), we configure the special Defaults module which specifies default settings for all modules (including Main).

hello.cfg
+

!
!

!

var Mod = xdc.useModule("examples.runtime.Mod");
var Log= xdc.useModule("xdc.runtime.Log");
var Diags = xdc.useModule("xdc.runtime.Diags");

/* enable runtime entry events for all code (by default) */
var Defaults = xdc.useModule("xdc.runtime.Defaults");
Defaults.common$.diags_INFO = Diags.RUNTIME_ON;

/* use the LoggerSys ILogger service provider */
var Logger = xdc.useModule("xdc.runtime.LoggerSys");

/* create and bind a default logger for all code */
Defaults.common$.logger = Logger.create();

This new configuration has the advantage that it allows us to easily control all RTSC modules in the application with a single setting rather than having to individually control each module.

Although it is convenient - especially during development - to enable logging for all modules as shown above, for applications with many modules it is prudent to explicitly configure the modules you expect to trace in the deployed application. See the Performance Considerations section for more information.

Before showing the Log events implicitly generated by RTSC modules, it is interesting to see the effect of this new configuration file on the "hello world" application shown in Example 1.

hello.c

#include <xdc/std.h>

#include <xdc/runtime/Log.h>
#include <xdc/runtime/Diags.h>

int main(int argc, String argv[])
{
    Log_info0("hello world");

    return (0);
}
Output

xdc.runtime.Main: "app.c", line 8: hello world

Notice that the output of hello.c is unchanged by this new configuration. Why? The Defaults module's configuration parameters apply to all modules (including Main) that have not been explicitly set. By setting a logger in the Defaults module and not setting one in Main, this configuration script has the same effect as hello.c's original configuration script.

Method Invocation Events

Unless explicitly disabled, every method of a RTSC module supports both "entry" and "exit" events: on entry to a method, the method's name and its arguments are marshalled into an "entry" (Diags_ENTRY) event and, on return from the method, the method's name and return value are marshalled into an "exit" (Diags_EXIT) event.

app.c

#include <xdc/std.h>

#include <examples/runtime/Mod.h>

int main(int argc, String argv[])
{
    /* call a "module-wide" method */
    Mod_foo(100, "a string");

    return (0);
}
Output

examples.runtime.Mod: --> foo: (100, "a string")

Notice that the application never referenced Log or Diags and only calls the Mod_foo() method of the Mod module. Because we enabled "entry" events and specified LoggerSys as the default ILogger service provider, an "entry" event is generated on every call to any Mod method and this event is displayed by LoggerSys. The displayed entry event contains the name of the module, the name of the method, and the values of all arguments to the method.

RTSC modules support both "entry" events and "exit" events, so where is the output for the exit or return from Mod_foo()? In order to cause "exit" events to be generated, we need to return to the configuration file and enable these events.

app.cfg

+

var Mod = xdc.useModule("examples.runtime.Mod");
var Defaults = xdc.useModule("xdc.runtime.Defaults");
var Diags = xdc.useModule("xdc.runtime.Diags");

/* enable runtime controllable diagnostics in all modules (by default) */
Defaults.common$.diags_ENTRY = Diags.RUNTIME_ON;

Mod.common$.diags_EXIT = Diags.RUNTIME_ON;  /* enable Mod exit events only */

/* use the LoggerSys ILogger service provider */
var Logger = xdc.useModule("xdc.runtime.LoggerSys");

/* create an ILogger instance and make it the default program-wide logger */
Defaults.common$.logger = Logger.create();

With Mod exit events enabled, a second line of output from the logger (prefixed by the sequence "<--") shows both the name of the method and its return value (if there is any).

app.c

#include <xdc/std.h>

#include <examples/runtime/Mod.h>

int main(int argc, String argv[])
{
    /* call a "module-wide" method */
    Mod_foo(100, "a string");

    return (0);
}
Output

examples.runtime.Mod: --> foo: (100, "a string")
examples.runtime.Mod: <-- foo: 1

Notice that we only enable "exit" events for the Mod module rather than making this setting the default for all modules as we did for "entry" events. Either would work for this example, but "entry" events are often sufficient to understand the operation of the application and, however small the logging overhead is, we don't want to add any unnecessary overhead. On the other hand, there are times when "exit" events can be vital to properly deciphering the operation of an application - especially in multi-threaded environments.

Instance Life-cycle Events

Like C++ (or Java) classes, RTSC modules often support instance object creation. While the implicit method event generation shown above might be sufficient in some cases, RTSC distinguishes the instance creation/deletion methods from "ordinary" methods: there is a separate "life-cycle" (Diags_LIFECYCLE) event type that is used exclusively for these methods.

app.cfg

+

var Mod = xdc.useModule("xdc.runtime.Mod");
var Defaults = xdc.useModule("xdc.runtime.Defaults");
var Diags = xdc.useModule("xdc.runtime.Diags");

/* enable runtime controllable diagnostics in all modules (by default) */
Defaults.common$.diags_ENTRY = Diags.RUNTIME_ON;

Mod.common$.diags_EXIT = Diags.RUNTIME_ON;       /* enable Mod exit events only */
Mod.common$.diags_LIFECYCLE = Diags.RUNTIME_ON;  /* enable Mod lifecycle events only */

/* use the LoggerSys ILogger service provider */
var Logger = xdc.useModule("xdc.runtime.LoggerSys");

/* create an ILogger instance and make it the default program-wide logger */
Defaults.common$.logger = Logger.create();

Given this new configuration it's instructive to walk through a test application and correlate its calls with the Log event output. Each line of the output below has been numbered and each of these numbers appears next to the line in the test that generates the output. A complete explanation of each output line appears below.

app.c

1

2,3

4

5,6

7
8

9

#include <xdc/std.h>

#include <examples/runtime/Mod.h>

int main(int argc, String argv[])
{
    Mod_Params prms;
    Mod_Handle heapInst, stackInst;
    Mod_Struct struc;
    /* create a heap-based instance  */
    Mod_Params_init(&prms);
    prms.instance->name = "myHeapInst";
    heapInst = Mod_create(&prms, NULL);

    /* call a per-instance function */
    Mod_bar(heapInst);

    /* construct a stack-based instance */
    prms.instance->name = "myStackInst";
    Mod_construct(&struc, &prms);
    stackInst = Mod_handle(&struc);

    /* call bar on "stack" instance */
    Mod_bar(stackInst);

    /* delete the heap instance, twice! */
    Mod_delete(&heapInst);
    Mod_delete(&heapInst);

    /* delete the "stack" instance */
    Mod_destruct(&struc);
    return (0);
}
Output
1
2
3
4
5
6
7
8
9

examples.runtime.Mod: <-- create: @08051010('(null)')
examples.runtime.Mod: --> bar: (@08051010)
examples.runtime.Mod: <-- bar: 110
examples.runtime.Mod: <-- construct: @bffff21c('(null)')
examples.runtime.Mod: --> bar: (@bffff21c)
examples.runtime.Mod: <-- bar: 110
examples.runtime.Mod: --> delete: (@08051010)
examples.runtime.Mod: --> delete: (@00000000)
examples.runtime.Mod: --> destruct: (@bffff21c)

The output messages are annotated below.

1 | create a new Mod instance from a heap; the address of the instance is displayed
2,3 | call the instance method bar; the name of the method, the parameters to the method, and its return value are displayed
4 | construct a new Mod instance from stack memory; like the heap-based instance, the address of the instance is displayed
5,6 | call the bar method again but this time with the new stack-based instance
7 | delete the heap-based instance; the address of the instance being deleted is displayed
8 | delete the heap-based instance again; notice that the address displayed in this case is 00000000. This is not an error - module instance delete methods automatically nullify instance handles the first time they are deleted (to prevent heap corruption that would arise if an application inadvertently frees instance memory twice). Subsequent redundent deletes are detected (by a NULL instance handle) and silently ignored.
9 | destruct the stack-based instance; as with the heap-based instance, the address of the instance being destructed is displayed.

Unless you specify otherwise, space required to hold a pointer to a name is not reserved in instance objects and, as a result, the "life-cycle" events above did not provide the names of the instances that were specified in the application; the string " (null) " appears where the instance name would normally be displayed. Applications with thousands of instance objects can rarely afford the convenience of maintaining a unique symbolic name for every object. Once again, to enable symbolic instance name support (and the one extra word of overhead per instance object) we return to the configuration file and add this support for just the Mod module.

app.cfg

+

var Mod = xdc.useModule("examples.runtime.Mod");
var Defaults = xdc.useModule("xdc.runtime.Defaults");
var Diags = xdc.useModule("xdc.runtime.Diags");

/* enable runtime controllable diagnostics in all modules (by default) */
Defaults.common$.diags_ENTRY = Diags.RUNTIME_ON;

Mod.common$.diags_EXIT = Diags.RUNTIME_ON;       /* enable Mod exit events only */
Mod.common$.diags_LIFECYCLE = Diags.RUNTIME_ON;  /* enable Mod lifecycle events only */
Mod.common$.namedInstance = true;                /* enable Mod instance names  */

/* use the LoggerSys ILogger service provider */
var Logger = xdc.useModule("xdc.runtime.LoggerSys");

/* create an ILogger instance and make it the default program-wide logger */
Defaults.common$.logger = Logger.create();
Output

examples. runtime.Mod: <-- create: @08051010('myHeapInst')
examples. runtime.Mod: --> bar: (@08051010)
examples. runtime.Mod: <-- bar: 110
examples. runtime.Mod: <-- construct: @bffff21c('myStackInst')
examples. runtime.Mod: --> bar: (@bffff21c)
examples. runtime.Mod: <-- bar: 110
examples. runtime.Mod: --> delete: (@08051010)
examples. runtime.Mod: --> delete: (@00000000)
examples. runtime.Mod: --> destruct: (@bffff21c)

Setting namedInstance to true enables the name of these instances to be displayed (instead of (null) as above) at the expense of one word per instance which is used to retain a pointer to the name.

See also

Using xdc.runtime Logging/Example 1 | Classic "hello world" using Log
Using xdc.runtime Logging/Example 3 | Adding logging to existing code bases
Using xdc.runtime Logging/Example 4 | Adding Logging to RTSC Modules

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Using xdc.runtime Logging/Example 1 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

Using xdc.runtime Logging/Example 1

Classic "hello world" using Log

Contents

  • 1 "hello world"
  • 2 See also

"hello world"

In this section, we use a single configuration file for two different C programs: a "hello world" application and a simple variant that illustrates runtime control of Log events. This configuration (shown below) allows runtime control of all events, enables "info" events for non-RTSC modules, and outputs events via System_printf.

app.cfg

1
2

3

4

var Log = xdc.useModule("xdc.runtime.Log");
var Diags = xdc.useModule("xdc.runtime.Diags");

/* enable runtime control of "info" events for non-modules */
var Main = xdc.useModule("xdc.runtime.Main");
Main.common$.diags_INFO = Diags.RUNTIME_ON;

/* use the LoggerSys ILogger service provider */
var Logger = xdc.useModule("xdc.runtime.LoggerSys");

/* create and bind a logger for all non-module code */
Main.common$.logger = Logger.create();

In outline, the configuration file

  1. gets a reference to the Main module (via xdc.useModule()) so that subsequent statements can configure this module 1. The configuration of the Main module applies to all application code that is not already a RTSC module; i.e., all application code and any existing library code.
  2. enables runtime control of "info" events for the Main module and sets them to be initially enabled (Diags.RUNTIME_ON) 2. Alternatively, we could have set them to be initially disabled by setting Main.common$.diags_INFO to Diags.RUNTIME_OFF.
  3. uses the LoggerSys module 3 to create an instance of a Log event "handler" and sets this handler to be the Main module's logger 4. Instances of LoggerSys simply print events as they occur using System_printf()

This first C application simply logs a "hello world" using the Log_info0 API. This API generates an event of the category INFO, which is used for generic informational events. The event generated by Log_info0 also prepends the file and line number of the call site.

The event will be generated whenever "info" (Diags_INFO) events are enabled. Because the configuration enabled "info" events for all application code, the first Log_info0() statement generates the output shown on the right of the C source. Notice that, in addition to the file and line number and the "hello world" string, LoggerSys prints the name of the module that generated the event: in this case, xdc.runtime.Main.

app.c

#include <xdc/std.h>

#include <xdc/runtime/Log.h>
#include <xdc/runtime/Diags.h>

int main(int argc, String argv[])
{
    Log_info0("hello world");

    return (0);
}
Output

xdc.runtime.Main: "app.c", line 8: hello world

If a module's diagnostics are configured to allow real-time control, the application can enable and disable the production of diagnostic events via Diags_setMask(). This method takes a string argument which it interprets as a specification of what to enable or disable. The next example application uses Diags_setMask() to disable and then re-enable "info" events for the Main module.

app.c

#include <xdc/std.h>

#include <xdc/runtime/Log.h>
#include <xdc/runtime/Diags.h>

int main(int argc, char *argv[])
{
    /* disable info events associated with Main */
    Diags_setMask("xdc.runtime.Main-F");

    Log_info0("hello world");    /* DISABLED */

    /* enable info events associated with Main */
    Diags_setMask("xdc.runtime.Main+F");

    Log_info0("hello again");    /* ENABLED */

    return (0);
}
Output

xdc.runtime.Main: "app.c", line 16: hello again

Since the configuration enabled runtime control, the use of Diags_setMask() causes the first Log_info0() statement to be skipped; the string "xdc.runtime.Main-F" tells Diags_setMask() to disable "info" events (-F) for the xdc.runtime.Main module. The second call to Diags_setMask() enables "info" events for Main and, as a result, the second Log_info0() statement generates an event which is output by LoggerSys as shown to the right of the C source. The string passed to Diags_setMask() can enable, disable, or set any number of event categories, apply to any number of modules, and even has limited support for wildcards. The format of this string is described in Reference API Documentation for Diags_setMask().

Rather than modifying the C source to enable/disable event generation it is often desirable to run exactly the same executable but vary which events are enabled or disabled. This is easily accomplished if your program loader supports passing arguments (or environment variables) as part of loading the executable. In this case, the application can simply call Diags_setMask() with a string that is supplied by the loader.

char *eventMask = getenv("EVENT_MASK");
if (eventMask != NULL) {
    Diags_setMask(eventMask);
}

See also

Using xdc.runtime Logging/Example 2 | Events provided by all RTSC target modules
Using xdc.runtime Logging/Example 3 | Adding logging to existing code bases
Using xdc.runtime Logging/Example 4 | Adding Logging to RTSC Modules

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Using xdc.runtime Logging/Example 3 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

Using xdc.runtime Logging/Example 3

Adding logging to existing code bases

Contents

  • 1 Adding Logging to Existing Code Bases
  • 2 Casting Arguments to IArg
  • 3 More Granular Control Through xdc.runtime.Registry
  • 4 "hello world"
  • 5 See also

Adding Logging to Existing Code Bases

The simplest way to add logging is to simply #include the xdc.runtime.Log and xdc.runtime.Diags headers and insert appropriate Log_info, Log_warning, and Log_error statements into your existing code base.

#include <xdc/runtime/Log.h>
#include <xdc/runtime/Diags.h>
    :
Log_info2("Processed data: (0x%x, %d)", (IArg) handle, arg2);

This by itself allows clients of your code to get visibility into their use of your code in real-time, even in deployed systems.

All Log statements from code outside of RTSC modules will be sent to the ILogger associated with the xdc.runtime.Main module, and will be filtered by the xdc.runtime.Main module's diags mask.

Casting Arguments to IArg

Why do we have casts around some of the arguments to Log_print()? Unlike printf(), the Log_write() and Log_print() methods are not vararg functions; they are macros - which, prior to C99, are not allowed to take a variable number of arguments - that pass the specified arguments to an ILogger function whose arguments are of type IArg. The IArg type, while large enough to hold a pointer, is not a pointer type and many compilers emit a warning when passing a pointer argument to either Log_print() or Log_write(); the cast to IArg suppresses these warnings.

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; each argument has the same size after the normal C promotions.

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 "natural" format specifications (e.g., %d and %x with optional width specifications), System_printf() supports a special format conversion operator that specifies that all subsequent arguments have been widened to be of type IArg: all arguments after the sequence "%$A" are treated as though they have been widened.

More Granular Control Through xdc.runtime.Registry

You may want to allow clients of your code to independently configure and control your Log statements independent of other content producers. If all content producers rely on xdc.runtime.Main as the source of their Log events, system integrators are not able to easily separate events coming from different parts of their application.

The xdc.runtime.Registry module maintains a registry of modules which have been registered at runtime. Currently, the Registry is used to enhance logging for non-RTSC-module code, but it may eventually have other purposes.

By registering your code as a module and specifying a name for it, you are given a unique module id to identify your code as a source of log events, and are given a separate diags mask for controlling filtering at a more granular level.

"hello world"

This section demonstrates the use of the Registry through a simple example. This configuration (shown below) allows runtime control of all events, enables "info" events for all registered modules, and outputs events via System_printf.

app.cfg

1

2

3

4

var Log = xdc.useModule("xdc.runtime.Log");
var Diags = xdc.useModule("xdc.runtime.Diags");

/* Include the Registry */
var Registry = xdc.useModule("xdc.runtime.Registry");
/* Enable the 'INFO' category, by default, for all registered modules */
Registry.common$.diags_INFO = Diags.RUNTIME_ON;

/* use the LoggerSys ILogger service provider */
var Logger = xdc.useModule("xdc.runtime.LoggerSys");

/* Create and bind a logger for all registered modules */
Registry.common$.logger = Logger.create();

In outline, the configuration file

  1. Gets a reference to the Registry module (via xdc.useModule()) so that subsequent statements can configure this module 1.
  2. Enables runtime control of "info" events for all Registered modules 2. Alternatively, we could have set the INFO category to be initially disabled by setting Main.common$.diags_INFO to Diags.RUNTIME_OFF. The state of the Registry module's mask is used as the initial mask state for all newly registered modules.
  3. Uses the LoggerSys module 3 to create an instance of a Log event "handler" and sets this handler to be the Registry module's logger 4. Instances of LoggerSys simply print events as they occur using System_printf(). All events generated by registered modules will be sent to the Registry module's logger.

This simple application will demonstrate adding a module to the registry and logging from it. Note in the output that the log event is marked as coming from the module "app", rather than "xdc.runtime.Main" as in Example 1.

app.c
1

2

3

4

5

6

#define Registry_CURDESC    app_desc

#include <xdc/std.h>

#include <xdc/runtime/Registry.h>
#include <xdc/runtime/Log.h>

Registry_Desc app_desc;

int main(int argc, String argv[])
{
    Registry_Result result;

    result = Registry_addModule(&app_desc, "app");

    if (result != Registry_SUCCESS) {
        return (-1);
    }

    Log_info0("hello world");

    return (0);
}
Output

app: "app.c", line 20: hello world

This example demonstrates a number of steps required for using the Registry.

  1. In order to treat a C file as a module to be registered, it must define the symbol Registry_CURDESC 1 before the inclusion of any xdc.runtime module headers. This symbol should be defined to an externally declared Registry_Desc structure 3 which is used by the Registry to track state for your module.
  2. The C file must include the Registry.h header file 2.
  3. The module is added to the Registry with a call to Registry_addModule, passing the address of the Registry_Desc structure 4. A globally-unique name must be provided; here we are simply naming our module "app".
  4. The call to addModule will return a status code indicating success or the reason for failure.
  5. Once the C file has been added to the Registry as a module, we can call Log APIs without any changes.

Once a module has been added to the Registry, it has its own diags mask which can be modified using the Diags_setMask API. For example, to disable the INFO category for our "app" module,

#include <xdc/runtime/Diags.h>
    :
Diags_setMask("app-F");

See also

Using xdc.runtime Logging/Example 1 | Classic "hello world" using Log
Using xdc.runtime Logging/Example 2 | Events provided by all RTSC target modules
Using xdc.runtime Logging/Example 4 | Adding Logging to RTSC Modules

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Using xdc.runtime Logging/Example 4 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

Using xdc.runtime Logging/Example 4

Adding Logging to RTSC Modules

Contents

  • 1 Adding Logging to RTSC Modules
  • 2 Using Log_write() in lieu of Log_print()
  • 3 See also

Adding Logging to RTSC Modules

There is no need to explicitly add Log statements for method entry, method exit, or instance lifecycle event logging. The RTSC configuration tool automatically inserts the appropriate Log statements necessary to generate these events. So, in the implementation of a RTSC module, it is only necessary to add Log statements to your code base when you require additional event information; to track major mode changes, to monitor RTOS thread context switches, to log application-specific warnings, etc.

Using Log_write() in lieu of Log_print()

In order to minimize your module's runtime footprint you should use Log_write() in lieu of Log_print(); the format string passed to Log_print() can't be compressed or stored in a section separate from the other C strings in the end user's application. Fortunately, replacing Log_print() statements with Log_write() statements is quite straight forward.

Suppose, for example, that the following Log_print() statement appears in a module named Mod.

Log_print1(Diags_USER1, "server CPU load is %d %", serverLoad);

Add the following declaration to the Mod module's specification file (Mod.xdc):

Mod.xdc

config Log.Event serverLoadEvent = {
    mask: Diags.USER1,
    msg: "server CPU load is %d %"
};

And replace the Log_print1() statement above with the following:

Log_write1(Mod_serverLoadEvent, serverLoad);

See also

Using xdc.runtime Logging/Example 1 | Classic "hello world" using Log
Using xdc.runtime Logging/Example 2 | Events provided by all RTSC target modules
Using xdc.runtime Logging/Example 3 | Adding logging to existing code bases

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - @Encoded - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @Encoded

This type has custom encoding

Types with the Encoded attribute have runtime representations that differ so significantly from the meta-domain representation that the default C representation of these types must be overridden. The runtime representation is explicitly defined by the module producer by:

  1. declaring the C type in the module's (normally optional) custom C header files, and
  2. defining conversions from the meta-domain objects of an encoded type to a runtime value in the module's (normally optional) meta-domain implementation file.

For more details about encoded types, see Using Encoded Types.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - @Facet - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @Facet

This meta-only unit or config parameter is a facet

The @Facet attribute can only be applied to meta-only modules, interfaces, or Instance config parameters.

A module can have any number of Facet config parameters, but a module may not contain more then one Facet config parameter of the same type.

A Facet config parameter can only reference Instances of modules that are themselves declared to be Facets.

Using a module's or interface's $spec property, it is possible to "query" a module in the meta-domain to determine if it has a particular facet.

var SysMin= xdc.module("xdc.runtime.SysMin");

/* get the name of the "xdc.rov.ViewInfo" fact config parameter */
var facet = SysMin.$spec.queryFacet("xdc.rov.ViewInfo");
if (facet != null) {
    /* if SysMin has the "xdc.rov.ViewInfo" facet, get the instance */
    var inst = SysMin[facet];
       :
}

See also

XDCscript - Module-Object.$spec | Module specification object
xdc.services.spec | Client documentation for xdc.services.spec

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Module-Object.$spec - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Module-Object.$spec

Module specification object

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

«Mod».$spec

where «Mod» is a module object.

Description

The $spec property of module object is an object that provides access to various properties of the module derived from the module's specification («Mod».xdc). The $spec property is a LiveConnect instance of the Java class xdc.services.spec.Unit.

See also

xdc.services.spec | Client documentation for xdc.services.spec
XDCscript - Package-Object.$spec | Package specification object

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


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 Wed, 08 Dec 2010 20:07:46 GMT


XDCspec - @Factory - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @Factory

This proxy is a factory

A proxy with the Factory attribute effectively enables this proxy to create different sorts of instance objects at runtime and handle abstract instances originating from multiple delegates—all inheriting a common interface. See RTSC Interface Primer/Lesson 15 for an example.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - @GlobalNames - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @GlobalNames

This module defines "unprefixed" identifiers

By default, the "short" prefix used to reference a module's methods is the module's name (without the package prefix) followed by a single underscore ('_'). For example, the short name of the ti.sysbios.knl.Task module's create method is Task_setPri. The GlobalNames attribute causes an additional set of short names to be defined in which even the module prefix is absent; if the ti.sysbios.knl.Task module had the GlobalNames attribute, rather then reference Task_setPri, clients could also simply reference setPri.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - @Macro - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @Macro

This function is a macro

This attribute is applicable only to functions. If a function is declared in a spec file with "@Macro" preceding the function declaration, the generated header file will not contain a declaration for that function. The package producer must create Mod__prologue.h and Mod__epilogue.h custom header files, and define the function as a macro or a static inline function.

The package producer must use fully qualified function and parameter names in custom header files. For example, the declaration of a function in Mod.xdc in package pkgA

@Macro Int max(Int a, Int b);

must be accompanied with the definition that uses fully qualified names of the function

#define pkgA_Mod_max(a, b) ((a) > (b) ? (a) : (b))
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - @NoRuntime - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @NoRuntime

This module does not use xdc.runtime

By default, all target modules are assumed to require the xdc.runtime package. If a target module does not require xdc.runtime, the module should set this attribute to ensure that xdc.runtime modules will not be linked in unless the configuration contains target modules that require xdc.runtime modules.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - @Opaque - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @Opaque

This structure's fields are not publicly documented

This attribute is only applicable to structures. If this attribute is specified for a structure, the structure's fields are removed from documentation. The purpose of the attribute is to instruct clients of the module where the structure is defined not to reference the structure's fields directly.

The structure S defined in Mod.xdc as:

@Opaque
struct S {
    Int i;
    Float x;
}

appears in xdc.tools.cdoc generated documentation as:

C synopsis

typedef struct S S;

The actual generated header file is not affected by this attribute. Its impact is restricted to the generated documentation.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - @Prefix - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @Prefix

This module defines a custom prefix

@Prefix("pfx")

By default, the "short" prefix used to reference a module's methods is the module's name (without the package prefix) followed by a single underscore ('_'). For example, the short name of the ti.sysbios.knl.Task module's create method is Task_setPri. The Prefix attribute causes an additional set of short names to be defined in which even the module prefix is absent; if the ti.sysbios.knl.Task module specified Prefix("t_") attribute, rather then reference Task_setPri(), clients could also reference t_setPri().

The @GlobalNames attribute has the effect you would expect from @Prefix("").

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - @Proxy - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @Proxy

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - @System - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @System

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - @TargetHeader - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @TargetHeader

This metaonly module generates a header

@TargetHeader("template")

Interfaces and metaonly modules that want to generate a header file can use this attribute to specify a template. The output of evaluation of the template is then saved as that unit's header file.

The template is expanded as part of the "compilation" of module specifications. In addition, the following global variables are set:

$args
an array of length 1, where $args[0] is the "specification object" for the module with the TargetHeader attribute

The template file is located using the same search algorithm as xdc.findFile(). So, templates can be located in other packages and will be found along the package path.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - @Template - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @Template

This module contributes configuration C code

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

@Template("templateFile")

Description

Modules that want to generate C code that is included in application can specify a template that is expanded in the context of the configuration model and its results are directly inserted into the configuration's generated .c file.

The template file is located using the same search algorithm as xdc.findFile(). So, templates can be located in other packages and will be found along the package path.

The template is expanded in the context of the configuration model as part of the generation phase and, as a result, has access to a fully populated and validated xdc.cfg.Program object. In addition, the following global variables are set:

this
the module object associated with this the template
$args
an array of length 1, where $args[0] is an absolute path to the template file itself
$out
a java.io.PrintStream where all output is written; i.e., the output stream of the generated configuration .c output file

See also

XDCscript - Template-Body | Contents of the template file
XDCscript - Template-Object.genFile | Generate textual output file from a template
XDCscript - Template-Object.genStream | Generate textual output stream from a template

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Template-Body - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Template-Body

Contents of the template file

Contents

  • 1 Description
  • 2 Syntax
  • 3 Example
  • 4 See also

Description

The body of a template contains lines of text that are automatically output when the template object is expanded via genStream() or genFile(). It also contains lines of script that are evaluated prior to generating output. This script code can reference any object in the current environment — with $out, this, and $args bound to parameters of genStream().

this
an arbitrary object that is passed in by the caller; in the case of templates specified by the @Template attribute, this is the module object associated with the module that names this template via @Template.
$args
array of arguments passed in by the caller; in the case of templates specified by the @Template attribute, $args has just one element which is either the absolute path or a package path relative path of the template file itself.
$out
a java.io.PrintStream where all output is written; in the case of templates specified by the @Template attribute, $out is the output stream of the generated configuration .c output file.

In addition to the variables above, templates are expanded in the context of some domain model and the global objects associated with this model are also available. For example, templates specified by the @Template attribute are expanded in the context of the Configuration Domain and, as a result, the Program object can be used to affect the generated output.

Syntax

text`script`text ... \n
A line of text to be output by the template at this point. If present, all script between and including the `` quotes is replaced with its (textual) value in the current context.
% script ...\n
A single line of script evaluated by the template at this point.
%%{\n
stmt ...\n
stmt ...\n
%%}\n
Multiple lines of script to be evaluated at this point.

Example

The following script and template illustrate many of the capabilities of templates. This example generates a copyright header from a template.

gen.xs

var template = xdc.loadTemplate("copyright.xdt");
template.genStream(java.lang.System.out, this,
    ["TI", arguments]);
copyright.xdt

%%{
    var NAME = $args[0];
    var CTRB = $args[1];
    var DATE = new Date().getFullYear();
%%}
/*  Copyright `DATE` by `NAME`.
 *  All rights reserved. Property of `NAME`.
 *  Contributions from:
%for (var i = 0; i < CTRB.length; i++) {
 *      `CTRB[i]`
%}
 */

Running this script produces the following output.

xs -f gen.xs bob carol ted alice

/*  Copyright 2008 by TI.
 *  All rights reserved. Property of TI.
 *  Contributions from:
 *      bob
 *      carol
 *      ted
 *      alice
 */

See also

XDCscript - Template-Object | under construction
XDCscript - Template-Object.genFile | Generate textual output file from a template
XDCscript - Template-Object.genStream | Generate textual output stream from a template
XDCscript - xdc.loadTemplate | Create a template object from a template file
XDCspec - @Template | This module contributes configuration C code

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Template-Object.genFile - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Template-Object.genFile

Generate textual output file from a template

Contents

  • 1 Synopsis
  • 2 Parameters
  • 3 Description
  • 4 See also

Synopsis

var tplt = xdc.loadTemplate(templateFile);
tplt.genFile(outputFile, thisObj, args, clobber);

Parameters

outputFile
string name of the output file to be created
thisObj
object that is referenced within the template body via this
args
array of arguments referenced within the template body via $args
clobber
boolean which, if true, causes genFile to overwrite outputFile even if the contents of an existing file are identical to the template output

Description

Generates output to a specified file, which is created if necessary. Unless clobber is true, an existing file is overwritten only when its content has truly changed. Internally calls genStream().

See also

XDCscript - Template-Body | Contents of the template file
XDCscript - Template-Object.genStream | Generate textual output stream from a template

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Template-Object.genStream - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Template-Object.genStream

Generate textual output stream from a template

Contents

  • 1 Synopsis
  • 2 Parameters
  • 3 Description
  • 4 See also

Synopsis

var tplt = xdc.loadTemplate(templateFile);
tplt.genStream(outStream, thisObj, args);

Parameters

outStream
a java.io.PrintStream where all output is written and referenced within a template via $out
thisObj
object that is referenced within a template via this
args
array of arguments referenced within a template via $args

Description

Generates output to outStream, an instance of class java.io.PrintStream. All three parameters are passed to the underlying template generation function. This method can be recursively invoked from within a template.

See also

XDCscript - Template-Body | Contents of the template file
XDCscript - Template-Object.genFile | Generate textual output file from a template

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - @XmlDtd - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @XmlDtd

This structure can be serialized as XML

This attribute is applicable to structures only. The meta-domain representation of structures with his attribute have a function named $xml() attached to them. This function returns an E4X XML representation of the object which can be used to easily serialize this structure within XML files.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - @ nodoc - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @ nodoc

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - @a - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @a

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - @b - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @b

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - @c - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @c

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - @details - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @details

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - @field - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @field

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - @link - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @link

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - @param - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @param

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - @p - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @p

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - @p(blist) - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @p(blist)

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - @p(code) - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @p(code)

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - @p(dlist) - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @p(dlist)

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - @p(html) - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @p(html)

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - @p(nlist) - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @p(nlist)

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - @p(text) - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @p(text)

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - @see - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @see

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - @summary - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @summary

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec - @value - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec - @value

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCspec Language Summary - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCspec Language Summary

XDCspec language quick reference

NOTE: This document will be retired shortly, after its contents has been merged into the XDCspec Language Reference.

XDCspec is a special-purpose language for expressing the logical structure of software content in terms of three higher-level constructs -- modules, interfaces, and packages. Enforcing a clean separation between software specification and software implementation, an XDCspec source file effectively serves as a programmatic contract between content suppliers (producers) and their clients (consumers). Incorporating familiar C constructs for defining client-visible constants, types, and functions, a specification expressed in XDCspec often resembles a "cleaned-up" rendition of a legacy header file.

While comparable to an IDL (Interface Definition Language), the true power of XDCspec lies in its ability to forge a single specification that serves two congruent programming domains: [1] a target-domain, where the specified content is implemented in C/C++ and executes on a suitable hardware platform; and [2] a meta-domain, where this same content is potentially configured to match specific system requirements before target execution begins. In support of the latter, XDCspec works hand-in-hand with XDCscript -- a general-purpose language based on industry-standard JavaScript -- used by producers and consumers alike to implement host-based meta-programs that ultimately beget target executables.

Contents

  • 1 lexical-elements
  • 2 syntactic-elements
  • 3 package-specification
  • 4 unit-specification
  • 5 auxiliary-definition
  • 6 config-parameter
  • 7 function-declaration
  • 8 typed-declaration
  • 9 initializer
  • 10 //! @xdoc

lexical-elements

The lexical structure of XDCspec closely tracks that of JavaScript, which in turn is patterned after familiar conventions originating in C. The following table summarizes the different sorts of lexical elements potentially found in an XDCspec source file:

Element | Examples
whitespace | space, tab, newline
single-line comment | // text
block comment | /* text */
C-style identifier | main , int32 , _private
JavaScript number | 123 , 0xff , 6.02e23
JavaScript string | "hello\n" , 'abc'

syntactic-elements

The following table summarizes the different sorts of syntactic elements appearing throughout the XDCspec reference grammar:

Element | Examples
syntactic production | requires-statement , unit-category
language keyword | package , module
language identifier | dirname , UnitName
literal value | number , string
literal symbol | [ , } , ;
documentation comment | //! @xdoc
optional term | grammar-term ?
alternative terms | grammar-term
zero-or-more occurrences | grammar-term *
one-or-more occurrences | grammar-term +
group-of terms | [ grammar-term grammar-term ]

package-specification

Within the realm of XDCspec, a package is a programmatic element that logically contains modules and interfaces -- collectively termed units -- within its scope. Besides introducing its own public name, a package specification may identify other named packages upon which the current package in some way depends. The specification may also declare its (in)compatibility with earlier versions of the same package, as well as further constrain the level of compatibility required of any dependent packages. Specially-formatted comments embedded in package-specification source file are processed by the xdoc utility when generating HTML documentation for a set of packages.

package-specification
requires-statement*

//! @xdoc
package qualified-package-name compatibility-key?
{
   unit-declaration-list*
}[;]?
//! @xdoc
requires-statement
requires qualified-package-name compatibility-key? ;
qualified-package-name
dirname [.dirname]*
compatibility-key
[ number [,number]* ]
unit-declaration-list
unit-category UnitName [,UnitName]* ;
unit-category
module | interface
  • A qualified-package-name should in general be globally-unique. Packages are located in a directory with a matching name found along the system package path.
  • A package-specification resides in a distinguished source file named package.xdc, found in the corresponding package directory.
  • Each unit-declaration-list introduces individual modules and interfaces within the scope of the current package, all of which must be uniquely named. Units with the same name may only appear in different packages.
  • Each requires-statement designates another package upon which the current package in someway depends. The requires-relation among packages cannot contain cycles.
  • A compatibility-key is generally interpreted as an numeric array of the form [m,s,r,p] where m denotes major functionality, s denotes source level, r denotes specification radius, and p denotes a particular patch. A new release of a package is source-compatible with any predecessor in which m is the same, and is binary-compatible with that predecessor if s is the same as well.
  • By convention, package names are composed of lowercase identifiers whereas units (modules or interfaces) are named with TitleCase identifiers.

unit-specification

A unit specification defines all client-visible programmatic features of a module or interface. While virtually identical vis-Ã -vis their XDCspec syntax, semantically this pair of programmatic elements are almost opposites: a module is concrete and closed, comprising a public specification accompanied by a conforming implementation; an interface is abstract and open, comprising only a public specification which others may import and ultimately implement. In general, the specification of a module or interface can inherit features from exactly one other (interface) specification, which itself can inherit additional features in the same manner -- as if the latterâ€™s cumulative set of features had been directly defined with the unit specification of its inheritor.

The features defined within the scope of a unit partition themselves into two main groups: module-wide features, which are associated with a solitary programmatic object encapsulating the implementation of some concrete module; and per-instance features, which are associated with a family of programmatic objects individually created and manipulated by the same underlying module. Aside from auxiliary definitions of supporting constants and types (deemed module-wide for convenience), features with a meaningful run-time presence in the underlying implementation -- assignable configuration parameters along with callable functions -- can participate in either category. As with packages, special documentation comments can be associated with the module/interface as a whole as well as with any named feature defined within its scope.

In the general case, a single unit specification for a module or interface defines a presence in two congruent programming domains: [1] the target-domain, where specified features become accessible within executable programs (written in C/C++) running on some particular platform; and [2] the meta-domain, where specified features become accessible within hosted scripts (written in XDCscript) used to configure these very same target programs ahead of their execution. In some cases, the specification of a particular module or interface can be restricted to the meta-domain -- useful when constructing configuration "facades" atop legacy content as well as when distributing host-based meta-content for use in a broader range of scripting contexts.

unit-specification
//! @xdoc
metaonly? unit-category UnitNameinherited-interface?{
    module-wide-feature* [ instance:per-instance-feature*]?
}[;]?
//! @xdoc
inherited-interface
inherits qualified-unit-name
qualified-unit-name
[qualified-package-name .]? UnitName
module-wide-feature
//! @xdoc
[auxiliary-definition | config-parameter | function-declaration]
per-instance-feature
//! @xdoc
[config-parameter | function-declaration]
  • A qualified-unit-name effectively extends the (already) globally-unique name of the unitâ€™s containing package. If the qualified-package-name prefix is absent, the current package name is presumed.
  • A unit-specification resides in a source file named UnitName.xdc, found in the directory of its containing package.
  • Each module-wide-feature or per-instance-feature introduces an individual feature with the scope of the current unit, all of which must be uniquely named. Features with the same name may only appear in different units.
  • An inherited-interface designates a single interface whose features are introduced within the scope of the current unit. Any module or interface can optionally inherit features from another interface, so long as the inherits-relation among all units remains acyclic.
  • Each unit manifests itself in both the target- and meta-programming domains, unless designated metaonly. As a rule, inheritors of metaonly interfaces must themselves be metaonly modules or interfaces.

auxiliary-definition

An XDCspec auxiliary definition defines a (module-wide) constant or type, often supporting other module-wide or per-instance features defined in the same unit. These definitions are also used by clients who consume this unit, both within any modules or interfaces they may specify as well as within any target (or meta) content they may implement. For the most part, the syntax and semantics of each form of auxiliary definition is patterned after a familiar programmatic construct already found in C. Further semantic restrictions guarantee auxiliary definitions have a meaningful manifestation in the meta-domain as well as in the target-domain.

auxiliary-definition
const | enum | extern | struct
const
const typed-declaration = initializer ;
enum
enum EnumName {
    enum-value //! @xdoc
    [enum-value ]* //! @xdoc
} [;]?
enum-value
ENUMVAL_NAME [= initializer]?
extern
extern typed-declaration = symbolName ;
struct
struct StructName {
    struct-field*
} [;]?
struct-field
typed-declaration ; //! @xdoc
typedef
typedef typed-declaration ;
  • A const is restricted to numeric types, either standard or else enumerated. Its persistent value is defined by a statically-evaluated initializer consistent with its typed-declaration.
  • An enum is a new numeric type that ranges over a finite set of named values. As in C, integer values beginning with 0 are assigned to each successive enum-value (unless altered by an explicit numeric initializer). Each named value is actually resident in the scope of the containing module or interface, and hence must be unique among all features defined in this unit.
  • An extern is a special form of constant that effectively aliases an external program symbol naming a C-language function or variable. Its typed-declaration is restricted to standard C types, including arbitrary pointer-types.
  • A struct defines a new aggregate type comprising a set of assignable fields of any type. Each struct-field must be uniquely named within the scope of the enclosing struct.
  • A typedef effectively defines a synonym for the type specified in its typed-declaration, rather than a new type per se. As in C, typedef names can appear in other typed declarations not unlike previously-defined enum or struct names.
  • By convention: UPPER_CASE identifiers are used to name a const, enum value, or extern; TitleCase identifiers are used to name an enum/struct types as well as in typedefs; and camelCase identifiers are used to name struct fields.

config-parameter

A configuration parameter is a feature that behaves like a "property" of the underlying module or instance object -- a readable (and sometimes writeable) variable of virtually any type. In the most general case, module-wide configuration parameters are assigned within the meta-domain and then become persistent constants within the target-domain; per-instance configuration parameters are likewise assignable within the meta-domain, but are limited to supporting run-time instance creation within the target-domain. Where appropriate, configuration parameters can be restricted to the meta-domain as well as designated readonly after initialization.

A configuration parameter inherited from some previously specified interface can itself be overridden -- typically to (re-)define its initial value. A configuration parameter can also be finalized, effectively freezing its definition and precluding further overrides.

config-parameter
config-modifiers config typed-declaration [ = initializer]? ;
config-modifiers
final? override? readonly? metaonly?
  • The optional initializer must yield a value consistent with the typed-declaration, using the rules of assignment-compatibility defined by XDCscript for the meta-domain. If no initializer is supplied, the configuration parameter starts out undefined in the meta-domain.
  • If override is specified among the config-modifiers for a configuration parameter, its typed-declaration as well as its use of readonly and metaonly must exactly match that of the inherited configuration parameter being overridden. Configuration parameters marked final cannot be overridden.
  • A readonly configuration parameter without an initializer can still be assigned a persistent value in the meta-domain, during construction of an underlying module/instance object.
  • By convention, configuration parameters names are camelCase identifiers.

function-declaration

An XDCspec function declaration generally stipulates the signature -- argument and return types -- of a callable routine implemented through a concrete module in either the target-domain or else (if so indicated) in the meta-domain; a target function also manifests itself in the meta-domain as an extern symbol of a function-pointer type derived from the stipulated signature. Following C++, default values can be specified for the last k arguments of an n-ary function, enabling the same routine to be called with as few as n-k inputs; an untyped sequence of optional trailing arguments can be also specified using the familiar ... notation. For those meta-domain functions wishing to adopt a more "weakly-typed" style supported (but not necessarily encouraged!) by the XDCscript language, their corresponding declaration in XDCspec can just contain the names for each argument.

Like configuration parameters, a function declaration inherited from a previously-specified interface can be overridden -- typically, to alter or extend the set of default argument values or else to allow optional trailing arguments. Note, though, that since interfaces are entirely abstract (void of any "default" implementation), inheritance of functions is limited to their client-visible specification; ultimately, it is concrete modules (or their delegates) that bear responsibility for implementing all functions directly or indirectly declared in their specification. With XDCspec support for Design-By-Contract forthcoming, overriding inherited function declarations becomes an essential technique for weakening pre-conditions and strengthening post-conditions specified previously through executable expressions.

function-declaration
typed-function-declaration | untyped-function-declaration
typed-function-declaration
function-modifiers
typed-declaration ( typed-arguments? [, ...]? );
function-modifier

final? override? metaonly?

typed-arguments
arg-declaration [,arg-declaration]*
arg-declaration
typed-declaration [= initializer]?
untyped-function-declaration
function fxnName( untyped-arguments? );
untyped-arguments
argName [,argName]*
  • If override is specified among the function-modifiers for a function, its name and type signature as well as its use of metaonly must exactly match that of the inherited declaration being overridden. Functions marked final cannot be overridden.
  • The optional initializer within an arg-declaration must yield a value consistent with the typed-declaration, using the rules of assignment-compatibility defined by XDCscript for the meta-domain.
  • All argument names -- whether typed-arguments or untyped-arguments -- must be uniquely named on a per-function basis.
  • An untyped-function-declaration is implicitly modified final and metaonly.
  • By convention, function and argument names are camelCase identifiers.

typed-declaration

Generic declarations of typed identifiers patterned after the familiar (and sometimes awkward) syntax of C lie at the heart of virtually all XDCspec feature definitions. These declarations stipulate a type name, either built-in or previously-defined, followed by what is conventionally termed a declarator -- the name of the feature per se, optionally adorned with other syntactic elements. As in C, use of the *, [], and () operators within the declarator denotes new types such pointer-to(t), array-of(t), and function-returning(t)for some base type t; extra parentheses are typically used to bind the lower-precedent * operator to the declared name, especially when defining types of form pointer-to(function-returning(t)).

Beyond these familiar C constructs lifted from the target-domain -- each given a corresponding meaning in the meta-domain -- XDCspec introduces additional base types as well as more specialized forms of the array:

  1. the built-in type any, which subsumes all other types in the meta-domain;
  2. the keywords Module, Instance or Handle, signifying an opaque type referencing a concrete module, meta-domain instance object, or target-domain instance object, whose visible features are limited to those specified in the corresponding named unit;
  3. the keyword length in conjunction with the [] operator, signifying the type vector-of(t) whose length can be altered in the meta-domain and retrieved in the target-domain; and
  4. the keyword string in conjunction with the [] operator, signifying the type map-into(t) that effectively overlays direct access via string-valued keys on an underlying vector-of(t).

[Note that only a subset of the elementary C types are recognized at this time. More comprehensive support for target-domain types -- including a set of "portable" numeric types -- is forthcoming.]

typed-declaration
[ standard-type | defined-type ] declarator
standard-type
any | bool | float | int | string | void
defined-type
[qualified-unit-name .]? defined-type-name
defined-type-name
EnumName | StructName | TypedefName | Instance | Handle | Module
declarator
declared-name ?
 | * declarator
 | declarator [ [number | length | string]? ]
 | declarator ( argument-types ? [...]? )
 | ( declarator )
declared-name
CONST_NAME | EXTERN_NAME | TypedefName | argName | configName | fieldName | fxnName
argument-types
typed-declaration [,typed-declaration ]*
  • The following table summarizes the meaning of certain standard-type(s) in each domain:
Type | Target Domain | Meta Domain
bool | standard C bool | standard JavaScript boolean
float | standard C float | standard JavaScript number
int | standard C int | standard JavaScript number
string | standard C char* | standard JavaScript string
  • The standard-type void, as in the C-based target-domain, is basically limited to specifying the type of functions returning "no" value in the meta-domain as well. The type void* likewise preserves the semantics of a "universal pointer" in the meta-domain, assignable any value of type pointer-to(t).
  • The standard-type any is only defined for the meta-domain.
  • A defined-type identifies a previously defined type, either in the module or interface designated by a valid qualified-unit-name or else in the current unit.
  • The declared-name at the heart of a declarator is only optional within arguments-types, typically used when declaring a type pointer-to(function-returning(t)). C reference grammars usually refer to this syntactic construct as an abstract-declarator.

initializer

An initializer is an expression that denotes either a scalar or aggregate value, and whose elementary terms are manifest constants of known types. While certainly C-like in form and substance, XDCspec scalar initializers are in fact statically-evaluated using JavaScript semantics (upon which XDCscript is based). Building on this foundation, XDCspec aggregate initializers adopt standard JavaScript notation for denoting object and array values.

initializer
scalar-initializer | array-initializer | struct-initializer
scalar-initializer
literal | defined-constant | unary-op scalar-initializer |
scalar-initializer binary-op scalar-initializer |
scalar-initializer ? scalar-initializer : scalar-initializer
|(scalar initializer)
literal
number | string | true | false | null | undefined
defined-constant
[qualified-unit-name .]? defined-constant-name
defined-constant-name
CONST_NAME | ENUMVAL_NAME
unary-op
*|-|~|!
binary-op
+|-|*|/|%|<<|>>|==|!=|<|<=|>|>=|&|||^
array-initializer
[ ] | [ initializer [,initializer]* [,]?]
struct-initializer
{ } | { field-initializer [,field-initializer]* [,]?}
field-initializer
fieldName : initializer
  • A literal number or string must conform to standard JavaScript, which also tracks standard C in this regard.
  • A defined-constant identifies a previously defined constant, either in the module or interface designated by a valid qualified-unit-name or else in the current unit.
  • The meaning and precedence of each unary-op and binary-op conforms to standard JavaScript, which likewise mirrors C. Note that JavaScript often overloads operators like + and < to accept strings as well as numbers.

//! @xdoc

Special comments embedded within a specification source file are processed by the xdoc utility when generating HTML documentation for a set of packages. These documentation comments are identified by an extra leading "bang" character -- //! for single-line comments, /*! for the block variety -- and can be juxtaposed with most named elements in the specification. Whenever multiple comments of either variety are associated with an individual specification element, their bodies are effectively concatenated into a single documentation block comprising one or more lines of text.

Markup of the form @tag, when present at the beginning of a line, further punctuates a documentation block into distinct sections comprising various styles of paragraphs. To avoid clutter in the source file due to excessive markup, most commentary can be written as "plain text" that follows some simple conventions to indicate (say) change-of-font or end-of-paragraph. Each documentation block generally comprises: [1] an untagged summary section, which is typically a "one-liner"; [2] an optional untagged details section, which may contain multiple paragraphs with additional information; and [3] a series of tagged sections, which further compartmentalize information about the associated specification element.

//! @xdoc
summary-section
details-section?
tagged-section*
summary-section
comment-paragraph
details-section
comment-paragraph+
tagged-section
@sectTag(ident) comment-paragraph+
comment-paragraph
[@p[(style)]?]? textLines*
  • The @a(sectName) and @b(sectName) tags create named sections that will respectively appear after or before the details section for this documentation block.
  • The @c(childName) tag is used in struct, enum, or function-declaration documentation to respectively comment on one of its named children -- fields, values, or arguments. All such comments are output together as a definition list in a special section.
  • The tags @field, @value, @arg, and @param are available as (more mnemonic) alternatives to the @c tag.
  • An struct-field or enum-value can be immediately followed by a documentation comment, which must begin on the same line. The body of this comment is limited to a summary section.
  • The @p(style) tag is used to change the prevailing paragraph style, which remains in effect until the next tag. Without any parameter, @p reverts to the default "plain-text" style in effect at the beginning of the block. The following table summarizes the different styles supported through this tag, and the interpretation each imposes on subsequent lines of text:
Style | Interpretation Of Subsequent Text
blist | a bulleted list, with leading dashes indicating successive list elements
code | monospace text in which whitespace is preserved
dlist | a definition list, with leading dashes indicating successive terms; unmarked lines are the definitions
html | text containing standard HTML markup
nlist | a numbered list, with leading dashes indicating successive list elements
text | "plain-text" with minimal in-line formatting; the default
  • Except for code and html, all @p styles support the following formatting conventions within the lines of text under their control:
Convention | Resulting Format
text | render this text in monospace
*text* | render this text with emphasis
blank-line | skip a line and start a new paragraph

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - xdc - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - xdc

The distinguished root object

Contents

  • 1 Description

Description

The xdc object is a distinguished root object that is initialized prior to the execution of any XDCscript code.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - xdc.csd - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - xdc.csd

Get current script directory

Contents

  • 1 Synopsis
  • 2 Description
  • 3 Return Value
  • 4 Example

Synopsis

var dir = xdc.csd();

Description

When a script file is first loaded, the directory containing the script is the "Current Script Directory" or csd. This is not the same as the current working directory. xdc.csd() returns the current script directory of the script that calls this method if xdc.csd() is run when the script is being loaded. This allows a script to reference (and possibly load) other scripts relative to its location rather than having to rely on the package path.

Return Value

xdc.csd() returns a string that names an absolute path to a directory. This string always ends with a directory separator so that clients can simply append a relative path to this string to obtain an absolute path; there is no need for clients to use a host platform specific directory separator.

Example

A script named foo.xs in the package my.pkg.of.scripts can compute the path to a script named bar.xs in the same directory as foo.xs with the following statement:

var barFullPath = xdc.csd() + "/bar.xs";

Note that

  1. it is not possible to simply use "./bar.xs" since this will refer to the bar.xs file in the current working directory of the process running foo.xs rather than the directory containing foo.xs; and
  2. the statement above must appear outside any function definition in foo.xs to ensure that the current script directory corresponds to the directory containing foo.xs.
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - xdc.curPath - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - xdc.curPath

Return the current package path

Contents

  • 1 Synopsis
  • 2 Description
  • 3 Return Value
  • 4 Examples

Synopsis

var path = xdc.curPath();

Description

xdc.curPath returns the current package path after all '^' references have been resolved. For more information about the use of '^' within user specified package paths see Managing the Package Path in the XDCtools User's Guide.

Return Value

xdc.curPath returns a string consisting of one or more repository paths separated by the ';' character.

Examples

To display the current package path:

print(xdc.curPath());

To display the current package path, one repository per line:

for each (var repo in xdc.curPath().split(';')) {
   print(repo);
}
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - xdc.exec - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - xdc.exec

Execute external command

Contents

  • 1 Synopsis
  • 2 Parameters
  • 3 Description
    • 3.1 Locating the Command
    • 3.2 Command Environment
    • 3.3 Command Working Directory
  • 4 Return Value

Synopsis

var exitCode = xdc.exec(command, attrs, status);

Parameters

command
command line to execute. The program name and arguments can be given either as a single string with whitespace delimiters, or else as an array of strings. The array variant is useful in the case that either the program name or the arguments might contain spaces.
attrs
optional set of attributes used to control the environment of the command
  • envs - array of environment variable settings; e.g., ["foo=bar", "toto=baz"].
  • useEnv - if false environment of the calling process is not copied into the environment of the invoked command, only variables in envs are available to the command; if true the environment of the calling process is copied, but if envs contains variables already present in the environment, the values from envs are used. The default is false.
  • cwd - the command's current working directory (defaults to ".")
  • outName - if defined, the name of the output file to create; if the file exists, output is appended to the end of the file.
  • filter - if defined, filter is a string representation of a regular expression used to filter command output. Only the stdout lines that match the Java regular expression are included in the output; the command's stderr output is unaffected by this filter.
  • merge - if false the stdout and stderr output streams are not merged into a single output stream. The default value of merge is true.
status
optional output parameter. If status is non-null, the following fields are set:
  • output - string containing all output from command, unless attrs.outName is defined. If attrs.outName is defined the output normally placed in this string is written to the file named by attrs.outName. In addition, if attrs.merge is undefined or true, output contains both the stderr and stdout output of the command.
  • errors - if attrs.merge is false, a string containing only the stderr output; output will then contain only the command's stdout output.
  • exitStatus - exit status of the command

Description

Execute an arbitrary shell command and optionally put output into a file. Both stderr and stdout are combined into a single output stream.

Locating the Command

The search algorithm used to find command along the search path is similar to the algorithm used in xdc.findFile(). If the specified command is not an absolute path, the value of the PATH environment variable, as specified in the attrs.envs array, will be used to locate the command. If attrs.envs is not specified, the search path is formed as described below for the variable PATH in the command environment. Unlike "normal" shell command path searches, if the command is a relative path, the PATH is still searched: each directory in the PATH is perpended to the command in left-to-right order and the first command file that is found to exist is executed. This allows commands in packages to be executed using the same pattern as that used to find files in packages.

Command Environment

All commands are run with the environment variables specified by attrs.envs and attrs.useEnv. However, the following variables are treated specially in cases when attrs.useEnv is set to false:

  • HOME - if not explicitly set in the attrs.envs array or if attrs.envs is undefined, the value of HOME is set to the value of HOME in the caller's environment. If HOME is not set in the callers environment, HOME will not be set in the command's environment.
  • SYSTEMROOT - if not explicitly set in the attrs.envs array or if attrs.envs is undefined, the value of SYSTEMROOT is set to the value of SYSTEMROOT in the caller's environment. If SYSTEMROOT is not set in the callers environment, SYSTEMROOT will not be set in the command's environment.
  • PATH - if the attrs.envs array is undefined, the value of PATH is set to ".;$XDCROOT;$PATH", where $XDCROOT is the installation directory of the XDCtools and $PATH is the value of the PATH variable in the caller's environment. If attrs.envs is not empty, the value of PATH in the command's environment is the value supplied in attrs.envs. If PATH is not specified in attrs.envs, PATH is not set in the caller's environment.

Command Working Directory

The working directory of all commands is specifed by attrs.cwd. If attrs.cwd is not defined, the command's working directory is set to the current working directory of the caller (".").

Return Value

xdc.exec returns the numeric exit code of the command run. If for any reason the command could not be run, the return value is -1. In addition to the exit code, the optional output parameter status is set as follows:

  • output - string containing all output from command, unless attrs.outName is defined. If attrs.outName is defined the output normally placed in this string is written to the file named by attrs.outName. In addition, if attrs.merge is undefined or true, output contains both the stderr and stdout output of the command.
  • errors - if attrs.merge is false, a string containing only the command's stderr output, output will then contain only the command's stdout output.
  • exitStatus - the numeric exit code from the command

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - xdc.getErrors - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - xdc.getErrors

Return array of errors

Contents

  • 1 Synopsis
  • 2 Description
  • 3 Return Value
  • 4 Since

Synopsis

var errors = xdc.getErrors();

Description

Each module can raise an error that does not immediately terminate processing of a domain model's "validate" phase, for example. xdc.getErrors() returns the current array of errors raised by modules.

Return Value

xdc.getErrors() returns a non-null array of errors raised modules via their $logError() method.

Since

This method was introduced in XDCtools release 3.15.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - xdc.getWarnings - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - xdc.getWarnings

Return array of warnings

Contents

  • 1 Synopsis
  • 2 Description
  • 3 Return Value
  • 4 Since

Synopsis

var warnings = xdc.getWarnings();

Description

Each module can raise an warning that does not terminate processing of a domain model's "validate" phase, for example. xdc.getWarnings() returns the current array of warnings raised by modules.

Return Value

xdc.getWarnings() returns a non-null array of warnings raised modules via their $logWarning() method.

Since

This method was introduced in XDCtools release 3.15.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - xdc.getPackageBase - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - xdc.getPackageBase

Return a package's base directory

Contents

  • 1 Synopsis
  • 2 Parameters
  • 3 Description
  • 4 Return Value
  • 5 Throws

Synopsis

var dir = xdc.getPackageBase(packageName);

Parameters

packageName
a '.' separated package name; e.g., "ti.sysbios.knl".

Description

xdc.getPackageBase returns an absolute path to the specified package's base directory.

Return Value

xdc.getPackageBase returns a full path string to the specified package's base directory and throws an exception if the package can not be found.

Throws

If the specified package can not be found along the current package path, xdc.getPackageBase() throws an xdc.services.global.XDCException exception with an id equal to "xdc.PACKAGE_NOT_FOUND".

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - xdc.getPackageRepository - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - xdc.getPackageRepository

Return a package's repository

Contents

  • 1 Synopsis
  • 2 Parameters
  • 3 Description
  • 4 Return Value
  • 5 Throws

Synopsis

var dir = xdc.getPackageRepository(packageName);

Parameters

packageName
a '.' separated package name; e.g., "ti.sysbios.knl".

Description

xdc.getPackageRepository returns an absolute path to the specified package's repository.

Return Value

xdc.getPackageRepository returns a full path string to the specified package's repository and throws an exception if the package can not be found.

Throws

If the specified package can not be found along the current package path, xdc.getPackageRepository() throws an xdc.services.global.XDCException exception with an id equal to "xdc.PACKAGE_NOT_FOUND".

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - xdc.global - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - xdc.global

The original JavaScript Global object

Contents

  • 1 Description

Description

The value of xdc.global is the same as JavaScript's Global object. This alias exists because JavaScript does not define a unique name for the Global object; it is referenced via this or a DOM-specific global property such as window. The xdc.global alias allows arbitrarily nested functions to access globally defined variables and functions.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - xdc.loadPackage - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - xdc.loadPackage

Load specified package

Contents

  • 1 Synopsis
  • 2 Parameters
  • 3 Description
  • 4 Return Value
  • 5 Throws

Synopsis

var pkg = xdc.loadPackage(packageName);

Parameters

packageName
a '.' separated package name; e.g., "ti.sysbios.knl".

Description

This method finds a package's schema file (package/<pkgName>.sch), loads it, and calls the package's initialization function init().

Return Value

xdc.loadPackage returns a package object or throws an exception if the package can not be found.

Throws

This method may throw an xdc.services.global.XDCException exception with one of the following ids:

  • "xdc.PACKAGE_NOT_FOUND" - in the event that the specified package can not be found or its IDL files have not been compiled.
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - xdc.jre - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - xdc.jre

Top-level Java Runtime Environment object

Contents

  • 1 Description

Description

This is identical to the Rhino's global java object.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - xdc.module - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - xdc.module

Return specified module or interface object

Contents

  • 1 Synopsis
  • 2 Parameters
  • 3 Description
  • 4 Examples
  • 5 Return Value
  • 6 Throws

Synopsis

var moduleOrInterfaceObj = xdc.module(moduleOrInterfaceName);

Parameters

moduleOrInterfaceName
the fully qualified module name of the module or interface to be loaded; e.g., "xdc.runtime.Memory" or "xdc.runtime.IHeap".

Description

xdc.module() loads the specified module or interface and returns .

Examples

To get the module object associated with the xdc.runtime.Log, the following statement should be added to the

var Log = xdc.module("xdc.runtime.Log");

Return Value

xdc.useModule() returns a module object or throws an exception if

  • the package containing the module or interface can not be found, or
  • the module or interface is not in the specified package.

Throws

This method may throw an xdc.services.global.XDCException exception with one of the following ids:

  • "xdc.PACKAGE_NOT_FOUND" - in the event that the specified package can not be found or its IDL files have not been compiled.
  • "xdc.MODULE_NOT_FOUND" - in the event that the module can not be found in the specified package.
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - xdc.om - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - xdc.om

Top-Level object of current domain model

Contents

  • 1 Description
  • 2 See Also

Description

Every script executes in the domain of some "object model". Each model has a set of global objects that are appropriate for scripts executing within the model. For example, configuration scripts (*.cfg) execute in the configuration model and can freely reference the global Program object to read or set properties of the the current program. Similarly, build scripts (package.bld and config.bld) execute in the build model and can access the global Build and Pkg objects.

The properties of the xdc.om can be used by scripts to reflect on the current model. For example, the xdc.om.$name property can be used to distinguish between the configuration model and the build model.

See Also

XDCscript - xdc.om.$curpkg | A model-specific current package
XDCscript - xdc.om.$homepkg | A model-specific home package
XDCscript - xdc.om.$modules | Array of all modules in the current model
XDCscript - xdc.om.$name | Model name
XDCscript - xdc.om.$packages | Array of all packages within the current model
XDCscript - xdc.om.$root | A model-specific root object
XDCscript - xdc.om.Package-Name | A hash table of all loaded packages

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - xdc.om.$curpkg - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - xdc.om.$curpkg

A model-specific current package

Synopsis

var pkg = xdc.om.$curpkg;

Description

The configuration model sets $curpkg to the name of the package containing the module$use() or close() functions as it executes these functions during the configuration process.

See Also

XDCscript - xdc.om Top-Level object of current domain model

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - xdc.om.$homepkg - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - xdc.om.$homepkg

A model-specific home package

Synopsis

var pkg = xdc.om.$homepkg;

Description

Unless undefined, xdc.useModule() resolves unqualified module names within this package. The configuration model defines $homepkg as the package containing the configuration script unless explicitly overridden by a build script setting of an executable's cfgHome attribute. If the configuration script is not in any package, the $homepkg is the package containing the generated configuration files for the executable.

See Also

XDCscript - xdc.om Top-Level object of current domain model

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - xdc.om.$modules - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - xdc.om.$modules

Array of all modules in the current model

Contents

  • 1 Synopsis
  • 2 Description
  • 3 Example
  • 4 See Also

Synopsis

var mods = xdc.om.$modules;

Description

xdc.om.$modules is an array of all modules present in the current model. This list includes any proxy modules declared by these other modules.

Example

The following script prints the names of all modules in the current model.

var mods = xdc.om.$modules;
for (var i = 0; i < mods.length; i++) {
    print(mods[i].$name);
}

See Also

XDCscript - xdc.om | Top-Level object of current domain model
XDCscript - Package-Object.$modules | Array of modules contained in this package
XDCscript - Proxy-Object | Module object for a proxy

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - xdc.om.$name - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - xdc.om.$name

Model name

Contents

  • 1 Synopsis
  • 2 Description
  • 3 Example
  • 4 See Also

Synopsis

var name = xdc.om.$name;

Description

Each domain object model has a name that can be used by scripts that need to run in multiple models. The name of the current object model can be accessed via the $name property of xdc.om; i.e., xdc.om.$name. The current model names include the following:

  • "bld" - build model
  • "cfg" - configuration model
  • "rov" - runtime object view model

Example

This property is often used within package methods for packages that are loaded and used in more than one model. For example, a package that is can be used in both the build model and the configuration model might have the following close() implementation.

function close()
{
    if (xdc.om.$name == "cfg") {
        /* Program is defined by the config model but not the build model */
        if (Program.stackSize < 512) {
            :
        }
    }
}

See Also

XDCscript - xdc.om Top-Level object of current domain model

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - xdc.om.$packages - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - xdc.om.$packages

Array of all packages within the current model

Contents

  • 1 Synopsis
  • 2 Description
  • 3 Example
  • 4 See Also

Synopsis

var pkgs = xdc.om.$packages;

Description

An array of all packages within the current model.

Example

The following script prints the names of all packages in the current model.

var pkgs = xdc.om.$packages;
for (var i = 0; i < pkgs.length; i++) {
    print(pkgs[i].$name);
}

See Also

XDCscript - xdc.om Top-Level object of current domain model

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - xdc.om.$root - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - xdc.om.$root

A model-specific root object

Synopsis

var root = xdc.om.$root;

Description

The configuration model's root object is xdc.cfg.Program, the build model's root is xdc.bld.PackageContents, and the runtime object view model's root is xdc.rov.Program

See Also

XDCscript - xdc.om Top-Level object of current domain model

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - xdc.om.Package-Name - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - xdc.om.Package-Name

A hash table of all loaded packages

Synopsis

var pkg = xdc.om["«pkg_name»"];

Description

As packages are loaded, either directly or indirectly, during the execution of any XDCscript script, xdc.om["«pkg_name»"] is set to the package object that represents the package whose name is "«pkg_name»".

See Also

XDCscript - xdc.loadPackage | Load specified package
XDCscript - xdc.om | Top-Level object of current domain model
XDCscript - Package-Object | Object containing package-wide features of a package

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - xdc.print - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - xdc.print

Print a message

Contents

  • 1 Synopsis

Synopsis

xdc.print(messageString);
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - xdc.setCurPkgBase - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - xdc.setCurPkgBase

Set the current package base

Contents

  • 1 Synopsis
  • 2 Parameters
  • 3 Description

Synopsis

xdc.setCurPkgBase(packageBasePath);

Parameters

packageBasePath
string path name of a package's base directory.

Description

xdc.setCurPkgBase can be used to dynamically change the current package.

This will change the package path in the event that the new package is not in the same repository as the previous package base.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Capsule-Object.$trace - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Capsule-Object.$trace

Print a trace message

Contents

  • 1 Synopsis
  • 2 Parameters
  • 3 Description
  • 4 See also

Synopsis

this.$trace(msg);

Parameters

msg
message string to output if trace for the current capsule is enabled.

Description

The string msg is output if trace is enabled for this capsule. Trace is enabled via xdc.traceEnable().

See also

XDCscript - Capsule-Object.$traceQuery | Query whether capsule debug trace is enabled
XDCscript - xdc.traceEnable | Enable debug trace output

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Capsule-Object.$traceQuery - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Capsule-Object.$traceQuery

Query whether capsule debug trace is enabled

Synopsis

if (this.$traceQuery()) {
    :
}

Description

This functions return true if trace for this capsule is enabled; otherwise it return false. You can enable trace for a capsule via the xdc.traceEnable() method.

See also

XDCscript - Capsule-Object.$trace | Print a trace message
XDCscript - xdc.traceEnable | Enable debug trace output

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - xdc.useModule - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - xdc.useModule

Specify that a module is used in a configuration

Contents

  • 1 Synopsis
  • 2 Parameters
  • 3 Description
  • 4 Return Value
  • 5 Throws
  • 6 Examples
  • 7 See also

Synopsis

var moduleObject = xdc.useModule(moduleName);

Parameters

moduleName
the fully qualified module name of the module to be loaded; e.g., "xdc.runtime.Memory".

Description

xdc.useModule() loads the specified module and marks it as being "used on the target"; i.e., this module is directly referenced by the embedded application and, if it contains a "startup" function, this function must be called as part of the application's bootstrap.

Return Value

xdc.useModule() returns a module object or throws an exception if the module can not be found.

Throws

This method may throw an xdc.services.global.XDCException exception with one of the following ids:

  • "xdc.PACKAGE_NOT_FOUND" - in the event that the specified package can not be found or its IDL files have not been compiled.
  • "xdc.MODULE_NOT_FOUND" - in the event that the module can not be found in the specified package.

Examples

To include the xdc.runtime.Log module in an application, the following statement should be added to the application's configuration script.

var Log = xdc.useModule("xdc.runtime.Log");

To avoid using an explicit package name when naming a module in the current package, you can use the xdc.om.$curpkg built-in variable to reference the current package object.

var MyMod= xdc.useModule(xdc.om.$curpkg.$name + ".MyMod");

See also

XDCscript - Module-Body.module$use | Use other modules required by this module
Creating Configurable Content | How to leverage the configuration process

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Package-Object.$modules - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Package-Object.$modules

Array of modules contained in this package

Synopsis

var pkg = xdc.loadPackage(...);
pkg.$modules

Description

The $modules property of a package object is an array of module objects for all modules contained within this package. This list also contains proxy modules declared by any of these modules.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Proxy-Object - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Proxy-Object

Module object for a proxy

Contents

  • 1 Description
  • 2 See Also

Description

A proxy object is a module object for a module that is implicitly created during configuration and which simply delegates all method calls to a delegate module specified by a configuration script. Although the delegate and the proxy must inherit from the same interface, in general, the delegate module object and the proxy object have different types.

See Also

XDCscript - Module-Object | Object containing per-module-features of a module
XDCscript - Proxy-Object.delegate$ | Module that implements the proxy's interface

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Package-Object - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Package-Object

Object containing package-wide features of a package

Contents

  • 1 Description
  • 2 See Also

Description

Package objects reflect the package-wide-features of a package specification. They are created explicitly using the xdc.loadPackage method or, more often, implicitly via the module object creation methods xdc.module and xdc.useModule.

See Also

XDCscript - xdc.loadPackage | Load specified package
XDCscript - Module-Object.$package | Package object of package containing the module

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Capsule-Object - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Capsule-Object

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Capsule-Body - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Capsule-Body

Contents of a capsule

Contents

  • 1 Description
  • 2 Syntax
  • 3 See also

Description

Capsule files contain top-level definitions of public and private variables/functions. Capsules may also contain top-level statements that are executed exactly once -- on first call to loadCapsule() naming this file.

Syntax

Capsule files may contain arbitrary JavaScript and XDCscript statements. However, as a coding convention, functions and variables that are intended to not be accessed directly should have a leading underscore in their names.

var publicVar =

var _privateVar =

function publicFxn( ... ) { ... }

function _privateFxn( ... ) { ... }

stmt ...

See also

XDCscript - Capsule-Object | under construction
XDCscript - xdc.loadCapsule | Load specified capsule

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Template-Object - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Template-Object

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Module-Object.$package - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Module-Object.$package

Package object of package containing the module

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

«Mod».$package

where «Mod» is a module object.

Description

The $package property of a module object is the package object corresponding to the package containing the module «Mod».

See also

XDCscript - Package-Object Object containing package-wide features of a package

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Package-Object.$interfaces - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Package-Object.$interfaces

Array of interfaces contained in this package

Synopsis

var pkg = xdc.loadPackage(...);
pkg.$interfaces

Description

The $interfaces property of a package object is an array of interface objects for all interfaces within this package.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Package-Object.$name - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Package-Object.$name

Name of the package

Synopsis

var pkg = xdc.loadPackage(...);
pkg.$name

Description

The $name property of a package object is the string name of the package.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Package-Object.$spec - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Package-Object.$spec

Package specification object

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

«pkg».$spec

where «pkg» is a package object.

Description

The $spec property of package object is an object that provides access to various properties of the package derived from the package's specification (package.xdc). The $spec property is a LiveConnect instance of the Java class xdc.services.spec.Pkg.

See also

xdc.services.spec | Client documentation for xdc.services.spec
XDCscript - Module-Object.$spec | Module specification object

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Package-Object.$vers - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Package-Object.$vers

The version of this package

Synopsis

var pkg = xdc.loadPackage(...);
pkg.$vers

Description

The $vers property of a package object is an array of numbers formed from the package's compatibility key array followed by the package's release date in milliseconds since midnight 1/1/1970 GMT.

If the package's compatibility key array has fewer than three elements, the release date is not appended to the array; if it were, every rebuild and re-release of such a package would trigger compatibility warnings even though nothing in the package changed.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Package-Body - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Package-Body

Implementation of base package methods

A package body is a special capsule named package.xs that implements the functions specified in the xdc.IPackage interface.

function getLibs(prog) {
    this.$private.foo = ...;  // 'this' references the package object
    var expr = ...;
    return (expr)             // Typed-Assignment of expr to a return of a typed value
}

The preceding fragment implements a package-wide function specified for this package. The keyword this references the corresponding Package object, whose $private state is manipulated in this capsule. Typed-Assignment rules are enforced upon function entry and exit.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Interface-Object.Instance - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Interface-Object.Instance

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Interface-Object.Module - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Interface-Object.Module

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Interface-Object.$name - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Interface-Object.$name

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Interface-Object.$package - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Interface-Object.$package

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Interface-Object.$super - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Interface-Object.$super

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Interface-Object.Constant-Name - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Interface-Object.Constant-Name

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Interface-Object.EnumVal-Name - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Interface-Object.EnumVal-Name

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Interface-Object.Extern-Name - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Interface-Object.Extern-Name

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Interface-Object.Struct-Name - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Interface-Object.Struct-Name

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Interface-Object.Typedef-Name - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Interface-Object.Typedef-Name

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Interface-Body - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Interface-Body

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Module-Object - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Module-Object

Object containing per-module-features of a module

Contents

  • 1 Description
  • 2 See Also

Description

Module objects reflect the per-module-features of a module specification. They are created using either the xdc.module or xdc.useModule methods.

See Also

XDCscript - xdc.module | Return specified module or interface object
XDCscript - xdc.useModule | Specify that a module is used in a configuration

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Module-Object.construct - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Module-Object.construct

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Module-Object.create - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Module-Object.create

Create a new Instance object managed by this unit

Contents

  • 1 Synopsis
  • 2 Description
  • 3 Example
  • 4 See also

Synopsis

var «inst» = «Mod».create(«params»);

where «Mod» is a module object and «params» are creation parameters specific to this module.

Description

A special method that returns a new Instance object, «inst», managed by the module «Mod».

Example

var Defaults = xdc.useModule("xdc.runtime.Defaults");
var LoggerBuf = xdc.useModule("xdc.runtime.LoggerBuf");

/* create and initialize a LoggerBuf Params object */
var params = new LoggerBuf.Params;
params.numEntries = 128;

/* create new LoggerBuf instance object and assign it as the default logger */
Defaults.common$.logger = Logger.create(params);

See also

XDCscript - Module-Object.Params | Module's instance creation parameters
XDCscript - Instance-Body.instance$meta$init | Initialize a meta-only module's instance
XDCscript - Instance-Body.instance$static$init | Statically initialize a target module's instance object
Creating Configurable Content | How to leverage the configuration process

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Module-Object.Params - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Module-Object.Params

Module's instance creation parameters

Contents

  • 1 Synopsis
  • 2 Description
  • 3 Example
  • 4 See also

Synopsis

var «params» = new «Mod».Params();

Description

For a module «Mod» that manage instances, «Mod».Params is a constructor that is used to create a "structure" that contains fields for each instance configuration parameter declared by «Mod». This structure is used to create new instance managed by «Mod».

In addition to the configuration parameters declared by «Mod», «Mod».Params also contains a special field, named instance, which defines instance creation parameters common to all modules and is declared by xdc.runtime.IInstance.

Example

var LoggerBuf = xdc.useModule("xdc.runtime.LoggerBuf");

/* create and initialize a LoggerBuf Params object */
var params = new LoggerBuf.Params();
params.numEntries = 128;
params.instance.name = "myLogger";

/* create new LoggerBuf instance object */
... = Logger.create(params);

See also

XDCscript - Module-Object.create Create a new Instance object managed by this unit

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Instance-Body.instance$meta$init - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Instance-Body.instance$meta$init

Initialize a meta-only module's instance

Contents

  • 1 Synopsis
  • 2 Parameters
  • 3 Description
  • 4 See also

Synopsis

function instance$meta$init([r1, ...])

Parameters

r1, ...
the arguments declared in the module's create method.

Description

This function is invoked whenever a meta-only module's instance create() is called. Configuration model data can be changed as a function of the arguments passed to create().

In instance$meta$init, this is a reference to a structure containing instance configuration parameters.

For information about the order in which module and instance functions are invoked, see Creating Configurable Content.

See also

XDCscript - Instance-Body.instance$static$init | Statically initialize a target module's instance object
Creating Configurable Content | How to leverage the configuration process

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Module-Object.Instance - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Module-Object.Instance

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Module-Object.Module - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Module-Object.Module

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Module-Object.$addrof - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Module-Object.$addrof

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Module-Object.$instances - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Module-Object.$instances

An array of instance objects managed by this module

Contents

  • 1 Synopsis
  • 2 Description
  • 3 Example
  • 4 See also

Synopsis

«Mod».$instances

where «Mod» is a module object.

Description

The $instances property of a module object is an array of all Instance objects that have been created (via «Mod».create()) during configuration. This array does not contain any embedded instances. To get the list of all instance that are embedded in other objects, you can use «Mod».$objects.

Example

var LoggerBuf = xdc.module("xdc.runtime.LoggerBuf");
for (var i = o; i < LoggerBuf.$instances.length; i++) {
    print(LoggerBuf.$instances[i]);
}

See also

XDCscript - Module-Object.create | Create a new Instance object managed by this unit
XDCscript - Module-Object.$objects | An array of embedded instance objects managed by this module
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Module-Object.$objects - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Module-Object.$objects

An array of embedded instance objects managed by this module

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

«Mod».$objects

where «Mod» is a module object.

Description

The $objects property of a module object is an array of all embedded instance objects. Embedded objects are initialized via «Mod».construct() during the creation of some other type of instance object.

In XDCscript, embedded objects inherit from instances without extending them. This is done to ensure that construct is always passed an embedded instance rather than an already created instance. At the same time, embedded objects behave like ordinary instance objects. There are some subtle differences, however.

Although is is possible to assign names to both embedded objects and ordinary instances in XDCscript, these names are not stored on the target for embedded objects and are, therefore, not available at runtime. However, embedded object names can be used by code that runs in the meta domain.

See also

XDCscript - Module-Object.construct | under construction
XDCscript - Instance-Object.Config-Name | under construction
XDCscript - Module-Object.$instances | An array of instance objects managed by this module

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Module-Object.$logError - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Module-Object.$logError

Log an error from this module

Contents

  • 1 Synopsis
  • 2 Parameters
  • 3 Description
  • 4 Example
  • 5 See also

Synopsis

«Mod».$logError(«msg», «obj»[, «prop»])

where «Mod» is the module from which the error is sourced.

Parameters

«msg»
the string explaining the error
«obj»
the typed object that is associated with the error
«prop»
(optionally specified) property of «obj» that is associated with the error

Description

A special method that "logs" an error from the module «mod» with message «msg» associated with the typed object «obj». The optional argument, «prop», must be a property of «obj» and allows the module to specifically identify a configuration parameter associated with the error.

Control returns to the caller of $logError so that multiple errors can be logged. Errors logged during the configuration validation phase (or earlier) prevents the generation phase from starting. Errors logged at any time during configuration cause the configuration step to terminate with a non-zero exit status.

Error messages resulting from $logError have the following format:

error: «Mod»: "«file»", line «num»: «obj» «prop»: «msg»

where «file» and «line» are the file and line number where the call to $logError occurred.

Example

Mod.xs

if (this.adc10Handler == "" || this.adc10Handler == null) {
    this.$logError("interrupt handlers must be defined", this, "adc10Handler");
}

In the event that the error above is triggered, an error message similar to the following will be emitted.

error: Mod: "Mod.xs", line 8: Mod adc10Handler: interrupt handlers must be defined

See also

XDCscript - Module-Body.module$validate | Validate current domain object model
XDCscript - Module-Object.$logFatal | Throw fatal exception from this module
XDCscript - Module-Object.$logWarning | Log a warning from this module
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Module-Body.module$validate - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Module-Body.module$validate

Validate current domain object model

Synopsis

function module$validate()

Description

module$validate() is called for all modules in a package, before the package's validate() function. It can be used to verify the consistency of values assigned to configuration parameters, but no changes to these parameters (or to any objects in the current model) are allowed.

Several methods are available to signal errors:

  • this.$logWarning(msg, obj, sel)
    prints a message but configuration successfully generates all files and exits with status 0
  • this.$logError(msg, obj, sel)
    prints message but configuration step fails; files are not generated and exit status is non-zero
  • this.$logFatal(msg, obj, sel)
    logs an error and throws an Error exception terminating any further validation; files are not generated and exit status is non-zero.

The parameters to these functions are

msg
a string message to be output
obj
an arbitrary object
sel
an optional property (i.e., selector) within obj

All errors (warnings) are pushed onto an internal string array of errors (warnings). The error strings are created by evaluating the following JavaScript expression:

'error:' + this.$name + ':' + frame + ':' + (obj + " " + sel) + ':' + msg

where frame is the stack frame of the function calling module$validate and if sel is undefined it is replaced with "".

Warnings have the same format as errors except that the prefix is "warning:" rather than "error:".

See also

XDCscript - Module-Object.$logError | Log an error from this module
XDCscript - Module-Object.$logFatal | Throw fatal exception from this module
XDCscript - Module-Object.$logWarning | Log a warning from this module
xdc.IPackage.validate | Client documentation for xdc.IPackage.validate
Creating Configurable Content | How to leverage the configuration process

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Module-Object.$logFatal - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Module-Object.$logFatal

Throw fatal exception from this module

Contents

  • 1 Synopsis
  • 2 Parameters
  • 3 Description
  • 4 Example
  • 5 See also

Synopsis

«Mod».$logFatal(«msg», «obj»[, «prop»])

where «Mod» is the module from which the fatal exception is sourced.

Parameters

«msg»
the string explaining the exception
«obj»
the typed object that is associated with the exception
«prop»
(optionally specified) property of «obj» that is associated with the exception

Description

A special method that throws an exception from the module «mod» with message «msg» associated with the typed object «obj». The optional argument, «prop», must be a property of «obj» and allows the module to specifically identify a configuration parameter associated with the exception.

Control does not return to the caller of $logFatal so no further cleanup is possible within the module. Exceptions thrown at any time during configuration cause the configuration step to terminate with a non-zero exit status.

Messages resulting from $logFatal have the following format:

error: «Mod»: "«file»", line «num»: «obj» «prop»: «msg»

where «file» and «line» are the file and line number where the call to $logFatal occurred.

Example

Mod.xs

if (intNum < 4) {
    this.$logFatal("Can't remap interrupts 0-3", this);
}

In the event that the exception above is triggered, an error message similar to the following will be emitted.

error: Mod: "Mod.xs", line 8: Mod : Can't remap interrupts 0-3

See also

XDCscript - Module-Body.module$validate | Validate current domain object model
XDCscript - Module-Object.$logError | Log an error from this module
XDCscript - Module-Object.$logWarning | Log a warning from this module
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Module-Object.$logWarning - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Module-Object.$logWarning

Log a warning from this module

Contents

  • 1 Synopsis
  • 2 Parameters
  • 3 Description
  • 4 Example
  • 5 See also

Synopsis

«Mod».$logWarning(«msg», «obj»[, «prop»])

where «Mod» is the module from which the warning is sourced.

Parameters

«msg»
the string explaining the warning
«obj»
the typed object that is associated with the warning
«prop»
(optionally specified) property of «obj» that is associated with the warning

Description

A special method that "logs" a warning from the module «mod» with message «msg» associated with the typed object «obj». The optional argument, «prop», must be a property of «obj» and allows the module to specifically identify a configuration parameter associated with the warning.

Control returns to the caller of $logWarning so that multiple warnings can be logged. Warnings logged during the configuration validation phase (or earlier) do not prevent the generation phase from starting. Warnings logged at any time during configuration have no effect on the exit status.

Warning messages resulting from $logWarning have the following format:

warning: «Mod»: "«file»", line «num»: «obj» «prop»: «msg»

where «file» and «line» are the file and line number where the call to $logWarning occurred.

Example

Mod.xs

if (!("ti.mcu.msp430.csl.watchdog" in xdc.om)) {
    this.$logWarning("Watchdog timer has not been initialized.", this);
}

In the event that the warning above is triggered, a warning message similar to the following will be emitted.

warning: Mod: "Mod.xs", line 8: Mod: Watchdog timer has not been initialized.

See also

XDCscript - Module-Body.module$validate | Validate current domain object model
XDCscript - Module-Object.$logFatal | Throw fatal exception from this module
XDCscript - Module-Object.$logError | Log an error from this module
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Module-Object.$name - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Module-Object.$name

Canonical name of the module

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

«mod».$name

where «mod» is a module object.

Description

The $name property of module object is the canonical name of the module. For example, the $name property of the System module in the xdc.runtime package is just "xdc.runtime.System".

See also

XDCscript - Module-Object Object containing per-module-features of a module

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Instance-Object.Config-Name - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Instance-Object.Config-Name

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Module-Object.$private - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Module-Object.$private

Private state object of the module

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

«Mod».$private

where «Mod» is a module object.

Description

The $private property of a module object is an untyped JavaScript object that is used by the module's XDCscript methods to maintain state associated with the module.

See also

XDCscript - Module-Body The implementation of a module

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Module-Body - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Module-Body

The implementation of a module

A module body is a capsule that implements all (inherited) module-wide and per-instance metaonly functions declared in a module's unit-specification. These capsule files are named ModName.xs, where ModName is the name of the module without the package prefix, and reside in the base directory of the containing package. A special capsule named package.xs implements the (module-wide) functions specified in the xdc.IPackage interface.

function fxnName(arg ... ) {  // Typed-Assignment of callee's values to this function's params
    this.$private.foo = ...;  // 'this' references the appropriate module or instance object
    return (expr)             // Typed-Assignment of expr to a return of a typed value
}

The preceding fragment implements a module-wide or per-instance function specified for this module. The keyword this references the corresponding Module or Instance object, whose $private state is manipulated in this capsule. Typed-Assignment rules are enforced upon function entry and exit.

See also

XDCscript - Module-Object.$private Private state object of the module

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Module-Object.$super - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Module-Object.$super

The interface from which this module inherits

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

«Mod».$super

where «Mod» is a module object.

Description

The $super property of a meta-only module object is the interface object from which this module inherits. Since meta-only interfaces have default implementations of methods that are inherited by all inheriting modules, $super enables these modules to invoke the methods in the interface as part of their implementation.

See also

XDCscript - Module-Object.Function-Name | Module method
XDCscript - Instance-Object.Function-Name | Instance method

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Module-Object.Function-Name - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Module-Object.Function-Name

Module method

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

«Mod».«methodName»

where «Mod» is an module object and «methodName» is the name of a method whose type signature is specified in a function-declaration.

Description

Methods of a module object are module-specific properties declared in the module's .xdc specification file. Only methods declared to be metaonly (directly or indirectly) can invoked from scripts; all other method name simply represent the type signature of a function that can be invoked on the target.

Meta-only methods are functions that can be directly invoked from scripts. For example, a module method getName of the module pkg.Mod can be run from a script as shown below.

var Mod = xdc.module("pkg.Mod"); /* get the module */
print(Mod.getName());            /* run a module method and print result */

Meta-only methods have a distinguished function property named $apply that allows them to be invoked with a user specified this pointer. This can be useful when a method needs to invoke the meta-only method associated with an inherited interface. Suppose for example that the pkg1.Mod module inherits from the interface pkg2.IMod. If pkg2.IMod declares and implements a method, say getName, the module pkg1.Mod can both override the implementation provided by pkg2.IMod and invoke the overridden method.

Mod.xs

function getName() {
    var sup = this.$super.getName.$apply(this, []); /* get inherited name */
    return (sup+  ":Mod");                          /* return "super_name:my_name" */
}

The $apply() function has the same signature and semantics as the JavaScript apply() method of Functions.

See also

XDCscript - Module-Object | Object containing per-module-features of a module
XDCscript - Module-Object.$super | The interface from which this module inherits

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Instance-Object.Function-Name - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Instance-Object.Function-Name

Instance method

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

«inst».«methodName»

where «inst» is an instance object and «methodName» is the name of a method whose type signature is specified in a function-declaration.

Description

Methods of an instance object are module-specific properties declared in the module's .xdc specification file. Only methods declared to be metaonly (directly or indirectly) can invoked from scripts; all other method name simply represent the type signature of a function that can be invoked on the target.

Meta-only methods are functions that can be directly invoked from scripts. For example, instance method getName of the module pkg.Mod can be run from a script as shown below.

var Mod = xdc.module("pkg.Mod"); /* get the module */
var inst = Mod.create();         /* create an instance */
print(inst.getName());           /* run an instance method and print result */

Meta-only methods have a distinguished function property named $apply that allows them to be invoked with a user specified this pointer. This can be useful when a method needs to invoke the meta-only method associated with an inherited interface. Suppose for example that the pkg1.Mod module inherits from the interface pkg2.IMod. If pkg2.IMod declares and implements a method, say getName, the module pkg1.Mod can both override the implementation provided by pkg2.IMod and invoke the overridden method.

Mod.xs

function getName() {
    var sup = this.$super.getName.$apply(this, []); /* get inherited name */
    return (sup+  ":Mod");                          /* return "super_name:my_name" */
}

The $apply() function has the same signature and semantics as the JavaScript apply() method of Functions.

See also

XDCscript - Instance-Object | Object containing per-instance-features of a module
XDCscript - Instance-Object.$super | Instance of the inherited-interface

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Module-Object.$used - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Module-Object.$used

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Module-Object.Config-Name - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Module-Object.Config-Name

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Module-Object.Constant-Name - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Module-Object.Constant-Name

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Module-Object.EnumVal-Name - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Module-Object.EnumVal-Name

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Module-Object.Extern-Name - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Module-Object.Extern-Name

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Module-Object.Proxy-Name - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Module-Object.Proxy-Name

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Module-Object.Struct-Name - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Module-Object.Struct-Name

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Module-Object.Typedef-Name - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Module-Object.Typedef-Name

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Module-Body.module$meta$init - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Module-Body.module$meta$init

Initialize meta-domain module state

Synopsis

function module$meta$init()

Description

module$meta$init() is called right before the package's init() function, so its purpose is similar, but module specific initialization should be placed here.

See also

XDCscript - Module-Body.module$static$init | Initialize module's State object
Creating Configurable Content | How to leverage the configuration process

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Instance-Object - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Instance-Object

Object containing per-instance-features of a module

Contents

  • 1 Description
  • 2 See Also

Description

Instance objects reflect the per-instance-feature(s) of a module specification. They are created using the module's create method.

See Also

XDCscript_-_Module-Object.create | Create a new Instance object managed by this unit
XDCscript - Instance-Object.$index | Serial number of the instance
XDCscript - Instance-Object.$module | The Module object that manages this instance
XDCscript - Instance-Object.$name | Canonical name for the instance
XDCscript - Instance-Object.$package | The Package object containing the module managing this instance
XDCscript - Instance-Object.$private | Private state object of the instance
XDCscript - Instance-Object.$super | Instance of the inherited-interface

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Instance-Object.$index - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Instance-Object.$index

Serial number of the instance

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

var i = «inst».$index

where «inst» is an instance object.

Description

The $index property of an instance object is a serial number assigned when created by its managing module.

See also

XDCscript - Instance-Object Object containing per-instance-features of a module

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Instance-Object.$module - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Instance-Object.$module

The Module object that manages this instance

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

«inst».$module

Description

The $module property of an instance object is the Module object that manages this instance.

See also

XDCscript - Instance-Object.$package The Package object containing the module managing this instance

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Instance-Object.$name - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Instance-Object.$name

Canonical name for the instance

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

«inst».$name

where «inst» is an instance object.

Description

The $name property of an instance object is the canonical name assigned to the instance by XDCscript when it is created.

See also

XDCscript - Instance-Object Object containing per-instance-features of a module

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Instance-Object.$package - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Instance-Object.$package

The Package object containing the module managing this instance

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

«inst».$package

Description

The $package property of an instance object is the Package object which contains the module that manages this instance.

See also

XDCscript - Instance-Object.$module The Module object that manages this instance

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Instance-Object.$private - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Instance-Object.$private

Private state object of the instance

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

«inst».$private

where «inst» is an instance object.

Description

The $private property of an instance object is an untyped JavaScript object that is used by the module's XDCscript methods to maintain state associated with the instance.

See also

XDCscript - Module-Body The implementation of a module

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Instance-Object.$super - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Instance-Object.$super

Instance of the inherited-interface

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

«inst».$super

where «inst» is an instance object.

Description

The $super property of an instance object is a Instance object of the Instance type designated in the inherited-interface for the module managing this instance, or null if not specified.

See also

XDCscript - Instance-Object Object containing per-instance-features of a module

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Instance-Body - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Instance-Body

The implementation of a module's instance methods

A capsule that implements all (inherited) module-wide and per-instance metaonly functions declared in a module's unit-specification. These capsule files are named UnitName.xs and reside in the base directory of the containing package. A special capsule named package.xs implements the (module-wide) functions specified in the xdc.IPackage interface.

function fxnName(arg ... ) { // Typed-Assignment of callee's values to this function's params
    this.$private = ...;     // 'this' references the appropriate module or instance object
    return (expr)            // Typed-Assignment of expr to a return of a typed value
}

The preceding fragment implements a module-wide or per-instance function specified for this module. The keyword this references the corresponding Module or Instance object, whose $private state is manipulated in this capsule. Typed-Assignment rules are enforced upon function entry and exit.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Proxy-Object.delegate$ - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Proxy-Object.delegate$

Module that implements the proxy's interface

Contents

  • 1 Synopsis
  • 2 Description
  • 3 Example

Synopsis

var Mod = xdc.module("«moduleName»");
var ProxyMod = Mod.«ProxyName».delegate$;

Description

The delegate$ property of a proxy object is the module that implements the interface provided by the proxy. This property is typically used to enable configuration script to set the underlying implementation module's configuration parameters.

Example

The following script disables the "entry" trace of the underlying implementation of the System.SupportProxy proxy.

/* get the System module's SystemSupport proxy's implementing module */
var System = xdc.module("xdc.runtime.System");
var SupportMod = System.SupportProxy.delegate$;
/* disable entry trace for this module */
var Diags = xdc.useModule("xdc.runtime.Diags");
SupportMod.common$.diags_ENTRY = Diags.ALWAYS_OFF;

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Struct-Object - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Struct-Object

A typed structure object

An Struct is an aggregate that comprises fixed set of typed values declared in some XDCspec file. Structs can be dynamically created in the meta-domain via the JavaScript new operator.

example.xs

var Log = xdc.runtime('xdc.runtime.Log');

var event = new Log.EventDesc();                // create default EventDesc struct
var hello = new Log.EventDesc({msg: "hello"});  // create an EventDesc with msg set to "hello"
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Struct-Object.$addrof - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Struct-Object.$addrof

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Struct-Object.$alignof - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Struct-Object.$alignof

The target alignment of a structure

Contents

  • 1 Synopsis
  • 2 Description
  • 3 Example
  • 4 See also

Synopsis

«tobj».$alignof()

Description

Returns the target alignment of the structure «tobj» in target chars. In other words, this function returns the same value that the target compiler would provide when applying the C alignof() operator on the structure. Note this may be different from the number of 8-bit bytes required; some target architectures have a 16-bit char.

Example

The following example illustrates the use of the $alignof() method. The size of the structure declared in Mod.xdc is printed from an application configuration script app.cfg.

Mod.xdc

module Mod {
    struct S = {
        Int x;
        Char c;
    }
}
app.cfg

var Mod = xdc.useModule("Mod");
print("alignof Mod.S = " + Mod.S.$alignof());

See also

XDCscript - Struct-Object.$sizeof | The target size of a structure
XDCscript - Typed-Object | Objects specified by the RTSC Interface Definition Language
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Struct-Object.$sizeof - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Struct-Object.$sizeof

The target size of a structure

Contents

  • 1 Synopsis
  • 2 Description
  • 3 Example
  • 4 See also

Synopsis

«tobj».$sizeof()

Description

Returns the target size of the structure «tobj» in target chars. In other words, this function returns the same value that the target compiler would provide when applying the C sizeof() operator on the structure. Note this may be different from the number of 8-bit bytes in the structure; some target architectures have a 16-bit char.

Example

The following example illustrates the use of the $sizeof() method. The size of the structure declared in Mod.xdc is printed from an application configuration script app.cfg.

Mod.xdc

module Mod {
    struct S = {
        Int x;
        Char c;
    }
}
app.cfg

var Mod = xdc.useModule("Mod");
print("sizeof Mod.S = " + Mod.S.$sizeof());

See also

XDCscript - Struct-Object.$alignof | The target alignment of a structure
XDCscript - Typed-Object | Objects specified by the RTSC Interface Definition Language
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Typed-Object - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Typed-Object

Objects specified by the RTSC Interface Definition Language

Typed objects include Module, Instance, Struct, Vector, and Map objects. These objects also belong to a specified type ultimately defined within a unit-specification (i.e., a .xdc file).

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Struct-Object.$private - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Struct-Object.$private

Private state object of the struct

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

«struc».$private

where «struc» is a structure object.

Description

The $private property of a struct object is an untyped JavaScript object that is used by a module's XDCscript methods to maintain state associated with the structure.

See also

XDCscript - Module-Body The implementation of a module

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Struct-Object.Field-Name - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Struct-Object.Field-Name

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Vector-Object - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Vector-Object

A typed JavaScript array

An Vector is an aggregate that comprises an expandable ordered set of values of some common base type, indexed by non-negative integers. Vectors are a constrained variant of a JavaScript array.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Vector-Object.length - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Vector-Object.length

Get or set the number of values in a vector

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

var len = «vec».length; /* get the length of «vec» */
«vec».length = ...;     /* set the length of «vec» */

Description

The length property of the vector «vec» can be used to get or set the number of typed values in «vec».

See also

XDCscript - Typed-Object | Objects specified by the RTSC Interface Definition Language
XDCscript - Vector-Object | A typed JavaScript array

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Vector-Object.$add - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Vector-Object.$add

Append element to the end of a vector

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

«vec».$add(«arg»);

Description

This method appends an element to the end of a vector and is equivalent to «vec»[«vec».length++] = «arg».

See also

XDCscript - Typed-Object | Objects specified by the RTSC Interface Definition Language
XDCscript - Vector-Object | A typed JavaScript array
XDCscript - Vector-Object.length | Get or set the number of values in a vector

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Vector-Object.$addrof - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Vector-Object.$addrof

Get address of vector element

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

var addr = «vec».$addrof(«index»);

Description

This method returns an object of the Ptr type that represents the address of the element «vec»[«index»] on the target. Such an object can be used at configuration time to refer to an address that is generally not known at the configuration time.

The expression «vec».$addrof(«vec».length) can be used to refer to the first address after «vec»[«vec».length - 1].

See also

XDCscript - Typed-Object | Objects specified by the RTSC Interface Definition Language
XDCscript - Vector-Object | A typed JavaScript array

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Vector-Object.Element-Index - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Vector-Object.Element-Index

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Map-Object - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Map-Object

An ordered hash table type

Contents

  • 1 Synopsis
  • 2 Description
  • 3 Examples
    • 3.1 Iterating over the elements of a map
    • 3.2 Deleting a map
    • 3.3 Redefining a map
    • 3.4 Deleting elements from a map
    • 3.5 Adding elements to a map
    • 3.6 Replacing elements in a map

Synopsis

var map = someMapObj;

map.length;           // Gets the number of values in this map.

var someVar = map[i]; // Gets an element of this map whose index i is in the range 0..length-1.
map[i] = someValue;   // Sets an element of this map whose index i is in the range 0..length-1.

map[s] = someValue;   // Sets a map element given a string-value key s.
var someVar = map[s]; // Gets a map element given a string-value key s.
                      // Returns undefined if the designated element does not exist.

Description

A map is an aggregate that comprises an expandable ordered set of values of some common base type, indexed by strings as well as non-negative integers. Maps are a constrained hybrid of a JavaScript object and array; each map has a length property and map objects can be indexed either by a numeric index or by a string valued key.

Because of JavaScript's type conversion rules, it is not possible to distinguish between map["2"] and map[2]; strings that represent integral numbers are converted to numbers before accessing a map element's value. So, all string keys used to defined elements in a map must be non-numeric.

Unlike JavaScript arrays, maps range check indexes; attempts to index outside the range of defined values results in an error.

 map = [["zero", 0]];
 print(map["one"]);  // prints undefined
 print(map[1]);      // ERROR: map has just one element
 print(map["1"]);    // ERROR: same as above

Examples

Iterating over the elements of a map

Iterating over the elements of a map.

/* display elements of map by index */
for (var i = 0; i < Mod.map.length; i++) {
    print("map[" + i + "] = " + Mod.map[i]);
}

/* display elements of map by name */
for (var i in Mod.map) {
    print("map{" + i + "} = " + Mod.map[i]);
}

When iterating of the elements of a map by name, the order is always the same as iterating by index starting from 0.

Deleting a map

Deleting a map.

Mod.map = undefined;
Redefining a map

Redefining a map.

Mod.MAP = [     /* redefine a map */
    ["one", 1],
    ["two", 2]
];
Deleting elements from a map

Deleting elements from a map.

delete Mod.map["two"]; /* delete the "two" element in the map */
Adding elements to a map

Adding elements to a map. The special $putHead() and $putTail() operations will add a name-value pair to the head or tail or a map, respectively.

if (!"zero" in Mod.map) {
    Mod.MAP.$putHead("zero", 0);       /* add new ["zero", 0] to front of map */
}
if (!"zero" in Mod.map) {
    Mod.MAP.$putTail("zero", 0);       /* add new ["zero', 0] to end of map */
}

The special $putHead() and $putTail() operations will move existing elements to the head or tail, respectively.

/* reverse the elements of a map */
for (var k in Mod.map) {
    Mod.map.$putHead(k, Mod.map[k]);/* move existing element to front of map */
}
Replacing elements in a map

Replacing elements in a map.

Mod.map["two"] = 1; /* redefine the "two" element */
Mod.map[1] = "one"; /* redefine the second element element */
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Map-Object.length - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Map-Object.length

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Map-Object.Element-Index - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Map-Object.Element-Index

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Map-Object.Element-Name - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Map-Object.Element-Name

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Typed-Object.$copy - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Typed-Object.$copy

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Typed-Object.$orig - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Typed-Object.$orig

The most specific typed-declaration for this object

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

«tobj».$orig

Description

Returns an object with the most specific typed-declaration for this object rather than the declared type of «tobj».

See also

XDCscript - Typed-Object Objects specified by the RTSC Interface Definition Language

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Typed-Object.$seal - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Typed-Object.$seal

Seal a typed object or one of its fields

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

«tobj».$seal(«fieldName»)

Description

Renders the specified field within «tobj» read-only. If «fieldName» is omitted, the entire object is made read-only.

See also

XDCscript - Typed-Object | Objects specified by the RTSC Interface Definition Language
XDCscript - Typed-Object.$sealed | Test a typed object or one of its fields for being read-only
XDCscript - Typed-Object.$unseal | Unseal a typed object or one of its fields

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Typed-Object.$sealed - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Typed-Object.$sealed

Test a typed object or one of its fields for being read-only

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

«tobj».$sealed(«fieldName»)

Description

Returns true if the specified field within «tobj» is sealed (read-only). If «fieldName» is omitted, returns true if the entire object is sealed.

See also

XDCscript - Typed-Object | Objects specified by the RTSC Interface Definition Language
XDCscript - Typed-Object.$unseal | Unseal a typed object or one of its fields
XDCscript - Typed-Object.$seal | Seal a typed object or one of its fields

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Typed-Object.$unseal - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Typed-Object.$unseal

Unseal a typed object or one of its fields

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

«tobj».$unseal(«fieldName»)

Description

Renders the specified field within «tobj» writable. If «fieldName» is omitted, the entire object is made writable.

See also

XDCscript - Typed-Object | Objects specified by the RTSC Interface Definition Language
XDCscript - Typed-Object.$seal | Seal a typed object or one of its fields
XDCscript - Typed-Object.$sealed | Test a typed object or one of its fields for being read-only

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Typed-Object.$self - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Typed-Object.$self

This object

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

«tobj».$self

Description

The $self property of a typed object simply returns itself. This is useful for bulk assignment when «tobj» is a JavaScript variable; without this property, assignment of a JavaScript object to «tobj» would simply replace the typed object with the JavaScript object rather than performing a field-by-field assignment to the typed object.

See also

XDCscript - Typed-Object Objects specified by the RTSC Interface Definition Language

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript - Typed-Object.$type - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript - Typed-Object.$type

under construction

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCscript Language Summary - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCscript Language Summary

XDCscript language quick reference

NOTE: This document will be retired shortly, after its contents has been merged into the XDCscript Language Reference.

XDCscript is a general-purpose programming language based upon the ECMA-262 Edition 3 standard -- popularly known as JavaScript 1.5. A central element of XDC, the language primarily serves as an implementation vehicle for hosted meta-content used to automate integration of companion target-content within executable programs tailored for a specific hardware platform and optimized for a specific application environment. RTSC also leverages the language to manage the flow of packages -- standardized containers holding re-usable target content plus its attendant meta-content -- between producers and consumers. And of course, the language is readily suited for standalone scripting tasks.

Working in tandem with XDCspec -- a special-purpose language for defining client-visible programmatic features of target- [and meta-] content through module, interface, and package specifications -- XDCscript augments standard JavaScript with modular, type-safe, and expressive mechanisms that meld nicely with the familiar style and substance of the C-centric target programming domain. References to terms defined in the XDCspec grammar are written-this-way.

Contents

  • 1 Base
  • 2 Root
  • 3 Java
  • 4 Capsule
  • 5 Capsule-Body
  • 6 Template
  • 7 Template-Body
  • 8 Package
  • 9 Object-Model
  • 10 Interface
  • 11 Module
  • 12 Instance
  • 13 Module-Body
  • 14 Struct
  • 15 Vector
  • 16 Map
  • 17 Typed-Object
  • 18 Typed-Operation
  • 19 Typed-Value
  • 20 Typed-Assignment

Base

XDCspec incorporates all core JavaScript 1.5 classes, as defined in the ECMA-262 Edition 3 standard.

Arguments | Error | Number
Array | Function | Object
Boolean | Global | RegEx
Date | Math | String

Root

All XDCscript properties and methods are ultimately rooted in a distinguished (read-only) object referenced by the global identifier xdc. This name along with any identifier containing one or more $'s should be treated as a reserved word.

xdc
The distinguished root object.
xdc.global Base
The original JavaScript Global object.
xdc.jre Java
The Java Runtime Environment.
xdc.csd
The directory of the script file currently being loaded.
xdc.exec(command, attrs, status)
Executes an arbitrary shell command and returns the command's exit status. The parameter command can be one string containing the command and the command line parameters, or a string array with the command in the first element of the array.
The optional parameter attrs controls the command's environment and accepts the following fields: envs(array of environment variable settings), cwd (the command's current working directory), outName (the name of the output file to create, if the file exists, output is appended to the end of the file) and filter (regular expression used to filter command output).
The optional parameter status contains the fields output (string containing all output from command) and exitStatus (exit status of the command).
xdc.findFile(fileName)
Returns a path to fileName or else null if not found. If fileName is an absolute path or else begins with ./, this path is returned if the file exists. Otherwise, the file is first searched in the xdc.csd directory and then in each directory along the system package path.
xdc.loadCapsule(fileName) Capsule
Loads a capsule from fileName, and returns a Capsule object. Calls xdc.findFile() internally, and throws an Error if the capsule is not found.
xdc.loadTemplate(fileName) Template
Loads a template from fileName, and returns a Template object. Calls xdc.findFile() internally, and throws an Error if the template is not found.
xdc.loadPackage(pkgName) Package
Loads a package whose qualified-package-name is pkgName, adds the package to the current Object-Model, and returns a Package object. Throws an Error if the package is not found along the system package path.
xdc.module(modName) Module
Returns the Module object whose qualified-unit-name is modName. If modName is not qualified with a package name, xdc.om.$homepkg is presumed. Calls xdc.loadPackage() if needed. Throws an Error if the module is not found.
xdc.om Object-Model
The current Object-Model -- program-config, package-build, standalone-scripting, etc.
xdc.traceEnable(mask) Capsule
This function accepts string-valued masks that designate a set of named capsules for which calls to the special function $trace(msg) result in the msg string being printed. If called with no arguments, the function returns the current trace mask; otherwise, the function updates the current trace mask and returns its previous value.
The trace mask itself comprises a set of semicolon-separated patterns that are suffix-matched against the canonical filename of the capsule. Occurrences of slashes (forward or backward) within the patterns are appropriately normalized. Wildcards ('*') within the patterns match arbitrary character sequences that themselves do not contain slashes. For convenience, capsules can be designated without any particular file extension (e.g., ".xs").
This function is called upon startup with the value of the environment variable "xdc.traceEnable", if the latter is defined.
xdc.useModule(modName) Module
Declares usage of a module whose qualified-unit-name is modName, and returns a Module object. If modName is not qualified with a package name, xdc.om.$homepkg is presumed. Calls xdc.loadPackage() if needed. Throws an Error if the module is not found.

Java

XDCspec supports connectivity to all classes in the current Java Runtime Environment (JRE). Public fields and functions of static class objects as well as newly constructed class instance objects can be accessed.

xdc.jre.javaClass.staticField = xdc.jre.javaClass.staticFxn()

var jobj = new xdc.jre.javaClass()

jobj.field = jobj.fxn()

Capsule

A fundamental unit of implementation. Each capsule exposes a set of public variables and functions to its client.

var Cap = xdc.loadCapsule(fileName)

Cap.publicVar = Cap.publicFxn()

Capsule-Body

Contains top-level definitions of public and private variables/functions. Also contains top-level statements executed exactly once -- on first call to loadCapsule() naming this file.

var publicVar =

var _privateVar =

function publicFxn( ... ) { ... }

function _privateFxn( ... ) { ... }

stmt ...

Template

A synthesized function that encapsulates a prescribed pattern for generating formatted output. Clients invoke templates with specific arguments and designate a sink for all generated output

var Tplt = xdc.loadTemplate(fileName)
Tplt.genFile(fileName, thisObj, args, clobber)
Generates output to fileName, which is created if necessary. Unless clobber is true, an existing file is overwritten only when its content has truly changed. Internally calls genStream().
Tplt.genStream(outStream, thisObj, args)
Generates output to outStream, an instance of class java.io.PrintStream. All three parameters are passed to the underlying template generation function.

Template-Body

Contains lines of text that the synthesized function automatically outputs when invoked. Also contains lines of script to be inserted into the synthesized function. Interpolated script can reference any object in the current environment — with $out, this, and $args bound to parameters of genStream().

textscripttext ... \n
A line of text to be output by the synthesized function at this point. All interpolated script is replaced with its (textual) value in the current context.
% script ...\n
A single line of script to be inserted into the synthesized function at this point.
%%{\n
stmt ...\n
stmt ...\n
%%}\n
Multiple lines of script to be inserted into the synthesized function at this point.

Package

Reflects a package-specification. A read-only container for Capsule, Template, Interface, and Module objects that implements the xdc.IPackage interface. Its init() function is invoked once -- on the first call to xdc.loadPackage() naming this package. Each package is also an element of the current Object-Model.

var pkg = somePkgObject
pkg.InterName Interface
A particular interface contained within this package, unless InterName matches a name in the xdc.IPackage interface -- in this case the xdc.IPackage interface value is returned. Because of this ambiguity, this method of referencing a package's interfaces is deprecated.
pkg.ModName Module
A particular module contained within this package, unless ModName matches a name in the xdc.IPackage interface -- in this case the xdc.IPackage interface value is returned. Because of this ambiguity, this method of referencing a package's modules is deprecated.
pkg.$interfaces Interface
An array of all interfaces within this package.
pkg.$modules Module
An array of all modules within this package.
pkg.$name
The qualified-package-name of this package.
pkg.$vers
An array of numbers formed from the package's compatibility key array followed by the package's release date in milliseconds since midnight 1/1/1970 GMT. If the compatibility key array has fewer than three elements, the release date is not appended to the array.

Object-Model

A specialized execution context for scripts which comprises a model-dependent prologue and epilogue. May also introduce global variables representing "anchor points" within the model as well as codifiy metaonly interfaces to be implemented by constituent packages.

xdc.om.$homepkg
A model-specific home package. Unless undefined, xdc.useModule() resolves unqualified module names within this package.
xdc.om.$name
The name of the current model.
xdc.om[pkgname] Package
The package named pkgname within the current model.
xdc.om.$packages[] Package
An array of all packages within the current model.

Interface

Reflects a unit-specification for an interface.

var Inter = someInterObj
Inter.CONST_NAME Typed-Value
A scalar value of the type specified in a const definition.
Inter.ENUMVAL_NAME Typed-Value
A scalar value of the type specified in an enum definition.
Inter.EXTERN_NAME Typed-Value
A scalar value of the type specified in an extern definition.
new Inter.StructName Struct
A pointer to an aggregate of the type specified in a struct definition.
Inter.Module(someModObj) Module
Casts a Module object to the Module handle type of this interface. Returns null if incompatible.
Inter.Instance(someInstObj) Instance
Casts an Instance object to the Instance handle type of this interface. Returns null if incompatible.
Inter.$name
The qualified-unit-name of this interface.
Inter.$package Package
The Package object which contains this unit.
Inter.$super Interface
An interface object corresponding to the inherited-interface for this interface, or null if not specified.

Module

Reflects a unit-specification and its module-wide-feature(s)

var Mod = someModObj   Typed-Object
Mod.CONST_NAME Typed-Value
A scalar value of the type specified in a const definition.
Mod.ENUMVAL_NAME Typed-Value
A scalar value of the type specified in an enum definition.
Mod.EXTERN_NAME Typed-Value
A scalar value of the type specified in an extern definition.
new Mod.StructName Struct
A pointer to an aggregate of the type specified in a struct definition.
Mod.configName = Typed-Operation
A property of the type specified in a config-parameter definition. Assignable, unless readonly in the specification.
Mod.fxnName( ... ) Typed-Operation
A method whose signature is specified in a function-declaration.
Mod.create(createParams) Instance
A special method that returns a new Instance object managed by this unit.
Mod.Module(someModObj) Module
Casts a Module object to the Module handle type of this module. Returns null if incompatible.
Mod.Instance(someInstObj) Instance
Casts an Instance object to the Instance handle type of this module. Returns null if incompatible.
Mod.$instances[] Instance
An array of Instance objects managed by this module.
Mod.$name
The qualified-unit-name of this module.
Mod.$package Package
The Package object which contains this module.
Mod.$private
A private object used by capsules implementing module-wide functions specified for this module.
Mod.$super Mod
A Module object of the Module type designated in the inherited-interface for this module, or null if not specified.
Mod.$used
true if this module has been named in a call to xdc.useModule, false otherwise.

Instance

Reflects per-instance-feature(s) of a unit-specification.

var inst = someInstObj   Typed-Object
inst.configName = Typed-Operation
A property of the type specified in a config-parameter definition. Assignable, unless readonly in the specification.
inst.fxnName( ... ) Typed-Operation
A method whose signature is specified in a function-declaration.
inst.$index
A serial number assigned when created by its managing module.
inst.$module Module
The Module object that manages this instance.
inst.$package Package
The Package object which contains the module that manages this instance.
inst.$private
A private object used by capsules implementing per-instance functions specified for the module managing this instance.
inst.$super Instance
An Instance object of the Instance type designated in the inherited-interface for the module managing this instance, or null if not specified.

Module-Body

A capsule that implements all (inherited) module-wide and per-instance metaonly functions declared in a module's unit-specification. These capsule files are named UnitName.xs and reside in the base directory of the containing package. A special capsule named package.xs implements the (module-wide) functions specified in the xdc.IPackage interface.

function fxnName(arg ... ) {   Typed-Assignment
    this.$private = ...
    return expr   Typed-Assignment
}

Implements a module-wide or per-instance function specified for this module. this references the corresponding Module or Instance object, whose $private state is manipulated in this capsule. Typed-Assignment rules are enforced upon function entry and exit.

function instance$meta$init(createParams) {
    this.$private = ...
}

A distinguished function called upon creating a new Instance object, to which this is bound. Typically used to initialize the $private state for this Instance.

Struct

An aggregate of the type specified in a struct definition. Comprises a fixed number of values of different types, selected by name. A constrained variant of a JavaScript object.

var str = someStructObj   Typed-Object
str.fieldName =
An assignable property of the type designated in a struct-field definition.

Vector

An aggregate that comprises an expandable ordered set of values of some common base type, indexed by non-negative integers. A constrained variant of a JavaScript array.

var vec = someVectorObj   Typed-Object
vec.length =
Gets or sets the number of values in this vector.
vec[number] = Typed-Operation
Gets or sets an element of this vector whose index is in the range 0..length-1.
vec.$add(arg) Typed-Assignment
Appends arg to the end of this vector. Equivalent to vec[length++] = arg.
vec.$addrof(number) Typed-Object
Returns an object of the Ptr type. The object represents the address of the element vec[number] on the target. Such an object can be used at the configuration time to refer to an address that is generally not known at the configuration time.
The expression vec.$addrof(vec.length) can be used to refer to the first address after vec[length--1].

Map

An aggregate that comprises an expandable ordered set of values of some common base type, indexed by strings as well as non-negative integers. A constrained hybrid of a JavaScript object and array.

var map = someMapObj   Typed-Object
map.length
Gets the number of values in this map.
map[number] = Typed-Operation
Gets or sets an element of this map whose index is in the range 0..length-1.
map[string] = Typed-Operation
Gets or sets a map element given a string-value key. Returns undefined if the designated element does not exist.
The command delete map[string] removes the named element from this map and decrements length.

Typed-Object

Common properties and methods shared by Module, Instance, Struct, Vector, and Map objects. These objects also belong to a specified type ultimately defined within a unit-specification.

tobj.$copy() Typed-Object
Returns a deep-copy of this object, leaving references intact (Struct, Vector, Map only)
tobj.$orig
Returns an object with the most specific typed-declaration for this object rather than the declared type of tobj
tobj.$seal(fieldName)
Renders the specifed field within tobj read-only. If fieldName is omitted, the entire object is made read-only.
tobj.$sealed
true if this object has been sealed.
tobj.$self Typed-Object
This object. Useful for bulk assignment when tobj is a JavaScript variable.
tobj.$type
A string representation of a typed-declaration for this object.
tobj.$unseal(fieldName)
Renders the specifed field within tobj writable. If fieldName is omitted, the entire object is made writable.

Typed-Operation

Each category of Typed-Object defines selectors for getting and setting constituent values of some specified type. Unit and Instance objects additionally define callable functions with parameter and return values of some specified type.

tobj.ident --> Typed-Value
tobj[number] --> Typed-Value
tobj[string] --> Typed-Value
Get a value of a specified type
tobj.ident <-- expr Typed-Assignment
tobj[number] <-- expr Typed-Assignment
tobj[string] <-- expr Typed-Assignment
Set a value of a specified type. expr must yield an assignment-compatible value.
tobj.fxn(arg ... ) --> Typed-Value
arg <-- expr Typed-Assignment
return <-- expr Typed-Assignment
Call a function of a specified type. Assignment-compatibility is enforced for each expr passed as a function argument and for the value returned from within the function body.

Typed-Value

All values belong to either standard types supported in the base language or else to specified types ultimately defined within some unit-specification. Each is identified by a characteristic syntactic pattern comprising type-constructors of the form T<...> to denote a particular type as well as type-variables t that range over any of these patterns.

T<int> T<float>... Base
T<boolean> Base
T<string> Base
Standard scalar types with JavaScript number, boolean, or string values.
T<{ p: t ... }> Base
T<[ t ... ]> Base
Standard aggregate types with JavaScript objects or arrays as values
T<null> Base
T<undefined> Base
Standard singleton types with null or undefined as their only values.
T<struct S> Struct
T<struct S*> Struct
Specified types with Struct objects or Struct pointers for values, the latter mimicing a JavaScript object reference. The name S comes from a corresponding struct definition.
T<t[length]> Vector
T<t[string]> Map
Specified types whose values are Vector or Map objects.
T<U.Module> Module
T<U.Instance> Instance
Specified types whose values are opaque handles for Module or Instance objects. The name U comes from a corresponding unit-specification.
T<void*>
T<t*>
Specified types whose values connote target program addresses.
T<any>
A universal type that subsumes all possible standard and specified types.

Typed-Assignment

Rules for assignment compatibility.

t-LValue <-- t-RValue
Typed-Assignment pattern expressed in terms of LValue and RValue types. Enforced when assigning a specified selector, binding specified function arguments, and executing a return statement from within a specified function.
t <-- t
t <-- T<undefined>
T<any> <-- t
Identical types are assignment compatible; any type can be assigned undefined; and any type of RValue can be assigned to an LValue specified any.
T<struct S> <-- T<struct S>
T<struct S*> <-- T<struct S*>
Struct objects based on a common definition are assigned field-wise using the rules of Typed-Assignment -- that is, by value. Struct pointers are assigned to one another without getting or setting any constituent fields of the underlying object -- that is, by reference.
T<struct S> <-- T<struct S*>
T<struct S*> <-- T<struct S>
Field-wise assignment involving a mixture of Struct objects and pointers. Implicitly gets or sets all fields of the underlying object referenced through a Struct pointer.
T<struct S> <-- T<{ fld: t-fld ... }>
T<struct S*> <-- T<{ fld: t-fld ... }>
Assignment from a standard JavaScript object. Named properties of the latter corresponding to fields specified in the definition of S are assigned using the rules of Typed-Assignment. Each t-fld must be assignment-compatible with the type of S.fld.
T<t[length]> <-- T<t´[length]>
T<t[string]> <-- T<t´[string]>
Vectors and Maps are assigned by value, by effectively removing all elements from the destination object and then performing an element-wise Typed-Assignment from the source object. The element types t and t´ must be assignment-compatible.
T<t[length]> <-- T<[ t-elem ... ]>
T<t[string]> <-- T<[[T<string>,t-elem ] ... ]>
Assignment to Vectors or Maps from a standard JavaScript array. Elements of the destination object are replaced (in order) by elements in the source array. Each t-elem must be assignment-compatible with the base type t.
T<U.Module> <-- T<U´.Module>
T<U.Instance> <-- T<U´.Instance>
Assignment of opaque references to Module or Instance objects. The unit-specification(s) for U and U´ are either the same, or else the former must directly/indirectly inherit from the latter.
T<U.Module> <-- T<{ cfg: t-cfg ... }>
T<U.Instance> <-- T<{ cfg: t-cfg ... }>
Assignment from a standard JavaScript object. Named properties of the latter corresponding to module-wide or per-instance configs specified in the definition of U are assigned using the rules of Typed-Assignment. Each t-cfg must be assignment-compatible with the type of U.cfg.
T<void*> <-- T<struct S>
T<void*> <-- T<struct S*>
T<void*> <-- T<t*>
Assignment to void* covers Struct objects/pointers plus arbitrary target addresses.
T<struct S*> <-- T<null>
T<U.Module> <-- T<null>
T<U.Instance> <-- T<null>
Assignment of null limited to Struct pointers, target addresses, and Module/Instance handles.

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


C Language Binding - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

C Language Binding

Compile-time & run-time elements introduced by RTSC

Contents

  • 1 Common public functions
  • 2 Internal functions
  • 3 Module-specific functions
    • 3.1 Module-wide functions
    • 3.2 Instance functions
    • 3.3 Variable arguments support
  • 4 Module Binary Contract

Common public functions

The following functions are part of the public interface provided by all modules.

C - Module_getMask | Get a module's diagnostics mask
C - Module_hasMask | Check for a module diagnostics mask
C - Module_heap | Get a module's heap
C - Module_id | Get a module's unique ID
C - Module_setMask | Set a module's diagnostics mask
C - Module_startupDone | Query if a module's startup is complete

In addition, modules that support instance objects also provide the following functions.

C - construct | Initialize a new instance object inside the provided structure
C - create | Allocate and initialize a new instance object and return its handle
C - destruct | Finalize the instance object inside the provided structure
C - delete | Finalize and free this previously allocated instance object
C - Handle_label | Get an instance's label
C - Handle_name | Get an instance's name
C - Object_count | Get the number of statically created instances
C - Object_first | Get the handle of the first dynamically created instance
C - Object_get | Get the instance handle of a statically created instance
C - Object_heap | Get a module's instance heap
C - Object_next | Get the handle of the next dynamically created instance
C - Params_init | Initialize new instance creation parameters

Modules that inherit from interfaces provide the following type-safe conversion operations.

C - Handle_downCast | conditionally move one level down the inheritance hierarchy
C - Handle_upCast | unconditionally move one level up the inheritance hierarchy

Internal functions

The following functions are "internal functions" implemented by modules in order to support module instance object creation and deletion (if necessary) as well as the common public functions listed above.

C - Instance_finalize | Module's instance finalization function
C - Instance_init | Module's instance initialization function
C - Module_startup | Module's startup initialization function

Module-specific functions

Module-wide functions

Module-wide functions. The RTSC IDL allows you to specify "module-wide" functions; functions that are not associated with any particular instance that may be managed by the module. For example, the LoggerBuf_flushAll() function is declared in LoggerBuf.xdc and implemented in LoggerBuf.c as follows:

LoggerBuf.xdc

 module LoggerBuf {
     Void flushAll();
         :
}
LoggerBuf.c

#include "package/internal/LoggerBuf.xdc.h"

Void LoggerBuf_flushAll(Void)
{
    :
}

Clients of LoggerBuf_flushAll simply include the LoggerBuf module's public header and call LoggerBuf_flushAll() using the arguments specified in LoggerBuf.xdc.

client.c

#include <xdc/runtime/LoggerBuf.h>
    :
LoggerBuf_flushAll();
Instance functions

Instance functions. The RTSC IDL allows you to specify module functions which operate on an instance type managed by the module. For example, the HeapMin_alloc() function is declared in HeapMin.xdc and implemented in HeapMin.c as follows:

HeapMin.xdc

 module HeapMin {
     instance:
     Void free(Ptr block, SizeT size);
         :
}
HeapMin.c

#include "package/internal/HeapMin.xdc.h"

Void HeapMin_free(HeapMin_Object *obj, Ptr block, SizeT size)
{
    :
}

Clients of HeapMin_free simply include the HeapMin module's public header and call HeapMin_free() using the arguments specified in HeapMin.xdc after passing an instance handle as the first argument.

client.c

#include <xdc/runtime/HeapMin.h>
    :
HeapMin_Handle heap;
HeapMin_free(heap, buf, size);
Variable arguments support

Variable arguments support. The RTSC IDL allows you to specify functions which, like printf(), accept a variable number of arguments. The syntax used in the IDL is essentially the same as that specified by ANSI C. For example, the System_printf() function is declared in System.xdc and implemented in System.c as follows:

System.xdc

 module System {
     Int printf(String fmt, ...);
         :
}
System.c

#include "package/internal/System.xdc.h"

Int System_printf_va(String fmt, VaList va)
{
    :
}

Clients of System_printf simply include the System module's public header and call System_printf() using the arguments specified in System.xdc.

client.c

#include <xdc/runtime/System.h>
    :
System_printf("x = %d, y = %d\n", 1, 2);

Module Binary Contract

The following topics describe the binary data structures and symbols created to support the bindings described above. To maintain compatibility with packages created using different versions of XDCtools, these data structures and their names must not change. It's important to note, however, that while the data structures defined in a module's headers can not change, the data structures defined in the generated configuration files can (and often do) change from release to release of XDCtools.

Integrating RTSC Modules#Linking | Integrating RTSC modules into existing C/C++ environments
Integrating RTSC Modules#Debugging | Integrating RTSC modules into existing C/C++ environments

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


C - Module getMask - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

C - Module getMask

Get a module's diagnostics mask

Contents

  • 1 Synopsis
  • 2 Description
  • 3 Since
  • 4 See also

Synopsis

#include <«pkg»/«Mod».h>

Bits16 «Mod»_Module_getMask(void) /* get the value of «Mod»'s diagnostic mask */

Description

Every module «Mod» provides a parameterless macro named «Mod»_Module_getMask() that returns the current value of the module's diagnostics mask.

Since

This method was introduced in XDCtools release 3.15.

See also

C - Module_hasMask | Check for a module diagnostics mask
C - Module_setMask | Set a module's diagnostics mask

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


C - Module hasMask - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

C - Module hasMask

Check for a module diagnostics mask

Contents

  • 1 Synopsis
  • 2 Description
  • 3 Since
  • 4 See also

Synopsis

#include <«pkg»/«Mod».h>

Bool «Mod»_Module_hasMask(void) /* does «Mod» have a diagnostic mask? */

Description

Every module «Mod» provides a parameterless macro named «Mod»_Module_hasMask() that returns a non-zero value in the event that the module has a diagnostics mask.

Since

This method was introduced in XDCtools release 3.15.

See also

C - Module_getMask | Get a module's diagnostics mask
C - Module_setMask | Set a module's diagnostics mask

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


C - Module setMask - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

C - Module setMask

Set a module's diagnostics mask

Contents

  • 1 Synopsis
  • 2 Description
  • 3 Since
  • 4 See also

Synopsis

#include <«pkg»/«Mod».h>

Void «Mod»_Module_setMask(Bits16 mask) /* set the value of «Mod»'s diagnostic mask */

Description

Every module «Mod» provides a parameterless macro named «Mod»_Module_setMask() that sets the current value of the module's diagnostics mask. If the module «Mod» does not have a mask, this method has no effect.

Since

This method was introduced in XDCtools release 3.15.

See also

C - Module_hasMask | Check for a module diagnostics mask
C - Module_getMask | Get a module's diagnostics mask

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


C - Module heap - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

C - Module heap

Get a module's heap

Contents

  • 1 Synopsis
  • 2 Description
  • 3 Since
  • 4 See also

Synopsis

#include <«pkg»/«Mod».h>
#include <xdc/runtime/IHeap.h>

IHeap_Handle «Mod»_Module_heap(void) /* The heap associated with «Mod» */

Description

Every module «Mod» provide a parameterless macro named «Mod»_Module_heap() that returns the module's statically configured heap handle. This handle, although potentially equal to NULL, may always be passed to the xdc.runtime.Memory functions that require an IHeap instance handle.

Since

This method was introduced in XDCtools release 3.15.

See also

xdc.runtime.IHeap | Client documentation for xdc.runtime.IHeap
xdc.runtime.Memory | Client documentation for xdc.runtime.Memory
C - Object_heap | Get a module's instance heap

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


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 Wed, 08 Dec 2010 20:07:57 GMT


module xdc.runtime.Memory
index URL

Static and run-time memory manager

  • C synopsis
  • Individual elements
  • XDCscript usage
  • Individual elements
All memory allocations are executed via staticPlace() at the config time or through Memory_alloc() (or Memory_calloc() or Memory_valloc()) 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 executed via staticPlace() at the config time or through Memory_alloc() (or Memory_calloc() or Memory_valloc()) at run-time.
The actual memory management is performed by modules that implement xdc.runtime.IHeap. Heap instances are created statically or dynamically via the heap specific create functions and these instances are then passed as input parameters to the Memory calls with xdc.runtime.IHeap.Handle parameters.
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 Wed, 08 Dec 2010 20:07:59 GMT


C - Object heap - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

C - Object heap

Get a module's instance heap

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

#include <«pkg»/«Mod».h>
#include <xdc/runtime/IHeap.h>

IHeap_Handle «Mod»_Object_heap(void) /* The heap used to allocate dynamically-created instance objects */

Description

Every module «Mod» provides a parameterless macro named «Mod»_Object_heap() that returns the module's statically configured instance heap handle. This handle, although potentially equal to NULL, may always be passed to the xdc.runtime.Memory functions that require an IHeap instance handle.

See also

xdc.runtime.IHeap | Client documentation for xdc.runtime.IHeap
xdc.runtime.Memory | Client documentation for xdc.runtime.Memory
C - Module_heap | Get a module's heap
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


C - Module id - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

C - Module id

Get a module's unique ID

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

#include <«pkg»/«Mod».h>
#include <xdc/runtime/Types.h>

Types_ModuleId «Mod»_Module_id(void);

Description

This function is automatically defined for all target modules, where «Mod» is the name of some module. This function returns the configuration generated module ID for «Mod». This ID is used to identify the source of raised errors, for example. For more information see xdc.runtime.Types_ModuleId.

See also

xdc.runtime.Types.ModuleId Client documentation for xdc.runtime.Types.ModuleId

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


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 = 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 ...
    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 instances 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.
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 Wed, 08 Dec 2010 20:08:00 GMT


C - Module startupDone - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

C - Module startupDone

Query if a module's startup is complete

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

#include <«pkg»/«Mod».h>

Bool «Mod»_Module_startupDone(void);

Description

This function is automatically defined for all target modules and proxies, where «Mod» is the name of some module or proxy. This function is typically used in situations where the startup of one module depends upon another having completed its startup processing.

See also

xdc.runtime.Startup Client documentation for xdc.runtime.Startup

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


C - construct - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

C - construct

Initialize a new instance object inside the provided structure

Contents

  • 1 Synopsis
  • 2 See also

Synopsis

#include <«pkg»/«Mod».h>

 /* modules whose «Mod»_Instance_init() function never fails */
Void «Mod»_construct( «Mod»_Struct *structP, [«required_args»,] const «Mod»_Params *params );

 /* @InstanceInitError modules only */
Void «Mod»_construct( «Mod»_Struct *structP, [«required_args»,] const «Mod»_Params *params, Error_Block *eb );

See also

C - Instance_init Module's instance initialization function
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


C - create - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

C - create

Allocate and initialize a new instance object and return its handle

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

#include <«pkg»/«Mod».h>
«Mod»_Handle «Mod»_create( [«required_args»,] const «Mod»_Params *params, Error_Block *eb );

Description

The create method is used to create a new instance object managed by the module.

See also

C - Instance_init Module's instance initialization function
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


C - destruct - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

C - destruct

Finalize the instance object inside the provided structure

Contents

  • 1 Synopsis
  • 2 See also

Synopsis

synopsis

#include <«pkg»/«Mod».h>
Void «Mod»_destruct( «Mod»_Struct *structP );

See also

C - Instance_finalize Module's instance finalization function

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


C - Instance finalize - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

C - Instance finalize

Module's instance finalization function

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

#include "package/internal/«Mod».xdc.h"

Void «Mod»_Instance_finalize(«Mod»_Object *obj)            /* non-@InstanceInitError modules only */
Void «Mod»_Instance_finalize(«Mod»_Object *obj, Int state) /* @InstanceInitError modules only */

Description

Modules that support instances and are specified with the @InstanceFinalize attribute must implement this function, where «Mod» is the name of the module. The type signature of this function depends on whether (or not) «Mod» has the @InstanceInitError attribute. If «Mod» is declared with @InstanceInitError, this function is passed a second integer parameter, state. The state parameter's value is either the return value from a failed «Mod»_Instance_init() call or 0 (in the case of a normal instance delete, for example).

See also

C - delete | Finalize and free this previously allocated instance object
C - destruct | Finalize the instance object inside the provided structure
C - Instance_init | Module's instance initialization function

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


C - delete - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

C - delete

Finalize and free this previously allocated instance object

Contents

  • 1 Synopsis
  • 2 See also

Synopsis

synopsis

#include <«pkg»/«Mod».h>

Void «Mod»_delete( «Mod»_Handle *handleP );

The «Mod»_delete() function sets the referenced handle to NULL. This reduces the chance that the client will inadvertently try to use the handle after the instance has been deleted.

See also

C - Instance_finalize | Module's instance finalization function
C - destruct | Finalize the instance object inside the provided structure

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


C - Handle label - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

C - Handle label

Get an instance's label

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

#include <«pkg»/«Mod».h>
#include <xdc/runtime/Types.h>

Types_Label *«Mod»_Handle_label(«Mod»_Handle handle, Types_Label *buf);

Description

This function is automatically defined for all target modules that support instances, where «Mod» is the name of some module. This function initializes a Types_Label structure associated with the instance object identified by handle.

See also

xdc.runtime.Types.Label Client documentation for xdc.runtime.Types.Label

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


C - Handle name - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

C - Handle name

Get an instance's name

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

#include <«pkg»/«Mod».h>

String «Mod»_Handle_name(«Mod»_Handle handle);

Description

This function is automatically defined for all target modules that support instances, where «Mod» is the name of some module. This function returns the name of the instance object identified by handle.

See also

xdc.runtime.Types.Common$ | Client documentation for xdc.runtime.Types.Common$
C - create | Allocate and initialize a new instance object and return its handle

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


C - Object count - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

C - Object count

Get the number of statically created instances

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

#include <«pkg»/«Mod».h>

Int «Mod»_Object_count(void);

Description

This function is automatically defined for all target modules, where «Mod» is the name of some module, and returns the number of instance objects created during configuration. This function is typically used in conjunction with «Mod»_Object_get to perform some operation at runtime on all instances created during configuration; e.g., initialization of these instances within a module's runtime startup function.

See also

C - Object_get | Get the instance handle of a statically created instance
C - Object_first | Get the handle of the first dynamically created instance
C - Object_next | Get the handle of the next dynamically created instance

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


C - Object get - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

C - Object get

Get the instance handle of a statically created instance

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

#include <«pkg»/«Mod».h>

«Mod»_Handle «Mod»_Object_get(«Mod»_Object *array, Int index);

Description

This function is automatically defined for all target modules, where «Mod» is the name of some module. This function is typically used in situations where the «Mod» needs to loop over all statically created instances. If the first argument is NULL, «Mod»_Object_get() loops over the statically created instances created by «Mod».

for (i = 0; i < «Mod»_Object_count(); i++) {
    «Mod»_Handle h = «Mod»_Object_get(NULL, i);
        :  /* use «Mod» instance referenced by h */
}

Dynamically created instances are not returned by «Mod»_Object_get() and must be accessed via «Mod»_Object_first() and «Mod»_Object_next().

See also

C - Object_count | Get the number of statically created instances
C - Object_first | Get the handle of the first dynamically created instance
C - Object_next | Get the handle of the next dynamically created instance

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


C - Object first - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

C - Object first

Get the handle of the first dynamically created instance

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

#include <«pkg»/«Mod».h>

«Mod»_Handle «Mod»_Object_first(void);

Description

This function is automatically defined for all target modules that support instances, where «Mod» is the name of some module. This function is typically used in situations where the Mod needs to loop over all dynamically created instances. This function returns the the first dynamically-created instance object, or NULL.

«Mod»_Handle obj;

/* loop over all runtime created instances managed by «Mod» */
for (obj = «Mod»_Object_first(); obj != NULL; obj = «Mod»_Object_next(obj)) {
    : /* use «Mod»_handle obj */
}

Statically created instances are not returned by «Mod»_Object_first() or «Mod»_Object_next() and must be accessed via «Mod»_Object_get().

See also

C - Object_next | Get the handle of the next dynamically created instance
C - Object_count | Get the number of statically created instances
C - Object_get | Get the instance handle of a statically created instance

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


C - Object next - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

C - Object next

Get the handle of the next dynamically created instance

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

#include <«pkg»/«Mod».h>

«Mod»_Handle «Mod»_Object_next(«Mod»_Handle handle);

Description

This function is automatically defined for all target modules that support instances, where «Mod» is the name of some module. This function is typically used in situations where the «Mod» needs to loop over all dynamically created instances. This function returns the the next dynamically-created instance object, or NULL.

«Mod»_Handle obj;

/* loop over all runtime created instances managed by «Mod» */
for (obj = «Mod»_Object_first(); obj != NULL; obj = «Mod»_Object_next(obj)) {
    : /* use «Mod»_handle obj */
}

Statically created instances are not returned by «Mod»_Object_next() and must be accessed via «Mod»_Object_get().

See also

C - Object_first | Get the handle of the first dynamically created instance
C - Object_count | Get the number of statically created instances
C - Object_get | Get the instance handle of a statically created instance

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


C - Params init - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

C - Params init

Initialize new instance creation parameters

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

#include <«pkg»/«Mod».h>
Void «Mod»_init(«Mod»_Params *params);

Description

Prior to creating a new instance managed by «Mod» with non-default parameters, you must first initialize a structure, named «Mod»_Params, with the default parameters.

Mod_Params params;           /* declare space for a Mod_Params structure */
Mod_Params_init(&params);    /* initialize all params to their defaults */
params.«inst_config» = ...;  /* assign a custom value to «inst_config» */
Mod_create(&params, NULL);   /* create an instance with this custom setting */

It is possible to "bind" a name to each instance of any module at the time the instance is created (or constructed).

Mod_Params params;
Mod_Params_init(&params);
params.instance->name = "myInstance";
Mod_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. 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.

See also

C - create | Allocate and initialize a new instance object and return its handle
C - construct | Initialize a new instance object inside the provided structure
C - Params_copy | Copy instance creation parameters
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


C - Handle downCast - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

C - Handle downCast

conditionally move one level down the inheritance hierarchy

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

#include <«pkg»/«Mod».h>

«Mod»_Handle «Mod»_Handle_downCast(«IMod»_Handle handle);

Description

This function is automatically defined for all target modules that support instances and inherit from an interface, where «Mod» is the name of some module and «IMod» is the name of some interface. This function converts an abstract interface handle to an instance handle managed by the concrete module «Mod». If handle does not actually reference an instance managed by «Mod», «Mod»_Handle_downCast() returns NULL.

See also

C - Handle_upCast | unconditionally move one level up the inheritance hierarchy
xdc.runtime.HeapMin.Handle_downCast | Client documentation for xdc.runtime.HeapMin.Handle_downCast
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


C - Handle upCast - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

C - Handle upCast

unconditionally move one level up the inheritance hierarchy

Contents

  • 1 Synopsis
  • 2 Description
  • 3 See also

Synopsis

#include <«pkg»/«Mod».h>

«IMod»_Handle «Mod»_Handle_upCast(«Mod»_Handle handle);

Description

This function is automatically defined for all target modules that support instances and inherit from an interface, where «Mod» is the name of some module and «IMod» is the name of some interface. This function simply casts handle to be of type «IMod»_Handle and should be used in-lieu of directly casting handle; there is no additional overhead associated with this operation and it allows the compiler to validate the types used.

See also

C - Handle_downCast | conditionally move one level down the inheritance hierarchy
xdc.runtime.HeapMin.Handle_upCast | Client documentation for xdc.runtime.HeapMin.Handle_upCast
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


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 Wed, 08 Dec 2010 20:07:58 GMT


XDCtools Error Codes - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCtools Error Codes

Error codes reported by XDCtools

The sections below replace the previous SPRAAU6 Error Codes document.

The command-line programs in XDCtools emit messages with an error code whenever errors are encountered during execution. The following sub-sections summarize the errors defined in the main packages of XDCtools that users will encounter.

These error messages should not be confused with the xdc.runtime package error manager module, for raising and handling runtime errors within your target content.

Contents

  • 1 Errors defined by the xdc package
    • 1.1 xdc.PACKAGE_NOT_FOUND
    • 1.2 xdc.FILE_NOT_FOUND
    • 1.3 xdc.MODULE_NOT_FOUND
    • 1.4 xdc.TOOL_USAGE_ERROR
    • 1.5 xdc.MODULE_UNDEFINED_MAIN_FUNCTION
    • 1.6 xdc.SPEC_FILE_ERROR
    • 1.7 xdc.DEPRECATED_FUNCTION
  • 2 Errors defined by the xdc.bld package
    • 2.1 xdc.bld.PARAMETER_MISMATCH
    • 2.2 xdc.bld.PACKAGE_NOT_BUILT
    • 2.3 xdc.bld.TARGET_CONFIG_ERROR
    • 2.4 xdc.bld.ROOTDIR_NOT_SET
    • 2.5 xdc.bld.INVALID_PACKAGE
    • 2.6 xdc.bld.INVALID_TARGET
    • 2.7 xdc.bld.EXECUTABLE_EXISTS
    • 2.8 xdc.bld.LIBRARY_EXISTS
    • 2.9 xdc.bld.INCORRECT_PACKAGE_NAME
    • 2.10 xdc.bld.CREATE_DIR_ERROR
    • 2.11 xdc.bld.REPOSITORY_EXISTS
    • 2.12 xdc.bld.RELEASE_EXISTS
    • 2.13 xdc.bld.INVALID_RELEASE_PREFIX
    • 2.14 xdc.bld.INVALID_RELEASE_NAME
    • 2.15 xdc.bld.SCRIPT_EXISTS
  • 3 Errors defined by the xdc.cfg package
    • 3.1 xdc.cfg.CONFIG_ERROR

Errors defined by the xdc package

xdc.PACKAGE_NOT_FOUND

xdc.PACKAGE_NOT_FOUND.

This error is reported when a specified package is not found along the current package path. This might happen for the following reasons:
  • A simple typo in the package name. If you've just typed in a package's name it's good to double check this first;
  • your XDCPATH is not setup properly. Ensure that the repositories included in your XDCPATH setting contains the package being referenced. Again, a common cause is a simple typo in the XDCPATH setting.
  • The package has not been built by the xdc tool even though the physical package directory may be on the package path. This case is less common, but can occur during development or when you've been given a package in source code form.
To quickly review the packages on your package path, you can run the xdc.tools.path.sg tool from your current working directory.
xdc.FILE_NOT_FOUND

xdc.FILE_NOT_FOUND.

This error is reported when a specific file is not found, most commonly by the xdc.findFile() function.
If the filename is a relative path then this function will search for it along the package path. In this case a possible cause is that the package path is incorrect or incomplete, and the next steps would be similar to the xdc.PACKAGE_NOT_FOUND error.
xdc.MODULE_NOT_FOUND

xdc.MODULE_NOT_FOUND.

This error is reported when a specific module is not found. The most common cause of this error is a simple typo in the module name. By the time of this error the tools have already found a package expected to contain this module, otherwise an xdc.PACKAGE_NOT_FOUND error would have been thrown instead.
A less common cause of this error is that the package found was simply the wrong one, for example too old or too new a version, and the module does not exist.
xdc.TOOL_USAGE_ERROR

xdc.TOOL_USAGE_ERROR.

This error may happen when the xs tool is not passed the expected command line arguments. See the xs man page for usage.
xdc.MODULE_UNDEFINED_MAIN_FUNCTION

xdc.MODULE_UNDEFINED_MAIN_FUNCTION.

This error is reported when the xs tool is passed a package or module that does not define a main() function. The likely cause is that this package or module was not intended to be used from the command line. See the xs man page for requirements on packages that deliver commands.
xdc.SPEC_FILE_ERROR

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

xdc.DEPRECATED_FUNCTION.

This error is reported whenever a deprecated function is called.

Errors defined by the xdc.bld package

xdc.bld.PARAMETER_MISMATCH

xdc.bld.PARAMETER_MISMATCH.

This error is reported whenever incorrect parameters are passed to the module functions. Ensure that the parameters passed to the function have the right type. This error is reported by the following modules:
  • xdc.bld.PackageContents : addLibrary, addAssembly, addExecutable, addRelease, addRepository, addScript
  • xdc.bld.BuildEnvironment : usePlatform, isInTargetsArray
xdc.bld.PACKAGE_NOT_BUILT

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 the xdc tool. This error is reported by the getReleaseDescs method in the xdc.bld.BuildEnvironment module.
xdc.bld.TARGET_CONFIG_ERROR

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

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.INVALID_PACKAGE

xdc.bld.INVALID_PACKAGE.

This error is reported when a consumer tries to use a corrupted package. Try rebuilding the package causing the problem. This error is reported by the getReleaseDescs method in the xdc.bld.BuildEnvironment module.
xdc.bld.INVALID_TARGET

xdc.bld.INVALID_TARGET.

This error is reported when a package is being built for an unspecified target. Ensure that the correct targets are mentioned in the package's build script. This error is reported by the addLibrary, addExecutable and addAssembly methods in the xdc.bld.PackageContents module.
xdc.bld.EXECUTABLE_EXISTS

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. This error is reported by the addExecutable method in the xdc.bld.PackageContents module.
xdc.bld.LIBRARY_EXISTS

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. This error is reported by the addLibrary method in the xdc.bld.PackageContents module.
xdc.bld.INCORRECT_PACKAGE_NAME

xdc.bld.INCORRECT_PACKAGE_NAME.

This error is reported whenever package name does not match the directory name. Package names should match the directory layout. For example the package ti.sdo.ce.osal should be created in the directory ti/sdo/ce/osal.
xdc.bld.CREATE_DIR_ERROR

xdc.bld.CREATE_DIR_ERROR.

This error is reported whenever there is an error in creating package directories. This maybe related with issues with the host file system. Check whether directories can be created manually in the package sub-directory.
xdc.bld.REPOSITORY_EXISTS

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. This error is reported by the addRepository method in the xdc.bld.PackageContents module.
xdc.bld.RELEASE_EXISTS

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. This error is reported by the addRelease method in the xdc.bld.PackageContents module.
xdc.bld.INVALID_RELEASE_PREFIX

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. This error is reported by the addRelease method in the xdc.bld.PackageContents module.
xdc.bld.INVALID_RELEASE_NAME

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. This error is reported by the addRelease method in the xdc.bld.PackageContents module.
xdc.bld.SCRIPT_EXISTS

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. This error is reported by the addScript method in the xdc.bld.PackageContents module.

Errors defined by the xdc.cfg package

xdc.cfg.CONFIG_ERROR

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.
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCtools File Extensions - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCtools File Extensions

File extensions used by XDCtools

Contents

  • 1 Source Files
  • 2 Generated Files

Source Files

The following table lists the types of source files, other than the traditional C, C++, and assembly language files, used to create a package.

Extension | Description | Example(s)
.cfg | an application configuration script | myapp.cfg
.bld | package build script | config.bld, package.bld
.xdc | RTSC IDL specification file | package.xdc, MyMod.xdc
.xs | either a meta-domain implementation of a module or interface specified by a corresponding .xdc file or a simple capsule | package.xs, MyMod.xs

The .cfg, .bld, and .xs files are all XDCscript files and, as a result, they have the same syntax and same access to your development environment's tools. However, because these files access and manipulate very different "object models", they have unique extensions. For more information about XDCscript files, see The XDCscript Language.

Generated Files

The XDCtools build engine uses the following file extensions by default.

Extension | Description | Example
.a«suffix» | a library archive built using a target whose suffix is «suffix» | dsplib.a64P
.o«suffix» | an object file built using a target whose suffix is «suffix» | fft.o64P
.s«suffix» | an assembly-language file suitable as input to a target whose suffix is «suffix» | fft.s64P
.x«suffix» | an executable built using a target whose suffix is «suffix» | hello.x64P

All files in the ./package sub-directory of a package are generated (or derived) from source files contained in other parts of the package. The table below lists the file extensions of those files that you may need to reference from your source code or makefiles.

Extension | Description | Example
.xdl | target-specific linker command file for the executable «exe» | package/cfg/«exe».xdl
.xdc.h | C header containing internal implementation definitions for the module «Mod» | package/internal/«Mod».xdc.h

The table below lists some other file extensions you might observe in the the package sub-directory but which are purely for internal use.

Extension | Description | Example
.dep | GNU make makefile dependencies used to trigger a rebuild of of selected files | package/lib/myfile.dep
.xdc.inc | tar (or zip) file manifest used to build a release of a package | package/package.xdc.inc
.mak | GNU make makefile containing rules for creating new types of files from source files | package.mak, package/lib/mylib.mak
«pkg».sch | the package's "schema" file; a compiled version of the .xdc files | package/«pkg».sch
.bld.xml | XML file describing the result of the package.bld script and conforms to the XML DTD "schema" xdc/bld/build.dtd | package/package.bld.xml
.rel.xml | XML file describing this package release and conforms to the XML DTD "schema" xdc/bld/release.dtd | package/package.rel.xml
.cfg.xml | XML file describing the result of the configuration step | package/cfg/«exe».cfg.xml
.rta.xml | XML file containing configuration-time information required to support the RTA tooling | package/cfg/«exe».rta.xml
.rov.xs | XDCscript file containing configuration-time information required to support the ROV tooling | package/cfg/«exe».rov.xs
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


XDCtools Internal Version Numbers - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

XDCtools Internal Version Numbers

Managing packages built with different versions of XDCtools

Contents

  • 1 Introduction
  • 2 Internal version numbers of XDCtools releases

Introduction

When building a package, XDCtools adds special marker files to the package to specify the versions of different internal package files. There are four such marker files, their names end with digits marking the versions of internal files, and they are located in the subdirectory package.

vers_gNNN
Specifies the version of the file package/<packageName>.ccs. This file contains an internal representation of XDCspec files in the package.
vers_rNNN
Specifies the version of the file package/<packageName>.java. This file establishes XDCscript representations of types and objects defined in the package.
vers_bNNN
Specifies the version of the file package/package_<packageName>.c. This file contains the target representation of the package.
vers_cNNN
Specifies the version of the file package/package.doc.xml. This file is used by xdc.tools.cdoc to display the package documentation.

When XDCtools loads a package, the marker files determine if the internal files in the loaded package are compatible with XDCtools. If not, XDCtools rebuilds the incompatible internal files, and then uses the rebuilt internal files instead of ones originally delivered with the package. For example, if XDCtools 3.15 loads a package built with XDCtools 3.10, none of the version numbers will match and the internal files for that package will be rebuilt by XDCtools 3.15 before the package can be used. Rebuild of the internal files adds to the configuration time, with package/<packageName>.java files causing the largest performance impact.

If the version numbers of XDCtools match with the package's version numbers, the internal files are used as they are. That is the case when XDCtools 3.10.03 loads a package built with XDCtools 3.10.

If only one of the version numbers does not much, as is the case for XDCtools 3.10.05 and packages built with XDCtools 3.10, only the corresponding internal file package/package_<packageName>.c is rebuilt.

If a package does not have one of the marker files, either because it is built with an XDCtools release that did not create such files or the marker file was deleted, the corresponding internal file will be regenerated.

Internal version numbers of XDCtools releases

Release | .vers_r | .vers_g | .vers_b | .vers_c
2.94 | - | - | - | -
2.95 | - | - | - | -
2.95.01 | 100 | 101 | 100 | -
2.95.02 | 100 | 101 | 100 | -
3.00 | 100 | 102 | 100 | -
3.00.01 | 103 | 102 | 100 | -
3.00.02 | 103 | 102 | 100 | -
3.00.03 | 103 | 102 | 100 | -
3.00.04 | 103 | 102 | 100 | -
3.00.05 | 103 | 102 | 101 | -
3.00.06 | 103 | 102 | 101 | -
3.05.xx | 104 | 102 | 102 | -
3.10.xx | 108 | 104 | 102 | -
3.15 | 150 | 150 | 150 | 150
3.15.01 | 160 | 150 | 150 | 150
3.15.02 | 160 | 150 | 150 | 150
3.15.03 | 170 | 160 | 150 | 150
3.15.04 | 170 | 160 | 150 | 150
3.16.xx | 170 | 160 | 150 | 150
3.20 | 170 | 180 | 150 | 150

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Glossary - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Glossary

Terms used throughout the RTSC-Pedia

Contents

  • 1 Base Directory
  • 2 Build Domain
  • 3 Build Script
  • 4 Bundle
  • 5 Capsule
  • 6 Compatibility Key
  • 7 Component
  • 8 config.bld
  • 9 Configuration Domain
  • 10 Configuration Script
  • 11 DOM
  • 12 Domain Object Model
  • 13 E4X
  • 14 ECMAScript
  • 15 Gated Module
  • 16 IDL
  • 17 Interface
  • 18 JavaScript
  • 19 Meta-Code
  • 20 Meta-Domain
  • 21 Metadata
  • 22 Metaonly Module
  • 23 Module
  • 24 Nested Package
  • 25 Package
  • 26 Package Archive
  • 27 Package Consumer or Client
  • 28 Package Path
  • 29 Package Producer
  • 30 Platform
  • 31 Platform Package
  • 32 Release
  • 33 Repository
  • 34 RTSC IDL
  • 35 Target
  • 36 Target-Code
  • 37 Target Domain
  • 38 Target Compatibility Key
  • 39 Target Module
  • 40 Template
  • 41 Typed-Object
  • 42 XDCtools
  • 43 XDCPATH
  • 44 XDCROOT
  • 45 XDCscript
  • 46 XDCspec

Base Directory

The directory containing the package's specification file, package.xdc.

Build Domain

Before a build script runs, numerous global variables have been initialized which represent the package to be built; i.e., both the xdc.bld.BuildEnvironment and xdc.bld.PackageContents modules as well as any properties accessible from these modules. This global context is sometimes referred to as the "Build Domain" and this global context is used by build scripts to affect the final contents of the package to be created.

Build Script

A build script specifies the set of software artifacts (libraries, headers, executable, scripts, documentation files, etc.) that must be included in a released package. Package producers write build scripts to specify what should be included in the package they are creating. Build scripts have the filename extension ".bld" and are written in the XDCscript language and runs in the context of the Build Domain. Also see DOM.

Bundle

A package that contains one or more repositories; i.e., directories containing a set of related packages.

Bundles are used to distribute a larger "product" consisting of several related packages.

Packages in any of the bundle's repositories are not "nested" packages of the bundle. Nested packages have names that are related to the names to the package within which they are "nested". In the case of a bundle, the packages in any of its repositories have names unrelated to the bundle's name.

Capsule

A capsule is simply a file in a package that contains XDCscript code. Capsules can be loaded and utilized via the xdc.loadCapsule() method. See The XDCscript Language for examples of how capsules can be used.

Compatibility Key

A compatibility key is a sequence of four numbers (M, S, R, and P) that is used to specify compatibility among different versions of the same entity (e.g., a package or a target). Changes in one or more digits of a compatibility key are used by package producers to allow or exclude certain combinations of packages (or object files created with different targets) by package consumers.

For more information compatibility keys and how they are used, see Compatibility Keys in the XDCtools User's Guide.

Component

Because there are many, sometimes conflicting, definitions of component, the term component will be avoided wherever possible. However, many in the software industry are adopting Clemens Szyperski's definition (from "Component Software, Beyond Object-Oriented Programming", 1998):

Software components are binary units of independent production, acquisition, and deployment that interact to form a functioning system.

Szyperski also describes a definition that was first formulated at the 1996 European Conference on Object Oriented Programming (ECOOP) as an outcome of the Workshop on Component-Oriented Programming.

A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third parties.

Using these definitions, we see that components differ from classes in object-oriented systems in that components are units of deployment; most classes in an object-oriented system cannot be independently delivered into and reused in a different application.

Independent of any definition, Szyperski and Messerschmitt identify five essential properties of components:

A component should be multiple-use, non-context-specific, composable with other components, encapsulated (cannot be modified or, typically, even examined) and a unit of independent deployment and versioning

config.bld

config.bld refers to the target configuration file that specifies the location of code-generation tools as well as optional target and platform configuration values used to build packages. This configuration file does not have to be named config.bld but, because this is the default name, this file is often referred to as "the config.bld file" rather than the awkward "the build model's target configuration file".

See xdc.bld.BuildEnvironment for a description of this file and how it is located by XDCtools. For a description of what this file contains and how it's used, see Managing Compiler Toolchains.

Configuration Domain

Before a configuration script runs, numerous global variables have been initialized which represent the program being configured; i.e., xdc.cfg.Program and any properties accessible from this module. This global context is sometimes referred to as the "Configuration Domain" and this global context is used by configuration scripts to affect the results of a configuration.

Configuration Script

A configuration script specifies the set of packages and modules that are available for use at run-time in a target executable. Package consumers write configuration scripts to import RTSC content into their executables, configure the content's functionality and optimize its memory footprint. Configuration scripts have the filename extension ".cfg" and are written in the XDCscript language and runs in the Configuration Domain. Also see DOM.

DOM

DOM is an acromym for Domain Object Model.

Domain Object Model

A Domain Object Model (DOM) is the set of objects that are read or manipulated by a domain-specific scripts. For example, the xdc.cfg.Program object and all of the objects it references form the DOM for configuration scripts. Similarly the xdc.bld.PackageContents and the xdc.bld.BuildEnvironment and any objects these two objects reference form the DOM for build scripts.

Some scripts operate in more than one domain (e.g., package init() functions). In this case, it is possible for a script to determine the current "domain" by examining the value of xdc.om.$name. This value is set as follows:

  • "cfg" for the configuration domain
  • "bld" for the build domain
  • "rov" for the runtime object view domain

E4X

E4X refers to a standards-based extension of ECMA-262 (JavaScript or ECMAScript) adds native XML support to JavaScript. This extension is also known as ECMA-357.

ECMAScript

ECMAScript is a vendor neutral name for JavaScript standardized as ECMA-262.

Gated Module

A gated module is a module whose specification (its .xdc file) declares that is has the @Gated attribute. This attribute means that the module has a dedicated xdc.runtime.Gate that it can use to serialize access to its internally managed "shared" data structures.

If an application configuration script does not explicitly create a gate for a gated module, a gate is automatically created and bound to the module during the configuration process.

IDL

See RTSC IDL.

Interface

An interface is an abstract module; i.e., it provides only the declarations of the constants, types, functions, and variables for which one or more modules implement.

JavaScript

A marketing name for the script language standardized as ECMA-262 (or ECMAScript).

Meta-Code

Code that runs in the meta-domain. Typically this code is written in XDCscript, but it can also be written in Java and even C.

Meta-Domain

Meta-domain refers to execution environments sufficiently rich to support the execution of RTSC configuration scripts; e.g., the developer's workstation.

RTSC modules have a dual existence: each module exists in the meta-domain before an application is linked (where its configuration parameters can be set and its properties examined) and (optionally) in the target-domain (where its functions are called by an embedded application).

Metadata

The simplest definition of metadata is that it is data about data. Metadata is used to facilitate the understanding, use, and management of data. For example, packages include metadata that describe the contents of the package - its compatibility with previous releases, the targets and platforms supported, any dependent packages, etc.

Metaonly Module

A module that has no formal existence on the embedded target. Metaonly modules exist solely in meta-domains (e.g., the configuration model or the build model), are specified using the metaonly keyword in the RTSC IDL, and are implemented in the XDCscript language.

Module

A module is a logically related set of constants, types, functions, and variables formally specified via the RTSC IDL. Roughly speaking, a module is comparable to a C++ or Java class; all of the identifiers defined by module are "scoped" by the module's name and it optionally defines and manages a set of instance objects.

In RTSC, however, modules have a dual existence: each module exists at design-time before an application is linked (where its configuration parameters can be set and its properties examined) and it has an existence at runtime (where its functions are called by the application). In some cases, a module may only exist at design-time and is called a meta-only module.

Modules provide both an interface and an implementation of the interface. A module named ModA typically has two implementation files:

  • ModA.c - the C implementation of the methods declared in its specification file ModA.xdc
  • ModA.xs - the implementation of the meta-domain methods declared in its specification file ModA.xdc

Nested Package

A nested package N is any package in which a proper prefix of N is the name another package, where a proper prefix is any prefix that ends just before a '.' character. For example, if ti.bios is a package, the package ti.bios.tests is a nested package of ti.bios and it is not a nested package of ti.biosutils.

Nested packages do not need to be physically nested; in the example above, ti.bios and ti.bios.tests may be installed in separate repositories.

Packages contained in a repository of a bundle are not nested packages of the bundle; the bundle's name is not a prefix of the name of any package in the bundle's repositories.

Package

A package is a named collection of files which form a unit of versioning, update, and delivery from a producer to a consumer. A package typically serves to contain one or more closely related modules and interfaces.

Each package is embodied as a specially named directory (and its contents) within a file system and always contains a package specification file named package.xdc and a sub-directory named package containing files that describe the package.

Package Archive

A single file that "contains" all of the files included in a package release. The XDCtools are used to initially create a package archive; in this case, the archive is a tar ball.

Package Consumer or Client

A role played by a developer in which she uses a package. Consumers never release new versions of a package and, with the exception of source packages, consumers never modify the contents of a package.

Package Path

A sequence of directories (also called repositories) that are searched to locate packages and the files contained in these packages.

XDCtools defines the package path as follows: "$XDCPATH;$XDCROOT/packages;^", where XDCPATH is an environment variable or command line parameter controllable by the user, XDCROOT is the location of the XDCtools installation directory, and '^' is the repository of the current package (if one exists). XDCPATH is a semi-colon separated list of repositories.

A package may appear in more than one repository, but only the first occurrence, in order of the repositories listed in the package path, is visible. This enables one to quickly replace one or more packages in a system without changing the contents or locations of existing repositories. In addition, this interpretation is consistent with how C/C++ compilers locate header files and, as a result, integration of existing C/C++ code gen tools amounts to simply adding a -I option for each repository in the package path.

For more information about managing the package path see Managing the Package Path.

Package Producer

A role played by a developer in which she creates and controls releases of a package to be used by package consumers.

Platform

A platform is a named entity that can load and run an executable. Platforms encapsulate everything necessary to link and run an application on a specific hardware platform: a linker command file template used to link an application, a "model" of the hardware used by configuration scripts to conditionally select appropriate libraries to link against, and commands to run applications on the hardware.

Platforms are defined in RTSC as an instance of a module named Platform, in any package, that implements the xdc.platform.IPlatform interface.

Platform Package

Any package containing a module, named Platform, that implements the xdc.platform.IPlatform interface. Platform packages contain all the information necessary to link and run applications within a specific "execution environment". Usually the execution environment is a specific hardware platform, however, it may also be a hardware simulation environment.

Release

A release of a package is the set of files that are seen by the client of the package. This set of files is often a subset of the package files that were used by the producer in the creation of the release. For example, package producers often deliver only pre-compiled libraries built from proprietary sources maintained in the package's directory.

A single version of package can provide multiple releases. For example, a codec package may produce multiple releases from a common set of sources: a binary release for each ISA supported (each sold separately), a "watermarked" binary release for evaluation by potential customers for one or more of the binary releases, and a re-buildable source release.

Repository

A directory that contains one or more packages which, when added to the Package Path, makes those packages visible to all tools. For example, a package named xdc.runtime must be installed in a directory that ends with xdc/runtime/ and the directory containing the xdc sub-directory is the repository for this package.

RTSC IDL

An Interface Definition Language (IDL) is a declarative language used to specify the programmatic interfaces provided by components within a system. IDLs describe interfaces in a language-neutral way, offer a bridge between different implementation-language tool-chains, and standardizes concepts not uniformly present in the implementation languages.

For example, using the RTSC IDL it is possible to define an interface that can be shared between a GNU Arm C/C++ tool-chain, a TI C6x C/C++ tool-chain, and a Microsoft x86 C/C++ tool-chain. Beyond just standardizing the concept of an interface and enabling interoperability among components produced by different groups, the RTSC IDL also augments C/C++ implementation languages by adding the concepts of package and module; concepts essential to component-based development.

The RTSC IDL is formally described in the XDCspec Language Reference.

Target

Targets are a named entity that encapsulate everything necessary to build a library of object code: a compiler tool-chain, a compiler-specific runtime model, and optionally a runtime OS. Targets are defined by any RTSC module that implements the xdc.bld.ITarget interface.

A RTSC target is distinct from the execution platform (sometimes referred to as "target hardware"). RTSC targets only encapsulate the code generation tools used to produce object code that is run on a RTSC platform. Platforms can run code produced by more than one target - different compiler tool-chains produce code that can run a platform - and a target can produce a library that can be used in different applications running on different platforms.

Target-Code

Code that runs in the target domain. Typically this code is written in C, but it can also be written in C++ or even an assembly language supported by a target.

Target Domain

A target-domain refers to an embedded target execution environment. Typically this environment is highly resource constrained with very little memory, no spare MIPS capacity, and tight real-time constraints.

RTSC modules have a dual existence: each module exists in the meta-domain before an application is linked (where its configuration parameters can be set and its properties examined) and (optionally) in the target-domain (where its functions are called by an embedded application).

Target Compatibility Key

Each target has an associated compatibility key. This compatibility key is typically computed from the version number of the compile and is used to ensure that incompatible versions of tool-chain's object code are not linked into a single application.

Target compatibility keys are used to detect the situation where a consumer using an old tool-chain tries to use a package that was built with a newer version of the tool-chain. Since an old tool-chain can't anticipate new object-file formats or name mangling algorithms used by newer tools, target compatibility key checks can provide early diagnostics for what would otherwise be cryptic tool-chain errors or hard to find bugs in an application.

Target Module

A target module is any module that is not meta-only. These modules provide code (or data) can be referenced by other modules at runtime in the embedded target.

Template

A template is a file that is used to generate another text file. Although a template file can have any extension, by convention the template in the XDCtools all have the extension .xdt. Templates are loaded and expanded using the XDCscript methods xdc.loadTemplate() and tplt.genFile() where tplt is the object returned by xdc.loadTemplate().

Templates are used to generate C headers, linker command files, C source code, and even IDE project files. For more information about how templates can be used to generate files see Methods for Generating Other Files.

Typed-Object

Typed-Objects refer to XDCscript objects that, unlike ordinary JavaScript objects, are specified via XDCspec, do not allow the addition of new properties, type check all assignments to their properties, and have a set of built-in properties that enable scripts to "walk" the object's inheritance type hierarchy.

XDCtools

A set of freely available host-independent tools that enable the creation and use of RTSC packages.

These tools can be obtained from the RTSC home page.

XDCPATH

XDCPATH is an environment variable used set to be a string of ';' separated directories that contain packages; i.e., repositories. XDCPATH is not the entire package path, it only defines the initial repositories searched. The values contained in XDCPATH may also be specified on the command line of any XDCtools command via the --xdcpath option; for example, see the xs command options documentation.

It is usually a mistake to put a relative path in XDCPATH. Relative paths in XDCPATH reference directories relative to the package being built rather than the directory where the xdc command was invoked. Thus, a relative path will refer to a different repository for each package being built.

It is possible, however, to use the '^' character in the XDCPATH definition to refer to the current package's repository. So, if you have a repository that is always in a fixed location relative to all of your package's repositories, it is possible to create a single XDCPATH setting that does not include any absolute paths. Suppose, for example, that your build system places all prerequisite packages in an imports repository prior to building the packages in a src repository and that the imports and src repositories are sibling directories in the file system. The following XDCPATH setting is sufficient to build all packages in the src repository.

Windows

set XDCPATH=^/../imports

Unix

export XDCPATH=^/../imports

Note that multiple versions of the same package can appear along the XDCPATH. The package path can name multiple repositories which can contain a package directory with the same name. When searching for a package, the first repository that contains a directory matching the package's name will be used. Thus, even if two packages with the same name appear in the package path, only the first one in the order specified in the package path will be found.

XDCROOT

The installation directory of XDCtools. The xdc command defines an environment variable of this name so that makefiles can portably reference the packages that are delivered as part of XDCtools.

XDCscript

XDCscript refers to the programming language used to implement the meta-domain portion of RTSC modules, configuration and build scripts, and command line utilities. This language is primarily JavaScript with E4X but also includes some Rhino shell extensions and a few global objects defined by the XDCtools product.

For a description of this language, see the The XDCscript Language user's guide.

XDCspec

XDCspec refers to the RTSC Interface Definition Language used to declare modules, interfaces, and packages.

For a description of this language, see the XDCspec Language Reference.

[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Bibliography - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Bibliography

References to external resources

Contents

  • 1 Books and Papers
  • 2 Web Links
    • 2.1 Domain-specific Frameworks and Standards
    • 2.2 Embedded Component Models
    • 2.3 JavaScript and Java References

Books and Papers

Cheesman, J. Danials, J.; UML Components, Addison-Wesley, 2001

Flanagan, D.; JavaScript, The Definitive Guide, Fourth Edition, O'Reilly 2002.

Szyperski,C.; Component Software, Beyond Object-Oriented Programming, 1998.

Vaughn,G.V., Elliston,B., Tromey, T., Taylor, I.L.; GNU Autoconf, Automake, and Libtool, New Riders, 2001.

Web Links

Microsoft .NET naming conventions: http://msdn2.microsoft.com/en-us/library/xzf533w0(VS.71).aspx

GNU Make - online manual and tips from Paul Smith, the maintainer of GNU make.

Parr, Terence; Humans should not have to grok XML, IBM Developer Works, 01 Aug 2001

Real-Time Software Components - support newsgroup and documentation

Texas Instruments, Download page for XDCtools

Vaughn,G.V., Elliston,B., Tromey, T., Taylor, I.L.; Home page for The Goat Book ("GNU Autoconf, Automake, and Libtool")

Domain-specific Frameworks and Standards

AUTomotive Open System ARchitecture (AUTOSAR), http://www.autosar.org

Motor Industry Software Reliability Association, http://www.misra.org.uk

Embedded Component Models

Koala - The Koala Component Model for Consumer Electronics Software

TinyOS - Components and Interfaces, the nesC compiler and nesC reference manual

eCos - from its description:

One of the key technological innovations in eCos is the configuration system. The configuration system allows the application writer to impose their requirements on the run-time components, both in terms of their functionality and implementation, [...] this enables eCos developers to create their own application-specific operating system and makes eCos suitable for a wide range of embedded uses. Configuration also ensures that the resource footprint of eCos is minimized as all unnecessary functionality and features are removed. The configuration system also presents eCos as a component architecture. This provides a standardized mechanism for component suppliers to extend the functionality of eCos and allows applications to be built from a wide set of optional configurable run-time components.

Pin - Pin Component Technology (V1.0) and Its C Interface; Scott Hissam, James Ivers, Daniel Plakosh, Kurt C. Wallnau; Technical Note CMU/SEI-2005-TN-001

PECOS - Components for embedded software: the PECOS approach

JavaScript and Java References

  • ECMA-262 standard: http://www.ecma.ch/ecma1/STAND/ECMA-262.HTM
  • Rhino JavaScript interpreter: http://www.mozilla.org/rhino
  • LiveConnect: http://developer.mozilla.org/en/docs/LiveConnect
  • Java 2 SDK: http://java.sun.com/j2se/1.3/docs
  • java.io package: http://java.sun.com/j2se/1.3/docs/api/java/io/package-summary.html
  • Java coding and naming conventions specified by SUN: http://java.sun.com/docs/codeconv/
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


All Packages

package gnu.targets;
// Package of targets that wrap GNU gcc code generation tools
package gnu.targets.arm;
// GCC-based code generation targets for Arm
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.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 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 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 ti.catalog;
//
package ti.catalog.arm;
// Package of devices for the arm 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.lm3init;
//
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;
//
package ti.catalog.c2800;
// Package of devices for the c2800 family of DSPs
package ti.catalog.c2800.init;
//
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;
//
package ti.catalog.msp430.peripherals.adc;
//
package ti.catalog.msp430.peripherals.clock;
//
package ti.catalog.msp430.peripherals.communication;
//
package ti.catalog.msp430.peripherals.gpio;
//
package ti.catalog.msp430.peripherals.interrupt;
//
package ti.catalog.msp430.peripherals.memory;
//
package ti.catalog.msp430.peripherals.oa;
//
package ti.catalog.msp430.peripherals.special_function;
//
package ti.catalog.msp430.peripherals.timer;
//
package ti.catalog.msp430.peripherals.watchdog;
//
package ti.catalog.peripherals.hdvicp2;
//
package ti.catalog.t16;
// Package of devices for the t16 family of DSPs
package ti.mcu.msp430;
// Header and linker command files for msp430 devices
package ti.platforms.app510;
// Platform package for the DM510 app510 platform
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.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.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.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.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.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.expOMAPL138;
// Platform package for the expOMAPL138 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.ezdsp5505;
// Platform package for the ezdsp5505 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;
//
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 Tesla functional simulator
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.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.simT16;
// Platform package for the simT16 platform
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.teb5561;
// Platform package for the TEB 5561 platform
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.elf;
// Package of targets for TI code generation tools for ELF
package ti.targets.elf.rtst16;
// Runtime support package for the t16 targets
package ti.targets.msp430;
// 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;
//
package ti.targets.omf.elf;
//
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.platformWizard;
//
package xdc.tools.platformWizard.memoryMap;
//
package xdc.tools.product;
// Interfaces for products contributing RTSC packages
package xdc.tools.product.plugingen;
// Generate eclipse plugins for RTSC content
package xdc.tools.repoman;
// Repository Manager tool
package xdc.tools.repoman.sg;
// Graphical interface to repoman tool
generated on Wed, 08 Dec 2010 20:10:02 GMT


package gnu.targets
index URL

Package of targets that wrap GNU gcc code generation tools

XDCspec declarations sourced in gnu/targets/package.xdc
requires xdc.bld[1, 0, 1];
package gnu.targets [1, 0, 1] {
    interface ITarget;
    // Interface to GCC compatible compilers
    module Linux86;
    // Native x86 Linux target
    module MVArm9;
    // MonteVista Arm9 little endian embedded Linux target
    module Mingw;
    // MinGW native Windows target
    module Sparc;
    // Native Sparc Solaris target
    module UCArm9;
    // uClibc Arm9 little endian embedded Linux target
}
generated on Wed, 08 Dec 2010 20:08:03 GMT


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: ""
            }
        ],
        [
            "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);
     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
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: ""
        }
    ],
    [
        "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.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 Wed, 08 Dec 2010 20:08:02 GMT


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
        }
    };
    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: ""
            }
        ],
        [
            "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.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
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
    }
};
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: ""
        }
    ],
    [
        "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.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 Wed, 08 Dec 2010 20:08:02 GMT


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
        }
    };
    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: ""
            }
        ],
        [
            "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.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
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
    }
};
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: ""
        }
    ],
    [
        "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.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 Wed, 08 Dec 2010 20:08:03 GMT


module gnu.targets.MVArm9

metaonly module gnu.targets.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/MVArm9.xdc
var MVArm9 = xdc.useModule('gnu.targets.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.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
        }
    };
    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: ""
            }
        ],
        [
            "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.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
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.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
    }
};
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: ""
        }
    ],
    [
        "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.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 Wed, 08 Dec 2010 20:08:02 GMT


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
        }
    };
    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: ""
            }
        ],
        [
            "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.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
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
    }
};
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: ""
        }
    ],
    [
        "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.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 Wed, 08 Dec 2010 20:08:03 GMT


module gnu.targets.UCArm9

metaonly module gnu.targets.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/UCArm9.xdc
var UCArm9 = xdc.useModule('gnu.targets.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.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
        }
    };
    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: ""
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-g -pg"
                },
                linkOpts: "-pg"
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-fprofile-arcs -ftest-coverage"
                },
                linkOpts: "-fprofile-arcs -ftest-coverage"
            }
        ]
    ];
     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.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
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.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
    }
};
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: ""
        }
    ],
    [
        "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 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.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 Wed, 08 Dec 2010 20:08:03 GMT


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[1, 0, 1];
requires gnu.targets;
package gnu.targets.arm [1, 0, 0, 0] {
    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
}
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 Wed, 08 Dec 2010 20:08:04 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
        }
    };
    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: ""
            }
        ],
        [
            "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.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
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
    }
};
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: ""
        }
    ],
    [
        "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.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 Wed, 08 Dec 2010 20:08:04 GMT


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
        }
    };
    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: ""
            }
        ],
        [
            "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.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
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
    }
};
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: ""
        }
    ],
    [
        "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.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 Wed, 08 Dec 2010 20:08:04 GMT


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
        }
    };
    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: ""
            }
        ],
        [
            "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.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
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
    }
};
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: ""
        }
    ],
    [
        "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.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 Wed, 08 Dec 2010 20:08:04 GMT


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 Wed, 08 Dec 2010 20:08:04 GMT


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 Wed, 08 Dec 2010 20:08:04 GMT


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 Wed, 08 Dec 2010 20:08:04 GMT


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 Wed, 08 Dec 2010 20:08:05 GMT


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
        }
    };
    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: ""
            }
        ],
        [
            "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.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
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
    }
};
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: ""
        }
    ],
    [
        "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.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 Wed, 08 Dec 2010 20:08:05 GMT


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
        }
    };
    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: ""
            }
        ],
        [
            "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.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
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
    }
};
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: ""
        }
    ],
    [
        "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.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 Wed, 08 Dec 2010 20:08:05 GMT


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 Wed, 08 Dec 2010 20:08:05 GMT


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 Wed, 08 Dec 2010 20:08:05 GMT


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 Wed, 08 Dec 2010 20:08:01 GMT


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 Wed, 08 Dec 2010 20:08:01 GMT


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 Wed, 08 Dec 2010 20:08:01 GMT


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 Wed, 08 Dec 2010 20:08:01 GMT


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 Wed, 08 Dec 2010 20:08:01 GMT


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 Wed, 08 Dec 2010 20:08:08 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:07 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:08:08 GMT


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 Wed, 08 Dec 2010 20:08:08 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:08:08 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:08 GMT


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 Wed, 08 Dec 2010 20:08:08 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:08:08 GMT


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 Wed, 08 Dec 2010 20:08:07 GMT


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);
     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
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.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 Wed, 08 Dec 2010 20:08:06 GMT


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.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
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.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 Wed, 08 Dec 2010 20:08:06 GMT


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.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
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.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 Wed, 08 Dec 2010 20:08:07 GMT


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.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
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.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 Wed, 08 Dec 2010 20:08:07 GMT


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 Wed, 08 Dec 2010 20:08:07 GMT


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.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
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.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 Wed, 08 Dec 2010 20:08:07 GMT


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 Wed, 08 Dec 2010 20:08:07 GMT


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 Wed, 08 Dec 2010 20:08:07 GMT


package ti.catalog
index URL
XDCspec declarations sourced in ti/catalog/package.xdc
package ti.catalog [1, 0, 0] {
    interface ICpuDataSheet;
}
generated on Wed, 08 Dec 2010 20:08:08 GMT


interface ti.catalog.ICpuDataSheet

metaonly interface ti.catalog.ICpuDataSheet
index URL
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// The 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

The 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 Wed, 08 Dec 2010 20:08:08 GMT


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 Wed, 08 Dec 2010 20:08:13 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:10 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:10 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:10 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:10 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:10 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:10 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:10 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:10 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:10 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:10 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:10 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:10 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:10 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:10 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:10 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:11 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:11 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:11 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:11 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:11 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:11 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:11 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:11 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:11 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:11 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:11 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:11 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:11 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:11 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:11 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:11 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:11 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:11 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:11 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:11 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:12 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:12 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:12 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:12 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:12 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:12 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:12 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:12 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:12 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:12 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:12 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:12 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:12 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:12 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:12 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:12 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:12 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:12 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:12 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:12 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:13 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:13 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:13 GMT


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 IOMAP3xxx;
    interface ITI8148;
    // An interface implemented by all TI8148 devices
    interface ITI8168;
    // An interface implemented by all TI8168 devices
    module OMAP3403;
    module OMAP3405;
    module OMAP3425;
    module OMAP3503;
    module OMAP3505;
    module OMAP3515;
    module OMAP3517;
    module OMAP3525;
    module OMAP3530;
    module TMS320C3430;
    module TMS320C6A8168;
    module TMS320DM8148;
    module TMS320DM8168;
    module TMS320TI814X;
    module TMS320TI816X;
}
generated on Wed, 08 Dec 2010 20:08:15 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:14 GMT


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: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "OCMC_0",
            {
                name: "OCMC_0",
                base: 0x40300000,
                len: 0x00020000
            }
        ],
        [
            "OCMC_1",
            {
                name: "OCMC_1",
                base: 0x40400000,
                len: 0x00020000
            }
        ]
    ];
    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// The 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: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x40300000,
            len: 0x00020000
        }
    ],
    [
        "OCMC_1",
        {
            name: "OCMC_1",
            base: 0x40400000,
            len: 0x00020000
        }
    ]
];
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

The 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 Wed, 08 Dec 2010 20:08:14 GMT


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: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "OCMC_0",
            {
                name: "OCMC_0",
                base: 0x40300000,
                len: 0x00020000
            }
        ],
        [
            "OCMC_1",
            {
                name: "OCMC_1",
                base: 0x40400000,
                len: 0x00020000
            }
        ]
    ];
    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// The 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: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x40300000,
            len: 0x00020000
        }
    ],
    [
        "OCMC_1",
        {
            name: "OCMC_1",
            base: 0x40400000,
            len: 0x00020000
        }
    ]
];
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

The 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 Wed, 08 Dec 2010 20:08:14 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:14 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:14 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:14 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:14 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:14 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:14 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:14 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:14 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:14 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:14 GMT


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: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "OCMC_0",
            {
                name: "OCMC_0",
                base: 0x40300000,
                len: 0x00020000
            }
        ],
        [
            "OCMC_1",
            {
                name: "OCMC_1",
                base: 0x40400000,
                len: 0x00020000
            }
        ]
    ];
        params.minDataUnitSize// The minimum addressable 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// The 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: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x40300000,
            len: 0x00020000
        }
    ],
    [
        "OCMC_1",
        {
            name: "OCMC_1",
            base: 0x40400000,
            len: 0x00020000
        }
    ]
];
    params.minDataUnitSize = Int 1;
    // The 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;
    // The 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: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x40300000,
            len: 0x00020000
        }
    ],
    [
        "OCMC_1",
        {
            name: "OCMC_1",
            base: 0x40400000,
            len: 0x00020000
        }
    ]
];
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

The 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 Wed, 08 Dec 2010 20:08:14 GMT


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: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "OCMC_0",
            {
                name: "OCMC_0",
                base: 0x40300000,
                len: 0x00020000
            }
        ],
        [
            "OCMC_1",
            {
                name: "OCMC_1",
                base: 0x40400000,
                len: 0x00020000
            }
        ]
    ];
        params.minDataUnitSize// The minimum addressable 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// The 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: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x40300000,
            len: 0x00020000
        }
    ],
    [
        "OCMC_1",
        {
            name: "OCMC_1",
            base: 0x40400000,
            len: 0x00020000
        }
    ]
];
    params.minDataUnitSize = Int 1;
    // The 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;
    // The 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: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x40300000,
            len: 0x00020000
        }
    ],
    [
        "OCMC_1",
        {
            name: "OCMC_1",
            base: 0x40400000,
            len: 0x00020000
        }
    ]
];
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

The 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 Wed, 08 Dec 2010 20:08:15 GMT


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: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "OCMC_0",
            {
                name: "OCMC_0",
                base: 0x40300000,
                len: 0x00020000
            }
        ],
        [
            "OCMC_1",
            {
                name: "OCMC_1",
                base: 0x40400000,
                len: 0x00020000
            }
        ]
    ];
        params.minDataUnitSize// The minimum addressable 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// The 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: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x40300000,
            len: 0x00020000
        }
    ],
    [
        "OCMC_1",
        {
            name: "OCMC_1",
            base: 0x40400000,
            len: 0x00020000
        }
    ]
];
    params.minDataUnitSize = Int 1;
    // The 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;
    // The 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: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x40300000,
            len: 0x00020000
        }
    ],
    [
        "OCMC_1",
        {
            name: "OCMC_1",
            base: 0x40400000,
            len: 0x00020000
        }
    ]
];
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

The 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 Wed, 08 Dec 2010 20:08:15 GMT


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: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "OCMC_0",
            {
                name: "OCMC_0",
                base: 0x40300000,
                len: 0x00020000
            }
        ],
        [
            "OCMC_1",
            {
                name: "OCMC_1",
                base: 0x40400000,
                len: 0x00020000
            }
        ]
    ];
        params.minDataUnitSize// The minimum addressable 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// The 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: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x40300000,
            len: 0x00020000
        }
    ],
    [
        "OCMC_1",
        {
            name: "OCMC_1",
            base: 0x40400000,
            len: 0x00020000
        }
    ]
];
    params.minDataUnitSize = Int 1;
    // The 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;
    // The 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: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x40300000,
            len: 0x00020000
        }
    ],
    [
        "OCMC_1",
        {
            name: "OCMC_1",
            base: 0x40400000,
            len: 0x00020000
        }
    ]
];
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

The 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 Wed, 08 Dec 2010 20:08:15 GMT


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: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "OCMC_0",
            {
                name: "OCMC_0",
                base: 0x40300000,
                len: 0x00020000
            }
        ],
        [
            "OCMC_1",
            {
                name: "OCMC_1",
                base: 0x40400000,
                len: 0x00020000
            }
        ]
    ];
        params.minDataUnitSize// The minimum addressable 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// The 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: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x40300000,
            len: 0x00020000
        }
    ],
    [
        "OCMC_1",
        {
            name: "OCMC_1",
            base: 0x40400000,
            len: 0x00020000
        }
    ]
];
    params.minDataUnitSize = Int 1;
    // The 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;
    // The 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: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x40300000,
            len: 0x00020000
        }
    ],
    [
        "OCMC_1",
        {
            name: "OCMC_1",
            base: 0x40400000,
            len: 0x00020000
        }
    ]
];
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

The 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 Wed, 08 Dec 2010 20:08:15 GMT


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 Wed, 08 Dec 2010 20:08:15 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:15 GMT


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 ITI8148;
    // An interface implemented by all TI8148 devices
    interface ITI8168;
    // An interface implemented by all TI8168 devices
    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 TMS320C6A8168;
    // The TMS320C6A8168 device data sheet module
    module TMS320DM8148;
    // The TMS320DM8148 device data sheet module
    module TMS320DM8168;
    // The TMS320DM8168 device data sheet module
    module TMS320TI814X;
    // The TMS320TI814X device data sheet module
    module TMS320TI816X;
    // The TMS320TI816X device data sheet module
}
generated on Wed, 08 Dec 2010 20:08:17 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:16 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:16 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:16 GMT


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_ROM",
            {
                name: "L2_ROM",
                base: 0x00000000,
                len: 0x00004000
            }
        ],
        [
            "L2_RAM",
            {
                name: "L2_RAM",
                base: 0x20000000,
                len: 0x00040000
            }
        ],
        [
            "OCMC_0",
            {
                name: "OCMC_0",
                base: 0x00300000,
                len: 0x00020000
            }
        ],
        [
            "OCMC_0",
            {
                name: "OCMC_0",
                base: 0x00400000,
                len: 0x00020000
            }
        ]
    ];
    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// The 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_ROM",
        {
            name: "L2_ROM",
            base: 0x00000000,
            len: 0x00004000
        }
    ],
    [
        "L2_RAM",
        {
            name: "L2_RAM",
            base: 0x20000000,
            len: 0x00040000
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x00300000,
            len: 0x00020000
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x00400000,
            len: 0x00020000
        }
    ]
];
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

The 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 Wed, 08 Dec 2010 20:08:16 GMT


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_ROM",
            {
                name: "L2_ROM",
                base: 0x00000000,
                len: 0x00004000
            }
        ],
        [
            "L2_RAM",
            {
                name: "L2_RAM",
                base: 0x20000000,
                len: 0x00040000
            }
        ],
        [
            "OCMC_0",
            {
                name: "OCMC_0",
                base: 0x00300000,
                len: 0x00020000
            }
        ],
        [
            "OCMC_0",
            {
                name: "OCMC_0",
                base: 0x00400000,
                len: 0x00020000
            }
        ]
    ];
    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// The 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_ROM",
        {
            name: "L2_ROM",
            base: 0x00000000,
            len: 0x00004000
        }
    ],
    [
        "L2_RAM",
        {
            name: "L2_RAM",
            base: 0x20000000,
            len: 0x00040000
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x00300000,
            len: 0x00020000
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x00400000,
            len: 0x00020000
        }
    ]
];
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

The 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 Wed, 08 Dec 2010 20:08:16 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:16 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:16 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:16 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:16 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:16 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:16 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:16 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:16 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:16 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:16 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:16 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:17 GMT


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_ROM",
            {
                name: "L2_ROM",
                base: 0x00000000,
                len: 0x00004000
            }
        ],
        [
            "L2_RAM",
            {
                name: "L2_RAM",
                base: 0x20000000,
                len: 0x00040000
            }
        ],
        [
            "OCMC_0",
            {
                name: "OCMC_0",
                base: 0x00300000,
                len: 0x00020000
            }
        ],
        [
            "OCMC_0",
            {
                name: "OCMC_0",
                base: 0x00400000,
                len: 0x00020000
            }
        ]
    ];
        params.minDataUnitSize// The minimum addressable 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// The 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_ROM",
        {
            name: "L2_ROM",
            base: 0x00000000,
            len: 0x00004000
        }
    ],
    [
        "L2_RAM",
        {
            name: "L2_RAM",
            base: 0x20000000,
            len: 0x00040000
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x00300000,
            len: 0x00020000
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x00400000,
            len: 0x00020000
        }
    ]
];
    params.minDataUnitSize = Int 1;
    // The 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;
    // The 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_ROM",
        {
            name: "L2_ROM",
            base: 0x00000000,
            len: 0x00004000
        }
    ],
    [
        "L2_RAM",
        {
            name: "L2_RAM",
            base: 0x20000000,
            len: 0x00040000
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x00300000,
            len: 0x00020000
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x00400000,
            len: 0x00020000
        }
    ]
];
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

The 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 Wed, 08 Dec 2010 20:08:17 GMT


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_ROM",
            {
                name: "L2_ROM",
                base: 0x00000000,
                len: 0x00004000
            }
        ],
        [
            "L2_RAM",
            {
                name: "L2_RAM",
                base: 0x20000000,
                len: 0x00040000
            }
        ],
        [
            "OCMC_0",
            {
                name: "OCMC_0",
                base: 0x00300000,
                len: 0x00020000
            }
        ],
        [
            "OCMC_0",
            {
                name: "OCMC_0",
                base: 0x00400000,
                len: 0x00020000
            }
        ]
    ];
        params.minDataUnitSize// The minimum addressable 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// The 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_ROM",
        {
            name: "L2_ROM",
            base: 0x00000000,
            len: 0x00004000
        }
    ],
    [
        "L2_RAM",
        {
            name: "L2_RAM",
            base: 0x20000000,
            len: 0x00040000
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x00300000,
            len: 0x00020000
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x00400000,
            len: 0x00020000
        }
    ]
];
    params.minDataUnitSize = Int 1;
    // The 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;
    // The 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_ROM",
        {
            name: "L2_ROM",
            base: 0x00000000,
            len: 0x00004000
        }
    ],
    [
        "L2_RAM",
        {
            name: "L2_RAM",
            base: 0x20000000,
            len: 0x00040000
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x00300000,
            len: 0x00020000
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x00400000,
            len: 0x00020000
        }
    ]
];
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

The 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 Wed, 08 Dec 2010 20:08:17 GMT


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_ROM",
            {
                name: "L2_ROM",
                base: 0x00000000,
                len: 0x00004000
            }
        ],
        [
            "L2_RAM",
            {
                name: "L2_RAM",
                base: 0x20000000,
                len: 0x00040000
            }
        ],
        [
            "OCMC_0",
            {
                name: "OCMC_0",
                base: 0x00300000,
                len: 0x00020000
            }
        ],
        [
            "OCMC_0",
            {
                name: "OCMC_0",
                base: 0x00400000,
                len: 0x00020000
            }
        ]
    ];
        params.minDataUnitSize// The minimum addressable 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// The 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_ROM",
        {
            name: "L2_ROM",
            base: 0x00000000,
            len: 0x00004000
        }
    ],
    [
        "L2_RAM",
        {
            name: "L2_RAM",
            base: 0x20000000,
            len: 0x00040000
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x00300000,
            len: 0x00020000
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x00400000,
            len: 0x00020000
        }
    ]
];
    params.minDataUnitSize = Int 1;
    // The 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;
    // The 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_ROM",
        {
            name: "L2_ROM",
            base: 0x00000000,
            len: 0x00004000
        }
    ],
    [
        "L2_RAM",
        {
            name: "L2_RAM",
            base: 0x20000000,
            len: 0x00040000
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x00300000,
            len: 0x00020000
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x00400000,
            len: 0x00020000
        }
    ]
];
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

The 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 Wed, 08 Dec 2010 20:08:17 GMT


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_ROM",
            {
                name: "L2_ROM",
                base: 0x00000000,
                len: 0x00004000
            }
        ],
        [
            "L2_RAM",
            {
                name: "L2_RAM",
                base: 0x20000000,
                len: 0x00040000
            }
        ],
        [
            "OCMC_0",
            {
                name: "OCMC_0",
                base: 0x00300000,
                len: 0x00020000
            }
        ],
        [
            "OCMC_0",
            {
                name: "OCMC_0",
                base: 0x00400000,
                len: 0x00020000
            }
        ]
    ];
        params.minDataUnitSize// The minimum addressable 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// The 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_ROM",
        {
            name: "L2_ROM",
            base: 0x00000000,
            len: 0x00004000
        }
    ],
    [
        "L2_RAM",
        {
            name: "L2_RAM",
            base: 0x20000000,
            len: 0x00040000
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x00300000,
            len: 0x00020000
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x00400000,
            len: 0x00020000
        }
    ]
];
    params.minDataUnitSize = Int 1;
    // The 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;
    // The 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_ROM",
        {
            name: "L2_ROM",
            base: 0x00000000,
            len: 0x00004000
        }
    ],
    [
        "L2_RAM",
        {
            name: "L2_RAM",
            base: 0x20000000,
            len: 0x00040000
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x00300000,
            len: 0x00020000
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x00400000,
            len: 0x00020000
        }
    ]
];
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

The 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 Wed, 08 Dec 2010 20:08:17 GMT


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_ROM",
            {
                name: "L2_ROM",
                base: 0x00000000,
                len: 0x00004000
            }
        ],
        [
            "L2_RAM",
            {
                name: "L2_RAM",
                base: 0x20000000,
                len: 0x00040000
            }
        ],
        [
            "OCMC_0",
            {
                name: "OCMC_0",
                base: 0x00300000,
                len: 0x00020000
            }
        ],
        [
            "OCMC_0",
            {
                name: "OCMC_0",
                base: 0x00400000,
                len: 0x00020000
            }
        ]
    ];
        params.minDataUnitSize// The minimum addressable 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// The 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_ROM",
        {
            name: "L2_ROM",
            base: 0x00000000,
            len: 0x00004000
        }
    ],
    [
        "L2_RAM",
        {
            name: "L2_RAM",
            base: 0x20000000,
            len: 0x00040000
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x00300000,
            len: 0x00020000
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x00400000,
            len: 0x00020000
        }
    ]
];
    params.minDataUnitSize = Int 1;
    // The 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;
    // The 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_ROM",
        {
            name: "L2_ROM",
            base: 0x00000000,
            len: 0x00004000
        }
    ],
    [
        "L2_RAM",
        {
            name: "L2_RAM",
            base: 0x20000000,
            len: 0x00040000
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x00300000,
            len: 0x00020000
        }
    ],
    [
        "OCMC_0",
        {
            name: "OCMC_0",
            base: 0x00400000,
            len: 0x00020000
        }
    ]
];
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

The 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 Wed, 08 Dec 2010 20:08:17 GMT


package ti.catalog.arm.cortexm3.lm3init
index URL
XDCspec declarations sourced in ti/catalog/arm/cortexm3/lm3init/package.xdc
package ti.catalog.arm.cortexm3.lm3init [1, 0, 0] {
    module Boot;
}
generated on Wed, 08 Dec 2010 20:08:17 GMT


module ti.catalog.arm.cortexm3.lm3init.Boot

metaonly module ti.catalog.arm.cortexm3.lm3init.Boot
index URL
  • XDCscript usage
  • Individual elements
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;
        const Boot.LDOPCTL_2_60V;
        const Boot.LDOPCTL_2_65V;
        const Boot.LDOPCTL_2_70V;
        const Boot.LDOPCTL_2_75V;
        const Boot.LDOPCTL_2_25V;
        const Boot.LDOPCTL_2_30V;
        const Boot.LDOPCTL_2_35V;
        const Boot.LDOPCTL_2_40V;
        const Boot.LDOPCTL_2_45V;
        const Boot.LDOPCTL_2_50V;
    values of type Boot.OscSrc//
        const Boot.OSCSRC_MAIN;
        const Boot.OSCSRC_INT;
        const Boot.OSCSRC_INT4;
        const Boot.OSCSRC_30;
    values of type Boot.PwmDiv//
        const Boot.PWMDIV_1;
        const Boot.PWMDIV_2;
        const Boot.PWMDIV_4;
        const Boot.PWMDIV_8;
        const Boot.PWMDIV_16;
        const Boot.PWMDIV_32;
        const Boot.PWMDIV_64;
    values of type Boot.SysDiv//
        const Boot.SYSDIV_1;
        const Boot.SYSDIV_2;
        const Boot.SYSDIV_3;
        const Boot.SYSDIV_4;
        const Boot.SYSDIV_5;
        const Boot.SYSDIV_6;
        const Boot.SYSDIV_7;
        const Boot.SYSDIV_8;
        const Boot.SYSDIV_9;
        const Boot.SYSDIV_10;
        const Boot.SYSDIV_11;
        const Boot.SYSDIV_12;
        const Boot.SYSDIV_13;
        const Boot.SYSDIV_14;
        const Boot.SYSDIV_15;
        const Boot.SYSDIV_16;
        const Boot.SYSDIV_17;
        const Boot.SYSDIV_18;
        const Boot.SYSDIV_19;
        const Boot.SYSDIV_20;
        const Boot.SYSDIV_21;
        const Boot.SYSDIV_22;
        const Boot.SYSDIV_23;
        const Boot.SYSDIV_24;
        const Boot.SYSDIV_25;
        const Boot.SYSDIV_26;
        const Boot.SYSDIV_27;
        const Boot.SYSDIV_28;
        const Boot.SYSDIV_29;
        const Boot.SYSDIV_30;
        const Boot.SYSDIV_31;
        const Boot.SYSDIV_32;
        const Boot.SYSDIV_33;
        const Boot.SYSDIV_34;
        const Boot.SYSDIV_35;
        const Boot.SYSDIV_36;
        const Boot.SYSDIV_37;
        const Boot.SYSDIV_38;
        const Boot.SYSDIV_39;
        const Boot.SYSDIV_40;
        const Boot.SYSDIV_41;
        const Boot.SYSDIV_42;
        const Boot.SYSDIV_43;
        const Boot.SYSDIV_44;
        const Boot.SYSDIV_45;
        const Boot.SYSDIV_46;
        const Boot.SYSDIV_47;
        const Boot.SYSDIV_48;
        const Boot.SYSDIV_49;
        const Boot.SYSDIV_50;
        const Boot.SYSDIV_51;
        const Boot.SYSDIV_52;
        const Boot.SYSDIV_53;
        const Boot.SYSDIV_54;
        const Boot.SYSDIV_55;
        const Boot.SYSDIV_56;
        const Boot.SYSDIV_57;
        const Boot.SYSDIV_58;
        const Boot.SYSDIV_59;
        const Boot.SYSDIV_60;
        const Boot.SYSDIV_61;
        const Boot.SYSDIV_62;
        const Boot.SYSDIV_63;
        const Boot.SYSDIV_64;
        const Boot.SYSDIV_2_5;
        const Boot.SYSDIV_3_5;
        const Boot.SYSDIV_4_5;
        const Boot.SYSDIV_5_5;
        const Boot.SYSDIV_6_5;
        const Boot.SYSDIV_7_5;
        const Boot.SYSDIV_8_5;
        const Boot.SYSDIV_9_5;
        const Boot.SYSDIV_10_5;
        const Boot.SYSDIV_11_5;
        const Boot.SYSDIV_12_5;
        const Boot.SYSDIV_13_5;
        const Boot.SYSDIV_14_5;
        const Boot.SYSDIV_15_5;
        const Boot.SYSDIV_16_5;
        const Boot.SYSDIV_17_5;
        const Boot.SYSDIV_18_5;
        const Boot.SYSDIV_19_5;
        const Boot.SYSDIV_20_5;
        const Boot.SYSDIV_21_5;
        const Boot.SYSDIV_22_5;
        const Boot.SYSDIV_23_5;
        const Boot.SYSDIV_24_5;
        const Boot.SYSDIV_25_5;
        const Boot.SYSDIV_26_5;
        const Boot.SYSDIV_27_5;
        const Boot.SYSDIV_28_5;
        const Boot.SYSDIV_29_5;
        const Boot.SYSDIV_30_5;
        const Boot.SYSDIV_31_5;
        const Boot.SYSDIV_32_5;
        const Boot.SYSDIV_33_5;
        const Boot.SYSDIV_34_5;
        const Boot.SYSDIV_35_5;
        const Boot.SYSDIV_36_5;
        const Boot.SYSDIV_37_5;
        const Boot.SYSDIV_38_5;
        const Boot.SYSDIV_39_5;
        const Boot.SYSDIV_40_5;
        const Boot.SYSDIV_41_5;
        const Boot.SYSDIV_42_5;
        const Boot.SYSDIV_43_5;
        const Boot.SYSDIV_44_5;
        const Boot.SYSDIV_45_5;
        const Boot.SYSDIV_46_5;
        const Boot.SYSDIV_47_5;
        const Boot.SYSDIV_48_5;
        const Boot.SYSDIV_49_5;
        const Boot.SYSDIV_50_5;
        const Boot.SYSDIV_51_5;
        const Boot.SYSDIV_52_5;
        const Boot.SYSDIV_53_5;
        const Boot.SYSDIV_54_5;
        const Boot.SYSDIV_55_5;
        const Boot.SYSDIV_56_5;
        const Boot.SYSDIV_57_5;
        const Boot.SYSDIV_58_5;
        const Boot.SYSDIV_59_5;
        const Boot.SYSDIV_60_5;
        const Boot.SYSDIV_61_5;
        const Boot.SYSDIV_62_5;
        const Boot.SYSDIV_63_5;
    values of type Boot.XtalFreq//
        const Boot.XTAL_1MHZ;
        const Boot.XTAL_1_84MHZ;
        const Boot.XTAL_2MHZ;
        const Boot.XTAL_2_45MHZ;
        const Boot.XTAL_3_57MHZ;
        const Boot.XTAL_3_68MHZ;
        const Boot.XTAL_4MHZ;
        const Boot.XTAL_4_09MHZ;
        const Boot.XTAL_4_91MHZ;
        const Boot.XTAL_5MHZ;
        const Boot.XTAL_5_12MHZ;
        const Boot.XTAL_6MHZ;
        const Boot.XTAL_6_14MHZ;
        const Boot.XTAL_7_37MHZ;
        const Boot.XTAL_8MHZ;
        const Boot.XTAL_8_19MHZ;
        const Boot.XTAL_10MHZ;
        const Boot.XTAL_12MHZ;
        const Boot.XTAL_12_2MHZ;
        const Boot.XTAL_13_5MHZ;
        const Boot.XTAL_14_3MHZ;
        const Boot.XTAL_16MHZ;
        const Boot.XTAL_16_3MHZ;
    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
    const Boot.bootCodeSection// Code section that Boot module code is in = String ".bootCodeSection";
     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.rovViewInfo// = ViewInfo.Instance ViewInfo.create;
     Boot.sysClockDiv// SYS Clock Divisor = Boot.SysDiv Boot.SYSDIV_1;
     Boot.xtal// Crystal Value = Boot.XtalFreq Boot.XTAL_1MHZ;
enum Boot.LdoOut
index URL
XDCscript usage meta-domain
values of type Boot.LdoOut
    const Boot.LDOPCTL_2_55V;
    const Boot.LDOPCTL_2_60V;
    const Boot.LDOPCTL_2_65V;
    const Boot.LDOPCTL_2_70V;
    const Boot.LDOPCTL_2_75V;
    const Boot.LDOPCTL_2_25V;
    const Boot.LDOPCTL_2_30V;
    const Boot.LDOPCTL_2_35V;
    const Boot.LDOPCTL_2_40V;
    const Boot.LDOPCTL_2_45V;
    const Boot.LDOPCTL_2_50V;
enum Boot.OscSrc
index URL
XDCscript usage meta-domain
values of type Boot.OscSrc
    const Boot.OSCSRC_MAIN;
    const Boot.OSCSRC_INT;
    const Boot.OSCSRC_INT4;
    const Boot.OSCSRC_30;
enum Boot.PwmDiv
index URL
XDCscript usage meta-domain
values of type Boot.PwmDiv
    const Boot.PWMDIV_1;
    const Boot.PWMDIV_2;
    const Boot.PWMDIV_4;
    const Boot.PWMDIV_8;
    const Boot.PWMDIV_16;
    const Boot.PWMDIV_32;
    const Boot.PWMDIV_64;
enum Boot.SysDiv
index URL
XDCscript usage meta-domain
values of type Boot.SysDiv
    const Boot.SYSDIV_1;
    const Boot.SYSDIV_2;
    const Boot.SYSDIV_3;
    const Boot.SYSDIV_4;
    const Boot.SYSDIV_5;
    const Boot.SYSDIV_6;
    const Boot.SYSDIV_7;
    const Boot.SYSDIV_8;
    const Boot.SYSDIV_9;
    const Boot.SYSDIV_10;
    const Boot.SYSDIV_11;
    const Boot.SYSDIV_12;
    const Boot.SYSDIV_13;
    const Boot.SYSDIV_14;
    const Boot.SYSDIV_15;
    const Boot.SYSDIV_16;
    const Boot.SYSDIV_17;
    const Boot.SYSDIV_18;
    const Boot.SYSDIV_19;
    const Boot.SYSDIV_20;
    const Boot.SYSDIV_21;
    const Boot.SYSDIV_22;
    const Boot.SYSDIV_23;
    const Boot.SYSDIV_24;
    const Boot.SYSDIV_25;
    const Boot.SYSDIV_26;
    const Boot.SYSDIV_27;
    const Boot.SYSDIV_28;
    const Boot.SYSDIV_29;
    const Boot.SYSDIV_30;
    const Boot.SYSDIV_31;
    const Boot.SYSDIV_32;
    const Boot.SYSDIV_33;
    const Boot.SYSDIV_34;
    const Boot.SYSDIV_35;
    const Boot.SYSDIV_36;
    const Boot.SYSDIV_37;
    const Boot.SYSDIV_38;
    const Boot.SYSDIV_39;
    const Boot.SYSDIV_40;
    const Boot.SYSDIV_41;
    const Boot.SYSDIV_42;
    const Boot.SYSDIV_43;
    const Boot.SYSDIV_44;
    const Boot.SYSDIV_45;
    const Boot.SYSDIV_46;
    const Boot.SYSDIV_47;
    const Boot.SYSDIV_48;
    const Boot.SYSDIV_49;
    const Boot.SYSDIV_50;
    const Boot.SYSDIV_51;
    const Boot.SYSDIV_52;
    const Boot.SYSDIV_53;
    const Boot.SYSDIV_54;
    const Boot.SYSDIV_55;
    const Boot.SYSDIV_56;
    const Boot.SYSDIV_57;
    const Boot.SYSDIV_58;
    const Boot.SYSDIV_59;
    const Boot.SYSDIV_60;
    const Boot.SYSDIV_61;
    const Boot.SYSDIV_62;
    const Boot.SYSDIV_63;
    const Boot.SYSDIV_64;
    const Boot.SYSDIV_2_5;
    const Boot.SYSDIV_3_5;
    const Boot.SYSDIV_4_5;
    const Boot.SYSDIV_5_5;
    const Boot.SYSDIV_6_5;
    const Boot.SYSDIV_7_5;
    const Boot.SYSDIV_8_5;
    const Boot.SYSDIV_9_5;
    const Boot.SYSDIV_10_5;
    const Boot.SYSDIV_11_5;
    const Boot.SYSDIV_12_5;
    const Boot.SYSDIV_13_5;
    const Boot.SYSDIV_14_5;
    const Boot.SYSDIV_15_5;
    const Boot.SYSDIV_16_5;
    const Boot.SYSDIV_17_5;
    const Boot.SYSDIV_18_5;
    const Boot.SYSDIV_19_5;
    const Boot.SYSDIV_20_5;
    const Boot.SYSDIV_21_5;
    const Boot.SYSDIV_22_5;
    const Boot.SYSDIV_23_5;
    const Boot.SYSDIV_24_5;
    const Boot.SYSDIV_25_5;
    const Boot.SYSDIV_26_5;
    const Boot.SYSDIV_27_5;
    const Boot.SYSDIV_28_5;
    const Boot.SYSDIV_29_5;
    const Boot.SYSDIV_30_5;
    const Boot.SYSDIV_31_5;
    const Boot.SYSDIV_32_5;
    const Boot.SYSDIV_33_5;
    const Boot.SYSDIV_34_5;
    const Boot.SYSDIV_35_5;
    const Boot.SYSDIV_36_5;
    const Boot.SYSDIV_37_5;
    const Boot.SYSDIV_38_5;
    const Boot.SYSDIV_39_5;
    const Boot.SYSDIV_40_5;
    const Boot.SYSDIV_41_5;
    const Boot.SYSDIV_42_5;
    const Boot.SYSDIV_43_5;
    const Boot.SYSDIV_44_5;
    const Boot.SYSDIV_45_5;
    const Boot.SYSDIV_46_5;
    const Boot.SYSDIV_47_5;
    const Boot.SYSDIV_48_5;
    const Boot.SYSDIV_49_5;
    const Boot.SYSDIV_50_5;
    const Boot.SYSDIV_51_5;
    const Boot.SYSDIV_52_5;
    const Boot.SYSDIV_53_5;
    const Boot.SYSDIV_54_5;
    const Boot.SYSDIV_55_5;
    const Boot.SYSDIV_56_5;
    const Boot.SYSDIV_57_5;
    const Boot.SYSDIV_58_5;
    const Boot.SYSDIV_59_5;
    const Boot.SYSDIV_60_5;
    const Boot.SYSDIV_61_5;
    const Boot.SYSDIV_62_5;
    const Boot.SYSDIV_63_5;
enum Boot.XtalFreq
index URL
XDCscript usage meta-domain
values of type Boot.XtalFreq
    const Boot.XTAL_1MHZ;
    const Boot.XTAL_1_84MHZ;
    const Boot.XTAL_2MHZ;
    const Boot.XTAL_2_45MHZ;
    const Boot.XTAL_3_57MHZ;
    const Boot.XTAL_3_68MHZ;
    const Boot.XTAL_4MHZ;
    const Boot.XTAL_4_09MHZ;
    const Boot.XTAL_4_91MHZ;
    const Boot.XTAL_5MHZ;
    const Boot.XTAL_5_12MHZ;
    const Boot.XTAL_6MHZ;
    const Boot.XTAL_6_14MHZ;
    const Boot.XTAL_7_37MHZ;
    const Boot.XTAL_8MHZ;
    const Boot.XTAL_8_19MHZ;
    const Boot.XTAL_10MHZ;
    const Boot.XTAL_12MHZ;
    const Boot.XTAL_12_2MHZ;
    const Boot.XTAL_13_5MHZ;
    const Boot.XTAL_14_3MHZ;
    const Boot.XTAL_16MHZ;
    const Boot.XTAL_16_3MHZ;
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.bootCodeSection // module-wide
index URL

Code section that Boot module code is in

XDCscript usage meta-domain
const Boot.bootCodeSection = String ".bootCodeSection";
DETAILS
To place this section into a memory segment yourself, add the following to you configuration file:
  Program.sectMap[Boot.bootCodeSection] = new Program.SectionSpec();
  Program.sectMap[Boot.bootCodeSection].loadSegment = "yourBootCodeMemorySegment";
or to place the code at a specific address:
  Program.sectMap[Boot.bootCodeSection] = new Program.SectionSpec();
  Program.sectMap[Boot.bootCodeSection].loadAdress = yourBootCodeAddress;
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.
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.
config Boot.ioscDisable // module-wide
index URL

Internal Oscillator Disable flag

XDCscript usage meta-domain
Boot.ioscDisable = Bool false;
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;
config Boot.moscDisable // module-wide
index URL

Main Oscillator Disable flag

XDCscript usage meta-domain
Boot.moscDisable = Bool false;
config Boot.oscSrc // module-wide
index URL

Oscillator Source

XDCscript usage meta-domain
Boot.oscSrc = Boot.OscSrc Boot.OSCSRC_MAIN;
config Boot.pllBypass // module-wide
index URL

PLL Bypass flag

XDCscript usage meta-domain
Boot.pllBypass = Bool false;
config Boot.pllOutEnable // module-wide
index URL

PLL Output Enable flag

XDCscript usage meta-domain
Boot.pllOutEnable = Bool false;
config Boot.pwmClockDiv // module-wide
index URL

PWM Clock Divisor

XDCscript usage meta-domain
Boot.pwmClockDiv = Boot.PwmDiv Boot.PWMDIV_1;
config Boot.rovViewInfo // module-wide
index URL
XDCscript usage meta-domain
Boot.rovViewInfo = ViewInfo.Instance ViewInfo.create;
config Boot.sysClockDiv // module-wide
index URL

SYS Clock Divisor

XDCscript usage meta-domain
Boot.sysClockDiv = Boot.SysDiv Boot.SYSDIV_1;
config Boot.xtal // module-wide
index URL

Crystal Value

XDCscript usage meta-domain
Boot.xtal = Boot.XtalFreq Boot.XTAL_1MHZ;
generated on Wed, 08 Dec 2010 20:08:17 GMT


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 Wed, 08 Dec 2010 20:08:17 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:17 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:17 GMT


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 Wed, 08 Dec 2010 20:08:18 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:18 GMT


package ti.catalog.arm.peripherals.timers
index URL
XDCspec declarations sourced in ti/catalog/arm/peripherals/timers/package.xdc
package ti.catalog.arm.peripherals.timers {
    module Timer;
}
generated on Wed, 08 Dec 2010 20:08:17 GMT


module ti.catalog.arm.peripherals.timers.Timer

metaonly module ti.catalog.arm.peripherals.timers.Timer
index URL
  • 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.addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds) returns Void
     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.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCscript usage meta-domain
Timer.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.
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 Wed, 08 Dec 2010 20:08:17 GMT


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
    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;
}
generated on Wed, 08 Dec 2010 20:08:23 GMT


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: 0x004000,
                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// The 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: 0x004000,
            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

The 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 Wed, 08 Dec 2010 20:08:20 GMT


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: 0x008000,
                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// The 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: 0x008000,
            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

The 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 Wed, 08 Dec 2010 20:08:20 GMT


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: 0x008000,
                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// The 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: 0x008000,
            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

The 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 Wed, 08 Dec 2010 20:08:20 GMT


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: 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: "64K X 16 Flash memory",
                name: "FLASH",
                base: 0x3e8000,
                len: 0x010000,
                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// The 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: 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: "64K X 16 Flash memory",
            name: "FLASH",
            base: 0x3e8000,
            len: 0x010000,
            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

The 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 Wed, 08 Dec 2010 20:08:20 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:20 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:20 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:20 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:20 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:20 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:20 GMT


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: 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// The 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: 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;
    // The 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: 0x004000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "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

The 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 Wed, 08 Dec 2010 20:08:20 GMT


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: 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// The 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: 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;
    // The 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: 0x004000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "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

The 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 Wed, 08 Dec 2010 20:08:20 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:20 GMT


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: 0x004000,
                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// The 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: 0x004000,
            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;
    // The 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: 0x004000,
            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

The 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 Wed, 08 Dec 2010 20:08:20 GMT


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: 0x008000,
                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// The 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: 0x008000,
            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;
    // The 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: 0x008000,
            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

The 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 Wed, 08 Dec 2010 20:08:20 GMT


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: 0x004000,
                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// The 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: 0x004000,
            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;
    // The 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: 0x004000,
            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

The 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 Wed, 08 Dec 2010 20:08:21 GMT


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: 0x008000,
                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// The 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: 0x008000,
            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;
    // The 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: 0x008000,
            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

The 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 Wed, 08 Dec 2010 20:08:21 GMT


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: 0x004000,
                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// The 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: 0x004000,
            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;
    // The 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: 0x004000,
            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

The 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 Wed, 08 Dec 2010 20:08:21 GMT


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: 0x008000,
                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// The 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: 0x008000,
            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;
    // The 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: 0x008000,
            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

The 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 Wed, 08 Dec 2010 20:08:21 GMT


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: 0x004000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "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// The 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: 0x004000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "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;
    // The 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: 0x004000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "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

The 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 Wed, 08 Dec 2010 20:08:21 GMT


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: 0x008000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "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// The 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: 0x008000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "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;
    // The 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: 0x008000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "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

The 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 Wed, 08 Dec 2010 20:08:21 GMT


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: 0x008000,
                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// The 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: 0x008000,
            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;
    // The 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: 0x008000,
            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

The 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 Wed, 08 Dec 2010 20:08:21 GMT


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: 0x008000,
                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// The 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: 0x008000,
            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;
    // The 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: 0x008000,
            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

The 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 Wed, 08 Dec 2010 20:08:21 GMT


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: 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: "64K X 16 Flash memory",
                name: "FLASH",
                base: 0x3e8000,
                len: 0x010000,
                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// The 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: 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: "64K X 16 Flash memory",
            name: "FLASH",
            base: 0x3e8000,
            len: 0x010000,
            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;
    // The 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: 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: "64K X 16 Flash memory",
            name: "FLASH",
            base: 0x3e8000,
            len: 0x010000,
            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

The 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 Wed, 08 Dec 2010 20:08:21 GMT


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: 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: "64K X 16 Flash memory",
                name: "FLASH",
                base: 0x3e8000,
                len: 0x010000,
                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// The 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: 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: "64K X 16 Flash memory",
            name: "FLASH",
            base: 0x3e8000,
            len: 0x010000,
            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;
    // The 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: 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: "64K X 16 Flash memory",
            name: "FLASH",
            base: 0x3e8000,
            len: 0x010000,
            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

The 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 Wed, 08 Dec 2010 20:08:21 GMT


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: 0x010000,
                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// The 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: 0x010000,
            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;
    // The 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: 0x010000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "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

The 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 Wed, 08 Dec 2010 20:08:21 GMT


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: 0x008000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "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// The 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: 0x008000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "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;
    // The 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: 0x008000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "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

The 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 Wed, 08 Dec 2010 20:08:21 GMT


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: 0x010000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "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// The 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: 0x010000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "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;
    // The 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: 0x010000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "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

The 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 Wed, 08 Dec 2010 20:08:21 GMT


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: 0x020000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "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// The 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: 0x020000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "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;
    // The 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: 0x020000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "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

The 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 Wed, 08 Dec 2010 20:08:22 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:22 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:22 GMT


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: 0x20000,
                page: 0,
                space: "code/data"
            }
        ],
        [
            "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// The 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: 0x20000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "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;
    // The 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: 0x20000,
            page: 0,
            space: "code/data"
        }
    ],
    [
        "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

The 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 Wed, 08 Dec 2010 20:08:22 GMT


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: 0x10000,
                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// The 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: 0x10000,
            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;
    // The 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: 0x10000,
            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

The 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 Wed, 08 Dec 2010 20:08:22 GMT


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: 0x20000,
                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// The 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: 0x20000,
            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;
    // The 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: 0x20000,
            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

The 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 Wed, 08 Dec 2010 20:08:22 GMT


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: 0x40000,
                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// The 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: 0x40000,
            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;
    // The 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: 0x40000,
            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

The 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 Wed, 08 Dec 2010 20:08:22 GMT


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: 0x10000,
                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// The 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: 0x10000,
            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;
    // The 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: 0x10000,
            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

The 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 Wed, 08 Dec 2010 20:08:22 GMT


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: 0x20000,
                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// The 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: 0x20000,
            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;
    // The 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: 0x20000,
            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

The 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 Wed, 08 Dec 2010 20:08:22 GMT


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: 0x40000,
                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// The 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: 0x40000,
            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;
    // The 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: 0x40000,
            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

The 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 Wed, 08 Dec 2010 20:08:22 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:22 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:22 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:22 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:22 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:22 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:23 GMT


package ti.catalog.c2800.init
index URL
XDCspec declarations sourced in ti/catalog/c2800/init/package.xdc
package ti.catalog.c2800.init [1, 0, 0] {
    module Boot;
}
generated on Wed, 08 Dec 2010 20:08:23 GMT


module ti.catalog.c2800.init.Boot

metaonly module ti.catalog.c2800.init.Boot
index URL
  • XDCscript usage
  • Individual elements
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
    var obj = new Boot.ModuleView// ;
        obj.disableWatchdog = Bool ...
        obj.configurePll = Bool ...
        obj.pllcrDIV = UInt ...
        obj.pllstsDIVSEL = UInt ...
module-wide config parameters
    const Boot.bootCodeSection// Code section that Boot module code is in = String ".bootCodeSection";
     Boot.configurePll// PLL configuration flag, default is false = Bool false;
     Boot.disableWatchdog// Watchdog disable flag, default is false = Bool false;
     Boot.pllcrDIV// PLLCR[DIV] value. Default is 10 = UInt 10;
     Boot.pllstsDIVSEL// PLLSTS[DIVSEL] value. Default is 2 = UInt 2;
     Boot.rovViewInfo// = ViewInfo.Instance ViewInfo.create;
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 ...
config Boot.bootCodeSection // module-wide
index URL

Code section that Boot module code is in

XDCscript usage meta-domain
const Boot.bootCodeSection = String ".bootCodeSection";
DETAILS
To place this section into a memory segment yourself, add the following to you configuration file:
  Program.sectMap[Boot.bootCodeSection] = new Program.SectionSpec();
  Program.sectMap[Boot.bootCodeSection].loadSegment = "yourBootCodeMemorySegment";
or to place the code at a specific adress:
  Program.sectMap[Boot.bootCodeSection] = new Program.SectionSpec();
  Program.sectMap[Boot.bootCodeSection].loadAdress = yourBootCodeAddress;
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 automatically configure the PLL.
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 automatically disabled the watchdog timer.
config Boot.pllcrDIV // module-wide
index URL

PLLCR[DIV] 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)
config Boot.pllstsDIVSEL // module-wide
index URL

PLLSTS[DIVSEL] 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)
config Boot.rovViewInfo // module-wide
index URL
XDCscript usage meta-domain
Boot.rovViewInfo = ViewInfo.Instance ViewInfo.create;
generated on Wed, 08 Dec 2010 20:08:23 GMT


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 Wed, 08 Dec 2010 20:08:25 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:24 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:24 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:24 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:24 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:24 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:24 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:24 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:24 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:24 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:24 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:24 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:24 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:24 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:24 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:25 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:25 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:25 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:25 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:25 GMT


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 Wed, 08 Dec 2010 20:08:28 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:26 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:26 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:26 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:26 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:26 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:27 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:27 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:27 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:27 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:27 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:27 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:27 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:27 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:27 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:27 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:27 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:27 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:27 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:27 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:27 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:27 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:27 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:27 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:28 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:28 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:28 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:28 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:28 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:28 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:28 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:28 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:28 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:28 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:28 GMT


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 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 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;
    module Arctic;
    // The Arctic device data sheet module
    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 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 TMS320C6670;
    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 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 TMS320TCI6616;
    module TMS320TCI6618;
    module TMS320TI814X;
    // The C674 device data sheet module
    module TMS320TI816X;
    // The C674 device data sheet module
    module TNETV107X;
}
generated on Wed, 08 Dec 2010 20:08:48 GMT


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: 0x7FF00000,
                len: 0x00100000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "DMEM",
            {
                comment: "T16 Internal data memory",
                name: "DMEM",
                base: 0x20020000,
                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// The 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: 0x7FF00000,
            len: 0x00100000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "DMEM",
        {
            comment: "T16 Internal data memory",
            name: "DMEM",
            base: 0x20020000,
            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;
    // The 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: 0x7FF00000,
            len: 0x00100000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "DMEM",
        {
            comment: "T16 Internal data memory",
            name: "DMEM",
            base: 0x20020000,
            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

The 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 Wed, 08 Dec 2010 20:08:36 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:33 GMT


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 Wed, 08 Dec 2010 20:08:33 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:33 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:33 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:33 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:34 GMT


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: 0x00040000,
                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 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x10F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "OCMC_0",
            {
                comment: "OCMC (On-chip RAM) Bank 0 (128KB)",
                name: "OCMC_0",
                base: 0x40300000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "OCMC_1",
            {
                comment: "OCMC (On-chip RAM) Bank 1 (128KB)",
                name: "OCMC_1",
                base: 0x40400000,
                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// The 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: 0x00040000,
            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 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "OCMC_0",
        {
            comment: "OCMC (On-chip RAM) Bank 0 (128KB)",
            name: "OCMC_0",
            base: 0x40300000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC_1",
        {
            comment: "OCMC (On-chip RAM) Bank 1 (128KB)",
            name: "OCMC_1",
            base: 0x40400000,
            len: 0x00020000,
            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

The 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 Wed, 08 Dec 2010 20:08:34 GMT


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",
                        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 HDVICP2.Instance hdvicp1// ;
    config HDVICP2.Instance hdvicp2// ;
    config IPlatform.Memory memMap// [string] = [
        [
            "IRAM",
            {
                comment: "Internal 256KB L2 memory",
                name: "IRAM",
                base: 0x10800000,
                len: 0x00040000,
                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 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x10F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "OCMC_0",
            {
                comment: "OCMC (On-chip RAM) Bank 0 (128KB)",
                name: "OCMC_0",
                base: 0x40300000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "OCMC_1",
            {
                comment: "OCMC (On-chip RAM) Bank 1 (128KB)",
                name: "OCMC_1",
                base: 0x40400000,
                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// The 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",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "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: 0x00040000,
            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 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "OCMC_0",
        {
            comment: "OCMC (On-chip RAM) Bank 0 (128KB)",
            name: "OCMC_0",
            base: 0x40300000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC_1",
        {
            comment: "OCMC (On-chip RAM) Bank 1 (128KB)",
            name: "OCMC_1",
            base: 0x40400000,
            len: 0x00020000,
            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

The 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 Wed, 08 Dec 2010 20:08:34 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:34 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:34 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:34 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:34 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:34 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:34 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:34 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:34 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:34 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:35 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:35 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:35 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:35 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:35 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:35 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:35 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:35 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:35 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:08:35 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:36 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:36 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:36 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:36 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:36 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:36 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:36 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:36 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:37 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:37 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:37 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:37 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:37 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:37 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:37 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:37 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:37 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:37 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:37 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:37 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:37 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:37 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:38 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:38 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:38 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:38 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:38 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:38 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:38 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:38 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:38 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:38 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:39 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:39 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:39 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:39 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:39 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:39 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:39 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:39 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:39 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:40 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:40 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:40 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:40 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:40 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:40 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:40 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:40 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:40 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:40 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:40 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:40 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:41 GMT


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",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "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: 0x00040000,
                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 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x10F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "OCMC_0",
            {
                comment: "OCMC (On-chip RAM) Bank 0 (128KB)",
                name: "OCMC_0",
                base: 0x40300000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "OCMC_1",
            {
                comment: "OCMC (On-chip RAM) Bank 1 (128KB)",
                name: "OCMC_1",
                base: 0x40400000,
                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// The 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",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "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: 0x00040000,
            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 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "OCMC_0",
        {
            comment: "OCMC (On-chip RAM) Bank 0 (128KB)",
            name: "OCMC_0",
            base: 0x40300000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC_1",
        {
            comment: "OCMC (On-chip RAM) Bank 1 (128KB)",
            name: "OCMC_1",
            base: 0x40400000,
            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;
    // The 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: 0x00040000,
            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 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "OCMC_0",
        {
            comment: "OCMC (On-chip RAM) Bank 0 (128KB)",
            name: "OCMC_0",
            base: 0x40300000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC_1",
        {
            comment: "OCMC (On-chip RAM) Bank 1 (128KB)",
            name: "OCMC_1",
            base: 0x40400000,
            len: 0x00020000,
            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

The 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 Wed, 08 Dec 2010 20:08:41 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:41 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:41 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:41 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:41 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:41 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:41 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:41 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:41 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:41 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:42 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:42 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:42 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:42 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:42 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:42 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:42 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:42 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:42 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:42 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:43 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:43 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:43 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:43 GMT


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",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "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: 0x00040000,
                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 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x10F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "OCMC_0",
            {
                comment: "OCMC (On-chip RAM) Bank 0 (128KB)",
                name: "OCMC_0",
                base: 0x40300000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "OCMC_1",
            {
                comment: "OCMC (On-chip RAM) Bank 1 (128KB)",
                name: "OCMC_1",
                base: 0x40400000,
                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// The 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",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "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: 0x00040000,
            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 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "OCMC_0",
        {
            comment: "OCMC (On-chip RAM) Bank 0 (128KB)",
            name: "OCMC_0",
            base: 0x40300000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC_1",
        {
            comment: "OCMC (On-chip RAM) Bank 1 (128KB)",
            name: "OCMC_1",
            base: 0x40400000,
            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;
    // The 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: 0x00040000,
            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 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "OCMC_0",
        {
            comment: "OCMC (On-chip RAM) Bank 0 (128KB)",
            name: "OCMC_0",
            base: 0x40300000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC_1",
        {
            comment: "OCMC (On-chip RAM) Bank 1 (128KB)",
            name: "OCMC_1",
            base: 0x40400000,
            len: 0x00020000,
            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

The 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 Wed, 08 Dec 2010 20:08:43 GMT


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",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "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: 0x00040000,
                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 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x10F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "OCMC_0",
            {
                comment: "OCMC (On-chip RAM) Bank 0 (128KB)",
                name: "OCMC_0",
                base: 0x40300000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "OCMC_1",
            {
                comment: "OCMC (On-chip RAM) Bank 1 (128KB)",
                name: "OCMC_1",
                base: 0x40400000,
                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// The 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",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "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: 0x00040000,
            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 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "OCMC_0",
        {
            comment: "OCMC (On-chip RAM) Bank 0 (128KB)",
            name: "OCMC_0",
            base: 0x40300000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC_1",
        {
            comment: "OCMC (On-chip RAM) Bank 1 (128KB)",
            name: "OCMC_1",
            base: 0x40400000,
            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;
    // The 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: 0x00040000,
            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 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "OCMC_0",
        {
            comment: "OCMC (On-chip RAM) Bank 0 (128KB)",
            name: "OCMC_0",
            base: 0x40300000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC_1",
        {
            comment: "OCMC (On-chip RAM) Bank 1 (128KB)",
            name: "OCMC_1",
            base: 0x40400000,
            len: 0x00020000,
            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

The 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 Wed, 08 Dec 2010 20:08:43 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:43 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:43 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:43 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:44 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:44 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:44 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:44 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:44 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:44 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:44 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:44 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:44 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:45 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:45 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:45 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:45 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:45 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:45 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:45 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:45 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:46 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:46 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:46 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:46 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:46 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:46 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:46 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:46 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:46 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:47 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:47 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:47 GMT


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: 0x00040000,
                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 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x10F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "OCMC_0",
            {
                comment: "OCMC (On-chip RAM) Bank 0 (128KB)",
                name: "OCMC_0",
                base: 0x40300000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "OCMC_1",
            {
                comment: "OCMC (On-chip RAM) Bank 1 (128KB)",
                name: "OCMC_1",
                base: 0x40400000,
                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// The 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: 0x00040000,
            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 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "OCMC_0",
        {
            comment: "OCMC (On-chip RAM) Bank 0 (128KB)",
            name: "OCMC_0",
            base: 0x40300000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC_1",
        {
            comment: "OCMC (On-chip RAM) Bank 1 (128KB)",
            name: "OCMC_1",
            base: 0x40400000,
            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;
    // The 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: 0x00040000,
            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 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "OCMC_0",
        {
            comment: "OCMC (On-chip RAM) Bank 0 (128KB)",
            name: "OCMC_0",
            base: 0x40300000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC_1",
        {
            comment: "OCMC (On-chip RAM) Bank 1 (128KB)",
            name: "OCMC_1",
            base: 0x40400000,
            len: 0x00020000,
            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

The 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 Wed, 08 Dec 2010 20:08:47 GMT


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",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "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: 0x00040000,
                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 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x10F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "OCMC_0",
            {
                comment: "OCMC (On-chip RAM) Bank 0 (128KB)",
                name: "OCMC_0",
                base: 0x40300000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "OCMC_1",
            {
                comment: "OCMC (On-chip RAM) Bank 1 (128KB)",
                name: "OCMC_1",
                base: 0x40400000,
                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// The 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",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "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: 0x00040000,
            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 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "OCMC_0",
        {
            comment: "OCMC (On-chip RAM) Bank 0 (128KB)",
            name: "OCMC_0",
            base: 0x40300000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC_1",
        {
            comment: "OCMC (On-chip RAM) Bank 1 (128KB)",
            name: "OCMC_1",
            base: 0x40400000,
            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;
    // The 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: 0x00040000,
            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 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "OCMC_0",
        {
            comment: "OCMC (On-chip RAM) Bank 0 (128KB)",
            name: "OCMC_0",
            base: 0x40300000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC_1",
        {
            comment: "OCMC (On-chip RAM) Bank 1 (128KB)",
            name: "OCMC_1",
            base: 0x40400000,
            len: 0x00020000,
            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

The 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 Wed, 08 Dec 2010 20:08:47 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:47 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:47 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:47 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:48 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:48 GMT


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: 0x00040000,
                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 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x10F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "OCMC_0",
            {
                comment: "OCMC (On-chip RAM) Bank 0 (128KB)",
                name: "OCMC_0",
                base: 0x40300000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "OCMC_1",
            {
                comment: "OCMC (On-chip RAM) Bank 1 (128KB)",
                name: "OCMC_1",
                base: 0x40400000,
                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// The 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: 0x00040000,
            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 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "OCMC_0",
        {
            comment: "OCMC (On-chip RAM) Bank 0 (128KB)",
            name: "OCMC_0",
            base: 0x40300000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC_1",
        {
            comment: "OCMC (On-chip RAM) Bank 1 (128KB)",
            name: "OCMC_1",
            base: 0x40400000,
            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;
    // The 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: 0x00040000,
            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 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "OCMC_0",
        {
            comment: "OCMC (On-chip RAM) Bank 0 (128KB)",
            name: "OCMC_0",
            base: 0x40300000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC_1",
        {
            comment: "OCMC (On-chip RAM) Bank 1 (128KB)",
            name: "OCMC_1",
            base: 0x40400000,
            len: 0x00020000,
            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

The 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 Wed, 08 Dec 2010 20:08:48 GMT


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",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "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: 0x00040000,
                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 32KB L1 data memory",
                name: "L1DSRAM",
                base: 0x10F00000,
                len: 0x00008000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "OCMC_0",
            {
                comment: "OCMC (On-chip RAM) Bank 0 (128KB)",
                name: "OCMC_0",
                base: 0x40300000,
                len: 0x00020000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "OCMC_1",
            {
                comment: "OCMC (On-chip RAM) Bank 1 (128KB)",
                name: "OCMC_1",
                base: 0x40400000,
                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// The 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",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "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: 0x00040000,
            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 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "OCMC_0",
        {
            comment: "OCMC (On-chip RAM) Bank 0 (128KB)",
            name: "OCMC_0",
            base: 0x40300000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC_1",
        {
            comment: "OCMC (On-chip RAM) Bank 1 (128KB)",
            name: "OCMC_1",
            base: 0x40400000,
            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;
    // The 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: 0x00040000,
            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 32KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F00000,
            len: 0x00008000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "OCMC_0",
        {
            comment: "OCMC (On-chip RAM) Bank 0 (128KB)",
            name: "OCMC_0",
            base: 0x40300000,
            len: 0x00020000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "OCMC_1",
        {
            comment: "OCMC (On-chip RAM) Bank 1 (128KB)",
            name: "OCMC_1",
            base: 0x40400000,
            len: 0x00020000,
            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

The 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 Wed, 08 Dec 2010 20:08:48 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:48 GMT


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 Wed, 08 Dec 2010 20:08:48 GMT


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// The 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;
    // The 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

The 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 Wed, 08 Dec 2010 20:08:48 GMT


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;
requires ti.catalog.msp430.peripherals.timer;
requires ti.catalog.msp430.peripherals.adc;
requires ti.catalog.msp430.peripherals.clock;
requires ti.catalog.msp430.peripherals.communication;
requires ti.catalog.msp430.peripherals.gpio;
requires ti.catalog.msp430.peripherals.oa;
requires ti.catalog.msp430.peripherals.special_function;
requires ti.catalog.msp430.peripherals.watchdog;
requires ti.catalog.msp430.peripherals.interrupt;
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 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 Wed, 08 Dec 2010 20:08:54 GMT


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// The 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 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

The map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/msp430/IMSP430.xdc
config IPeripheral.Instance peripherals[string];
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 Wed, 08 Dec 2010 20:08:50 GMT


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 Timer_A5.Instance TA0// ;
    config Timer_A3.Instance TA1// ;
    config Timer_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// The map of peripherals available on the device[string];
    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 Timer_A5.Instance TA0;
config IMSP430F54xx.TA1 // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/IMSP430F54xx.xdc
config Timer_A3.Instance TA1;
config IMSP430F54xx.TB0 // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/IMSP430F54xx.xdc
config Timer_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

The map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/msp430/IMSP430F54xx.xdc
config IPeripheral.Instance peripherals[string];
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 Wed, 08 Dec 2010 20:08:50 GMT


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 Timer_A5.Instance TA0// ;
    config Timer_A3.Instance TA1// ;
    config Timer_A3.Instance TA2// ;
    config Timer_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// The map of peripherals available on the device[string];
    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 Timer_A5.Instance TA0;
config IMSP430F55xx.TA1 // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/IMSP430F55xx.xdc
config Timer_A3.Instance TA1;
config IMSP430F55xx.TA2 // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/IMSP430F55xx.xdc
config Timer_A3.Instance TA2;
config IMSP430F55xx.TB0 // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/IMSP430F55xx.xdc
config Timer_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

The map of peripherals available on the device

XDCspec declarations sourced in ti/catalog/msp430/IMSP430F55xx.xdc
config IPeripheral.Instance peripherals[string];
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 Wed, 08 Dec 2010 20:08:50 GMT


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 Clock2xx.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_MSP430x22xx.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// The 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 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 Clock2xx.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_MSP430x22xx.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

The 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.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 Wed, 08 Dec 2010 20:08:50 GMT


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// The map of peripherals available on the device = IPeripheral.Instance[string] undefined;
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;
    // The map of peripherals available on the device
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

The map of peripherals available on the device

XDCscript usage meta-domain
var params = new MSP430.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
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 Wed, 08 Dec 2010 20:08:50 GMT


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// = Clock2xx.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_MSP430x22xx.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// The 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.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 = Clock2xx.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_MSP430x22xx.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;
    // The 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.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 = Clock2xx.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_MSP430x22xx.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

The 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.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 Wed, 08 Dec 2010 20:08:51 GMT


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// = Clock2xx.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_MSP430x22xx.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// The 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.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 = Clock2xx.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_MSP430x22xx.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;
    // The 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.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 = Clock2xx.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_MSP430x22xx.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

The 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.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 Wed, 08 Dec 2010 20:08:51 GMT


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// = Clock2xx.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_MSP430x22xx.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// The 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.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 = Clock2xx.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_MSP430x22xx.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;
    // The 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.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 = Clock2xx.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_MSP430x22xx.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

The 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.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 Wed, 08 Dec 2010 20:08:51 GMT


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// = Timer_A5.Instance undefined;
        params.TA1// = Timer_A3.Instance undefined;
        params.TB0// = Timer_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// The map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        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 = Timer_A5.Instance undefined;
    //
    params.TA1 = Timer_A3.Instance undefined;
    //
    params.TB0 = Timer_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;
    // The map of peripherals available on the device
    params.wdtPlus = WDTPlus.Instance undefined;
    //
config MSP430F5418.TA0 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5418.Params;
...
params.TA0 = Timer_A5.Instance undefined;
config MSP430F5418.TA1 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5418.Params;
...
params.TA1 = Timer_A3.Instance undefined;
config MSP430F5418.TB0 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5418.Params;
...
params.TB0 = Timer_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

The map of peripherals available on the device

XDCscript usage meta-domain
var params = new MSP430F5418.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
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 Wed, 08 Dec 2010 20:08:52 GMT


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// = Timer_A5.Instance undefined;
        params.TA1// = Timer_A3.Instance undefined;
        params.TB0// = Timer_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// The map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        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 = Timer_A5.Instance undefined;
    //
    params.TA1 = Timer_A3.Instance undefined;
    //
    params.TB0 = Timer_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;
    // The map of peripherals available on the device
    params.wdtPlus = WDTPlus.Instance undefined;
    //
config MSP430F5419.TA0 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5419.Params;
...
params.TA0 = Timer_A5.Instance undefined;
config MSP430F5419.TA1 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5419.Params;
...
params.TA1 = Timer_A3.Instance undefined;
config MSP430F5419.TB0 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5419.Params;
...
params.TB0 = Timer_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

The map of peripherals available on the device

XDCscript usage meta-domain
var params = new MSP430F5419.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
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 Wed, 08 Dec 2010 20:08:52 GMT


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// = Timer_A5.Instance undefined;
        params.TA1// = Timer_A3.Instance undefined;
        params.TB0// = Timer_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// The map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        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 = Timer_A5.Instance undefined;
    //
    params.TA1 = Timer_A3.Instance undefined;
    //
    params.TB0 = Timer_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;
    // The map of peripherals available on the device
    params.wdtPlus = WDTPlus.Instance undefined;
    //
config MSP430F5435.TA0 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5435.Params;
...
params.TA0 = Timer_A5.Instance undefined;
config MSP430F5435.TA1 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5435.Params;
...
params.TA1 = Timer_A3.Instance undefined;
config MSP430F5435.TB0 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5435.Params;
...
params.TB0 = Timer_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

The map of peripherals available on the device

XDCscript usage meta-domain
var params = new MSP430F5435.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
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 Wed, 08 Dec 2010 20:08:52 GMT


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// = Timer_A5.Instance undefined;
        params.TA1// = Timer_A3.Instance undefined;
        params.TB0// = Timer_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// The map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        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 = Timer_A5.Instance undefined;
    //
    params.TA1 = Timer_A3.Instance undefined;
    //
    params.TB0 = Timer_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;
    // The map of peripherals available on the device
    params.wdtPlus = WDTPlus.Instance undefined;
    //
config MSP430F5436.TA0 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5436.Params;
...
params.TA0 = Timer_A5.Instance undefined;
config MSP430F5436.TA1 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5436.Params;
...
params.TA1 = Timer_A3.Instance undefined;
config MSP430F5436.TB0 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5436.Params;
...
params.TB0 = Timer_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

The map of peripherals available on the device

XDCscript usage meta-domain
var params = new MSP430F5436.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
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 Wed, 08 Dec 2010 20:08:53 GMT


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// = Timer_A5.Instance undefined;
        params.TA1// = Timer_A3.Instance undefined;
        params.TB0// = Timer_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// The map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        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 = Timer_A5.Instance undefined;
    //
    params.TA1 = Timer_A3.Instance undefined;
    //
    params.TB0 = Timer_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;
    // The map of peripherals available on the device
    params.wdtPlus = WDTPlus.Instance undefined;
    //
config MSP430F5437.TA0 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5437.Params;
...
params.TA0 = Timer_A5.Instance undefined;
config MSP430F5437.TA1 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5437.Params;
...
params.TA1 = Timer_A3.Instance undefined;
config MSP430F5437.TB0 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5437.Params;
...
params.TB0 = Timer_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

The map of peripherals available on the device

XDCscript usage meta-domain
var params = new MSP430F5437.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
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 Wed, 08 Dec 2010 20:08:53 GMT


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// = Timer_A5.Instance undefined;
        params.TA1// = Timer_A3.Instance undefined;
        params.TB0// = Timer_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// The map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        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 = Timer_A5.Instance undefined;
    //
    params.TA1 = Timer_A3.Instance undefined;
    //
    params.TB0 = Timer_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;
    // The map of peripherals available on the device
    params.wdtPlus = WDTPlus.Instance undefined;
    //
config MSP430F5438.TA0 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5438.Params;
...
params.TA0 = Timer_A5.Instance undefined;
config MSP430F5438.TA1 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5438.Params;
...
params.TA1 = Timer_A3.Instance undefined;
config MSP430F5438.TB0 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5438.Params;
...
params.TB0 = Timer_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

The map of peripherals available on the device

XDCscript usage meta-domain
var params = new MSP430F5438.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
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 Wed, 08 Dec 2010 20:08:54 GMT


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// = Timer_A5.Instance undefined;
        params.TA1// = Timer_A3.Instance undefined;
        params.TA2// = Timer_A3.Instance undefined;
        params.TB0// = Timer_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// The map of peripherals available on the device = IPeripheral.Instance[string] undefined;
        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 = Timer_A5.Instance undefined;
    //
    params.TA1 = Timer_A3.Instance undefined;
    //
    params.TA2 = Timer_A3.Instance undefined;
    //
    params.TB0 = Timer_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;
    // The map of peripherals available on the device
    params.wdtPlus = WDTPlus.Instance undefined;
    //
config MSP430F5529.TA0 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5529.Params;
...
params.TA0 = Timer_A5.Instance undefined;
config MSP430F5529.TA1 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5529.Params;
...
params.TA1 = Timer_A3.Instance undefined;
config MSP430F5529.TA2 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5529.Params;
...
params.TA2 = Timer_A3.Instance undefined;
config MSP430F5529.TB0 // instance
index URL
XDCscript usage meta-domain
var params = new MSP430F5529.Params;
...
params.TB0 = Timer_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

The map of peripherals available on the device

XDCscript usage meta-domain
var params = new MSP430F5529.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
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 Wed, 08 Dec 2010 20:08:54 GMT


package ti.catalog.msp430.init
index URL
XDCspec declarations sourced in ti/catalog/msp430/init/package.xdc
requires xdc.runtime;
package ti.catalog.msp430.init [1, 0, 0] {
    module Boot;
}
generated on Wed, 08 Dec 2010 20:09:06 GMT


module ti.catalog.msp430.init.Boot

metaonly module ti.catalog.msp430.init.Boot
index URL
  • XDCscript usage
  • Individual elements
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
    const Boot.bootCodeSection// Code section that Boot module code is in = String ".bootCodeSection";
     Boot.configureDCO// Configure DCO flag; default is false = Bool false;
     Boot.disableWatchdog// Watchdog disable flag; default is true = Bool true;
     Boot.rovViewInfo// = ViewInfo.Instance ViewInfo.create;
     Boot.watchdogAddress// Watchdog control register address; default for MSP430F54xx and MSP430F552x = UInt 0x15c;
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.bootCodeSection // module-wide
index URL

Code section that Boot module code is in

XDCscript usage meta-domain
const Boot.bootCodeSection = String ".bootCodeSection";
DETAILS
To place this section into a memory segment yourself, add the following to your configuration file:
  Program.sectMap[Boot.bootCodeSection] = new Program.SectionSpec();
  Program.sectMap[Boot.bootCodeSection].loadSegment = "yourBootCodeMemorySegment";
or to place the code at a specific address:
  Program.sectMap[Boot.bootCodeSection] = new Program.SectionSpec();
  Program.sectMap[Boot.bootCodeSection].loadAdress = yourBootCodeAddress;
config Boot.configureDCO // module-wide
index URL

Configure DCO flag; default is false

XDCscript usage meta-domain
Boot.configureDCO = Bool false;
DETAILS
Set to true to initialize DCO at boot.
config Boot.disableWatchdog // module-wide
index URL

Watchdog disable flag; default is true

XDCscript usage meta-domain
Boot.disableWatchdog = Bool true;
DETAILS
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; default for MSP430F54xx and MSP430F552x

XDCscript usage meta-domain
Boot.watchdogAddress = UInt 0x15c;
DETAILS
Change for other devices.
generated on Wed, 08 Dec 2010 20:09:06 GMT


package ti.catalog.msp430.peripherals.adc
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/adc/package.xdc
package ti.catalog.msp430.peripherals.adc {
    interface IADC;
    // MSP430 Analog to Digital Converter Interface
    module ADC10;
    // MSP430 10-bit Analog to Digital Converter
}
generated on Wed, 08 Dec 2010 20:08:55 GMT


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 A3 OUT1;
        const ADC10.SHS_2// Timer A3 OUT0;
        const ADC10.SHS_3// Timer A3 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 = 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 ...
module-wide functions
     ADC10.addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds) returns Void
     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.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, ITimer_A.Instance timerA, 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 A3 OUT1
    const ADC10.SHS_2;
    // Timer A3 OUT0
    const ADC10.SHS_3;
    // Timer A3 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
    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
ADC10.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCscript usage meta-domain
ADC10.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.
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.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.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, ITimer_A.Instance timerA, params);
// Create an instance-object
generated on Wed, 08 Dec 2010 20:08:55 GMT


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;
    };
module-wide functions
    Void addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds);
     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, ITimer_A.Instance timerA);
}
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
IADC.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/adc/IADC.xdc
Void addPeripheralsMap(ICpuDataSheet.Instance cds);
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.
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, ITimer_A.Instance timerA);
// Create an instance-object
generated on Wed, 08 Dec 2010 20:08:55 GMT


package ti.catalog.msp430.peripherals.clock
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/clock/package.xdc
requires ti.catalog.msp430.peripherals.special_function;
package ti.catalog.msp430.peripherals.clock {
    interface IClock;
    // MSP430 Master Clock
    module Clock2xx;
    // MSP430 Master Clock
}
generated on Wed, 08 Dec 2010 20:08:55 GMT


module ti.catalog.msp430.peripherals.clock.Clock2xx

metaonly module ti.catalog.msp430.peripherals.clock.Clock2xx
index URL

MSP430 Master Clock

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/clock/Clock2xx.xdc
var Clock2xx = xdc.useModule('ti.catalog.msp430.peripherals.clock.Clock2xx');
module-wide constants & types
    values of type Clock2xx.DCO0_t// DCO0 Bit
        const Clock2xx.DCO0_OFF// Disable DCO0 bit;
        const Clock2xx.DCO0// Enable DCO0 bit;
    values of type Clock2xx.DCO1_t// DCO1 Bit
        const Clock2xx.DCO1_OFF// Disable DCO1 bit;
        const Clock2xx.DCO1// Enable DCO1 bit;
    values of type Clock2xx.DCO2_t// DCO2 Bit
        const Clock2xx.DCO2_OFF// Disable DCO2 bit;
        const Clock2xx.DCO2// Enable DCO2 bit;
    values of type Clock2xx.DCOR_t//
        const Clock2xx.DCOR_OFF// DCO uses internal resistor;
        const Clock2xx.DCOR// DCO uses external resistor;
    values of type Clock2xx.DIVA_t// ACLK Divider values
        const Clock2xx.DIVA_0// Divide by 1;
        const Clock2xx.DIVA_1// Divide by 2;
        const Clock2xx.DIVA_2// Divide by 4;
        const Clock2xx.DIVA_3// Divide by 8;
    values of type Clock2xx.DIVM_t// MCLK Divider values
        const Clock2xx.DIVM_0// Divide by 1;
        const Clock2xx.DIVM_1// Divide by 2;
        const Clock2xx.DIVM_2// Divide by 4;
        const Clock2xx.DIVM_3// Divide by 8;
    values of type Clock2xx.DIVS_t// SMCLK Divider values
        const Clock2xx.DIVS_0// Divide by 1;
        const Clock2xx.DIVS_1// Divide by 2;
        const Clock2xx.DIVS_2// Divide by 4;
        const Clock2xx.DIVS_3// Divide by 8;
    values of type Clock2xx.LFXT1OF_t//
        const Clock2xx.LFXT1OF_OFF// No fault condition present;
        const Clock2xx.LFXT1OF// LFXT1 fault condition present;
    values of type Clock2xx.LFXT1S_t//
        const Clock2xx.LFXT1S_0// XTS = 0, 32768kHz Crystal ; XTS = 1, 0.4 - 1-MHz crystal or resonator;
        const Clock2xx.LFXT1S_1// XTS = 0, Reserved ; XTS = 1, 1 - 3-MHz crystal or resonator;
        const Clock2xx.LFXT1S_2// XTS = 0, VLOCLK ; XTS = 1, 3 - 16-MHz crystal or resonator;
        const Clock2xx.LFXT1S_3// XTS = 0, Digital External ; XTS = 1, 0.4 - 16-MHz Digital External;
    values of type Clock2xx.MOD0_t// MOD0 Bit
        const Clock2xx.MOD0_OFF// Disable MOD0 bit;
        const Clock2xx.MOD0// Enable MOD0 bit;
    values of type Clock2xx.MOD1_t// MOD1 Bit
        const Clock2xx.MOD1_OFF// Disable MOD1 bit;
        const Clock2xx.MOD1// Enable MOD1 bit;
    values of type Clock2xx.MOD2_t// MOD2 Bit
        const Clock2xx.MOD2_OFF// Disable MOD2 bit;
        const Clock2xx.MOD2// Enable MOD2 bit;
    values of type Clock2xx.MOD3_t// MOD3 Bit
        const Clock2xx.MOD3_OFF// Disable MOD3 bit;
        const Clock2xx.MOD3// Enable MOD3 bit;
    values of type Clock2xx.MOD4_t// MOD4 Bit
        const Clock2xx.MOD4_OFF// Disable MOD4 bit;
        const Clock2xx.MOD4// Enable MOD4 bit;
    values of type Clock2xx.PreCalibratedValues_t//
        const Clock2xx.PreCal_0// 1 MHz;
        const Clock2xx.PreCal_1// 8 MHz;
        const Clock2xx.PreCal_2// 12 MHz;
        const Clock2xx.PreCal_3// 16 MHz;
        const Clock2xx.PreCal_4// Custom;
    values of type Clock2xx.RSEL0_t//
        const Clock2xx.RSEL0_OFF// Disable RSEL0 bit;
        const Clock2xx.RSEL0// Enable RSEL0 bit;
    values of type Clock2xx.RSEL1_t//
        const Clock2xx.RSEL1_OFF// Disable RSEL1 bit;
        const Clock2xx.RSEL1// Enable RSEL1 bit;
    values of type Clock2xx.RSEL2_t//
        const Clock2xx.RSEL2_OFF// Disable RSEL2 bit;
        const Clock2xx.RSEL2// Enable RSEL2 bit;
    values of type Clock2xx.RSEL3_t//
        const Clock2xx.RSEL3_OFF// Disable RSEL3 bit;
        const Clock2xx.RSEL3// Enable RSEL3 bit;
    values of type Clock2xx.SELM_t// MCLK Source Select
        const Clock2xx.SELM_0// DCOCLK;
        const Clock2xx.SELM_2// XT2CLK/LFXTCLK;
        const Clock2xx.SELM_3// LFXTCLK;
    values of type Clock2xx.SELS_t//
        const Clock2xx.SELS_OFF// DCOCLK;
        const Clock2xx.SELS// XT2CLK;
    values of type Clock2xx.XCAP_t//
        const Clock2xx.XCAP_0// ~1 pF;
        const Clock2xx.XCAP_1// ~6 pF;
        const Clock2xx.XCAP_2// ~10 pF;
        const Clock2xx.XCAP_3// ~12.5 pF;
    values of type Clock2xx.XT2OFF_t//
        const Clock2xx.XT2OFF_OFF// Enable XT2CLK;
        const Clock2xx.XT2OFF// Disable XT2CLK;
    values of type Clock2xx.XT2OF_t//
        const Clock2xx.XT2OF_OFF// No fault condition present;
        const Clock2xx.XT2OF// XT2 fault condition present;
    values of type Clock2xx.XT2S_t// XT2 frequency range select
        const Clock2xx.XT2S_0// 0.4 - 1 MHz;
        const Clock2xx.XT2S_1// 1 - 3 MHz;
        const Clock2xx.XT2S_2// 3 - 16 MHz;
        const Clock2xx.XT2S_3// Digital input signal;
    values of type Clock2xx.XTS_t//
        const Clock2xx.XTS_OFF// Low Frequency;
        const Clock2xx.XTS// High Frequency;
    var obj = new Clock2xx.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 = Clock2xx.XT2OFF_t ...
        obj.XTS// LFXT1 mode select. 0 Low frequency mode 1 High frequency mode = Clock2xx.XTS_t ...
        obj.DIVA// Divider for ACLK 00 /1 01 /2 10 /4 11 /8 = Clock2xx.DIVA_t ...
        obj.RSEL0// Range select bit 0 = Clock2xx.RSEL0_t ...
        obj.RSEL1// Range select bit 1 = Clock2xx.RSEL1_t ...
        obj.RSEL2// Range select bit 2 = Clock2xx.RSEL2_t ...
        obj.RSEL3// Range select bit 3 = Clock2xx.RSEL3_t ...
    var obj = new Clock2xx.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 = Clock2xx.SELM_t ...
        obj.DIVM// Divider for MCLK 00 /1 01 /2 10 /4 11 /8 = Clock2xx.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 = Clock2xx.SELS_t ...
        obj.DIVS// Divider for SMCLK 00 /1 01 /2 10 /4 11 /8 = Clock2xx.DIVS_t ...
        obj.DCOR// DCO resistor select 0 Internal resistor 1 External resistor = Clock2xx.DCOR_t ...
    var obj = new Clock2xx.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 = Clock2xx.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 = Clock2xx.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 = Clock2xx.XCAP_t ...
        obj.XT2OF// XT2 oscillator fault 0 No fault condition present 1 Fault condition present = Clock2xx.XT2OF_t ...
        obj.LFXT1OF// LFXT1 oscillator fault 0 No fault condition present 1 Fault condition present = Clock2xx.LFXT1OF_t ...
    var obj = new Clock2xx.DCOCTL_t// ;
        obj.MOD0// Modulation Bit 0 = Clock2xx.MOD0_t ...
        obj.MOD1// Modulation Bit 1 = Clock2xx.MOD1_t ...
        obj.MOD2// Modulation Bit 2 = Clock2xx.MOD2_t ...
        obj.MOD3// Modulation Bit 3 = Clock2xx.MOD3_t ...
        obj.MOD4// Modulation Bit 4 = Clock2xx.MOD4_t ...
        obj.DCO0// DCO Select Bit 0 = Clock2xx.DCO0_t ...
        obj.DCO1// DCO Select Bit 1 = Clock2xx.DCO1_t ...
        obj.DCO2// DCO Select Bit 2 = Clock2xx.DCO2_t ...
    var obj = new Clock2xx.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
module-wide functions
     Clock2xx.addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds) returns Void
     Clock2xx.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     Clock2xx.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new Clock2xx.Params// Instance config-params object;
        params.ACLKHz// Stores ACLK as frequency in float = Float undefined;
        params.BCSCTL1// Basic Clock System Control 1 = Clock2xx.BCSCTL1_t {
        XT2OFF: Clock2xx.XT2OFF,
        XTS: Clock2xx.XTS_OFF,
        DIVA: Clock2xx.DIVA_0,
        RSEL0: Clock2xx.RSEL0,
        RSEL1: Clock2xx.RSEL1,
        RSEL2: Clock2xx.RSEL2,
        RSEL3: Clock2xx.RSEL3_OFF
    };
        params.BCSCTL2// Basic Clock System Control 2 = Clock2xx.BCSCTL2_t {
        SELM: Clock2xx.SELM_0,
        DIVM: Clock2xx.DIVM_0,
        SELS: Clock2xx.SELS_OFF,
        DIVS: Clock2xx.DIVS_0,
        DCOR: Clock2xx.DCOR_OFF
    };
        params.BCSCTL3// Basic Clock System Control 3 = Clock2xx.BCSCTL3_t {
        XT2S: Clock2xx.XT2S_0,
        LFXT1S: Clock2xx.LFXT1S_0,
        XCAP: Clock2xx.XCAP_1
    };
        params.DCOCLKHz// Stores the DCO clock frequency in float = Float 1000000;
        params.DCOCTL// DCO Clock Frequency Control = Clock2xx.DCOCTL_t {
        MOD0: Clock2xx.MOD0_OFF,
        MOD1: Clock2xx.MOD1_OFF,
        MOD2: Clock2xx.MOD2_OFF,
        MOD3: Clock2xx.MOD3_OFF,
        MOD4: Clock2xx.MOD4_OFF,
        DCO0: Clock2xx.DCO0,
        DCO1: Clock2xx.DCO1,
        DCO2: Clock2xx.DCO2_OFF
    };
        params.LFXT1CLKHz// = Float 0;
        params.MCLKHz// Stores MCLK as frequency in float = Float undefined;
        params.SMCLKHz// Stores SMCLK as frequency in float = 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.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = Clock2xx.ForceSetDefaultRegister_t[] [
        {
            register: "DCOCTL",
            regForceSet: false
        },
        {
            register: "BCSCTL1",
            regForceSet: false
        },
        {
            register: "BCSCTL2",
            regForceSet: false
        },
        {
            register: "BCSCTL3",
            regForceSet: false
        }
    ];
        params.hasXT2// Set whether XT2 is available on the device = Bool 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.preCalibratedValues// Basic Clock System 2xx pre-calibrated system frequency = Clock2xx.PreCalibratedValues_t Clock2xx.PreCal_0;
per-instance creation
    var inst = Clock2xx.create// Create an instance-object(IE1.Instance interruptEnableRegister1, params);
per-instance functions
     inst.computeDCOCLKHz// Initialize to the nearest available DCO clock frequency(Float DCOCLKHz) returns Void
enum Clock2xx.DCO0_t
index URL

DCO0 Bit

XDCscript usage meta-domain
values of type Clock2xx.DCO0_t
    const Clock2xx.DCO0_OFF;
    // Disable DCO0 bit
    const Clock2xx.DCO0;
    // Enable DCO0 bit
enum Clock2xx.DCO1_t
index URL

DCO1 Bit

XDCscript usage meta-domain
values of type Clock2xx.DCO1_t
    const Clock2xx.DCO1_OFF;
    // Disable DCO1 bit
    const Clock2xx.DCO1;
    // Enable DCO1 bit
enum Clock2xx.DCO2_t
index URL

DCO2 Bit

XDCscript usage meta-domain
values of type Clock2xx.DCO2_t
    const Clock2xx.DCO2_OFF;
    // Disable DCO2 bit
    const Clock2xx.DCO2;
    // Enable DCO2 bit
enum Clock2xx.DCOR_t
index URL
XDCscript usage meta-domain
values of type Clock2xx.DCOR_t
    const Clock2xx.DCOR_OFF;
    // DCO uses internal resistor
    const Clock2xx.DCOR;
    // DCO uses external resistor
enum Clock2xx.DIVA_t
index URL

ACLK Divider values

XDCscript usage meta-domain
values of type Clock2xx.DIVA_t
    const Clock2xx.DIVA_0;
    // Divide by 1
    const Clock2xx.DIVA_1;
    // Divide by 2
    const Clock2xx.DIVA_2;
    // Divide by 4
    const Clock2xx.DIVA_3;
    // Divide by 8
enum Clock2xx.DIVM_t
index URL

MCLK Divider values

XDCscript usage meta-domain
values of type Clock2xx.DIVM_t
    const Clock2xx.DIVM_0;
    // Divide by 1
    const Clock2xx.DIVM_1;
    // Divide by 2
    const Clock2xx.DIVM_2;
    // Divide by 4
    const Clock2xx.DIVM_3;
    // Divide by 8
enum Clock2xx.DIVS_t
index URL

SMCLK Divider values

XDCscript usage meta-domain
values of type Clock2xx.DIVS_t
    const Clock2xx.DIVS_0;
    // Divide by 1
    const Clock2xx.DIVS_1;
    // Divide by 2
    const Clock2xx.DIVS_2;
    // Divide by 4
    const Clock2xx.DIVS_3;
    // Divide by 8
enum Clock2xx.LFXT1OF_t
index URL
XDCscript usage meta-domain
values of type Clock2xx.LFXT1OF_t
    const Clock2xx.LFXT1OF_OFF;
    // No fault condition present
    const Clock2xx.LFXT1OF;
    // LFXT1 fault condition present
enum Clock2xx.LFXT1S_t
index URL
XDCscript usage meta-domain
values of type Clock2xx.LFXT1S_t
    const Clock2xx.LFXT1S_0;
    // XTS = 0, 32768kHz Crystal ; XTS = 1, 0.4 - 1-MHz crystal or resonator
    const Clock2xx.LFXT1S_1;
    // XTS = 0, Reserved ; XTS = 1, 1 - 3-MHz crystal or resonator
    const Clock2xx.LFXT1S_2;
    // XTS = 0, VLOCLK ; XTS = 1, 3 - 16-MHz crystal or resonator
    const Clock2xx.LFXT1S_3;
    // XTS = 0, Digital External ; XTS = 1, 0.4 - 16-MHz Digital External
enum Clock2xx.MOD0_t
index URL

MOD0 Bit

XDCscript usage meta-domain
values of type Clock2xx.MOD0_t
    const Clock2xx.MOD0_OFF;
    // Disable MOD0 bit
    const Clock2xx.MOD0;
    // Enable MOD0 bit
enum Clock2xx.MOD1_t
index URL

MOD1 Bit

XDCscript usage meta-domain
values of type Clock2xx.MOD1_t
    const Clock2xx.MOD1_OFF;
    // Disable MOD1 bit
    const Clock2xx.MOD1;
    // Enable MOD1 bit
enum Clock2xx.MOD2_t
index URL

MOD2 Bit

XDCscript usage meta-domain
values of type Clock2xx.MOD2_t
    const Clock2xx.MOD2_OFF;
    // Disable MOD2 bit
    const Clock2xx.MOD2;
    // Enable MOD2 bit
enum Clock2xx.MOD3_t
index URL

MOD3 Bit

XDCscript usage meta-domain
values of type Clock2xx.MOD3_t
    const Clock2xx.MOD3_OFF;
    // Disable MOD3 bit
    const Clock2xx.MOD3;
    // Enable MOD3 bit
enum Clock2xx.MOD4_t
index URL

MOD4 Bit

XDCscript usage meta-domain
values of type Clock2xx.MOD4_t
    const Clock2xx.MOD4_OFF;
    // Disable MOD4 bit
    const Clock2xx.MOD4;
    // Enable MOD4 bit
enum Clock2xx.PreCalibratedValues_t
index URL
XDCscript usage meta-domain
values of type Clock2xx.PreCalibratedValues_t
    const Clock2xx.PreCal_0;
    // 1 MHz
    const Clock2xx.PreCal_1;
    // 8 MHz
    const Clock2xx.PreCal_2;
    // 12 MHz
    const Clock2xx.PreCal_3;
    // 16 MHz
    const Clock2xx.PreCal_4;
    // Custom
enum Clock2xx.RSEL0_t
index URL
XDCscript usage meta-domain
values of type Clock2xx.RSEL0_t
    const Clock2xx.RSEL0_OFF;
    // Disable RSEL0 bit
    const Clock2xx.RSEL0;
    // Enable RSEL0 bit
enum Clock2xx.RSEL1_t
index URL
XDCscript usage meta-domain
values of type Clock2xx.RSEL1_t
    const Clock2xx.RSEL1_OFF;
    // Disable RSEL1 bit
    const Clock2xx.RSEL1;
    // Enable RSEL1 bit
enum Clock2xx.RSEL2_t
index URL
XDCscript usage meta-domain
values of type Clock2xx.RSEL2_t
    const Clock2xx.RSEL2_OFF;
    // Disable RSEL2 bit
    const Clock2xx.RSEL2;
    // Enable RSEL2 bit
enum Clock2xx.RSEL3_t
index URL
XDCscript usage meta-domain
values of type Clock2xx.RSEL3_t
    const Clock2xx.RSEL3_OFF;
    // Disable RSEL3 bit
    const Clock2xx.RSEL3;
    // Enable RSEL3 bit
enum Clock2xx.SELM_t
index URL

MCLK Source Select

XDCscript usage meta-domain
values of type Clock2xx.SELM_t
    const Clock2xx.SELM_0;
    // DCOCLK
    const Clock2xx.SELM_2;
    // XT2CLK/LFXTCLK
    const Clock2xx.SELM_3;
    // LFXTCLK
enum Clock2xx.SELS_t
index URL
XDCscript usage meta-domain
values of type Clock2xx.SELS_t
    const Clock2xx.SELS_OFF;
    // DCOCLK
    const Clock2xx.SELS;
    // XT2CLK
enum Clock2xx.XCAP_t
index URL
XDCscript usage meta-domain
values of type Clock2xx.XCAP_t
    const Clock2xx.XCAP_0;
    // ~1 pF
    const Clock2xx.XCAP_1;
    // ~6 pF
    const Clock2xx.XCAP_2;
    // ~10 pF
    const Clock2xx.XCAP_3;
    // ~12.5 pF
enum Clock2xx.XT2OFF_t
index URL
XDCscript usage meta-domain
values of type Clock2xx.XT2OFF_t
    const Clock2xx.XT2OFF_OFF;
    // Enable XT2CLK
    const Clock2xx.XT2OFF;
    // Disable XT2CLK
enum Clock2xx.XT2OF_t
index URL
XDCscript usage meta-domain
values of type Clock2xx.XT2OF_t
    const Clock2xx.XT2OF_OFF;
    // No fault condition present
    const Clock2xx.XT2OF;
    // XT2 fault condition present
enum Clock2xx.XT2S_t
index URL

XT2 frequency range select

XDCscript usage meta-domain
values of type Clock2xx.XT2S_t
    const Clock2xx.XT2S_0;
    // 0.4 - 1 MHz
    const Clock2xx.XT2S_1;
    // 1 - 3 MHz
    const Clock2xx.XT2S_2;
    // 3 - 16 MHz
    const Clock2xx.XT2S_3;
    // Digital input signal
enum Clock2xx.XTS_t
index URL
XDCscript usage meta-domain
values of type Clock2xx.XTS_t
    const Clock2xx.XTS_OFF;
    // Low Frequency
    const Clock2xx.XTS;
    // High Frequency
struct Clock2xx.BCSCTL1_t
index URL

BCS Control Register 1

XDCscript usage meta-domain
var obj = new Clock2xx.BCSCTL1_t;
    obj.XT2OFF = Clock2xx.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 = Clock2xx.XTS_t ...
    // LFXT1 mode select. 0 Low frequency mode 1 High frequency mode
    obj.DIVA = Clock2xx.DIVA_t ...
    // Divider for ACLK 00 /1 01 /2 10 /4 11 /8
    obj.RSEL0 = Clock2xx.RSEL0_t ...
    // Range select bit 0
    obj.RSEL1 = Clock2xx.RSEL1_t ...
    // Range select bit 1
    obj.RSEL2 = Clock2xx.RSEL2_t ...
    // Range select bit 2
    obj.RSEL3 = Clock2xx.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 Clock2xx.BCSCTL2_t
index URL

BCS Control Register 2

XDCscript usage meta-domain
var obj = new Clock2xx.BCSCTL2_t;
    obj.SELM = Clock2xx.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 = Clock2xx.DIVM_t ...
    // Divider for MCLK 00 /1 01 /2 10 /4 11 /8
    obj.SELS = Clock2xx.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 = Clock2xx.DIVS_t ...
    // Divider for SMCLK 00 /1 01 /2 10 /4 11 /8
    obj.DCOR = Clock2xx.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 Clock2xx.BCSCTL3_t
index URL

BCS Control register 3

XDCscript usage meta-domain
var obj = new Clock2xx.BCSCTL3_t;
    obj.XT2S = Clock2xx.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 = Clock2xx.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 = Clock2xx.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 = Clock2xx.XT2OF_t ...
    // XT2 oscillator fault 0 No fault condition present 1 Fault condition present
    obj.LFXT1OF = Clock2xx.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 Clock2xx.DCOCTL_t
index URL
XDCscript usage meta-domain
var obj = new Clock2xx.DCOCTL_t;
    obj.MOD0 = Clock2xx.MOD0_t ...
    // Modulation Bit 0
    obj.MOD1 = Clock2xx.MOD1_t ...
    // Modulation Bit 1
    obj.MOD2 = Clock2xx.MOD2_t ...
    // Modulation Bit 2
    obj.MOD3 = Clock2xx.MOD3_t ...
    // Modulation Bit 3
    obj.MOD4 = Clock2xx.MOD4_t ...
    // Modulation Bit 4
    obj.DCO0 = Clock2xx.DCO0_t ...
    // DCO Select Bit 0
    obj.DCO1 = Clock2xx.DCO1_t ...
    // DCO Select Bit 1
    obj.DCO2 = Clock2xx.DCO2_t ...
    // DCO Select Bit 2
struct Clock2xx.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new Clock2xx.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
Clock2xx.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCscript usage meta-domain
Clock2xx.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.
Clock2xx.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
Clock2xx.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
Clock2xx.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
Clock2xx.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new Clock2xx.Params;
// Instance config-params object
    params.ACLKHz = Float undefined;
    // Stores ACLK as frequency in float
    params.BCSCTL1 = Clock2xx.BCSCTL1_t {
    // Basic Clock System Control 1
    XT2OFF: Clock2xx.XT2OFF,
    XTS: Clock2xx.XTS_OFF,
    DIVA: Clock2xx.DIVA_0,
    RSEL0: Clock2xx.RSEL0,
    RSEL1: Clock2xx.RSEL1,
    RSEL2: Clock2xx.RSEL2,
    RSEL3: Clock2xx.RSEL3_OFF
};
    params.BCSCTL2 = Clock2xx.BCSCTL2_t {
    // Basic Clock System Control 2
    SELM: Clock2xx.SELM_0,
    DIVM: Clock2xx.DIVM_0,
    SELS: Clock2xx.SELS_OFF,
    DIVS: Clock2xx.DIVS_0,
    DCOR: Clock2xx.DCOR_OFF
};
    params.BCSCTL3 = Clock2xx.BCSCTL3_t {
    // Basic Clock System Control 3
    XT2S: Clock2xx.XT2S_0,
    LFXT1S: Clock2xx.LFXT1S_0,
    XCAP: Clock2xx.XCAP_1
};
    params.DCOCLKHz = Float 1000000;
    // Stores the DCO clock frequency in float
    params.DCOCTL = Clock2xx.DCOCTL_t {
    // DCO Clock Frequency Control
    MOD0: Clock2xx.MOD0_OFF,
    MOD1: Clock2xx.MOD1_OFF,
    MOD2: Clock2xx.MOD2_OFF,
    MOD3: Clock2xx.MOD3_OFF,
    MOD4: Clock2xx.MOD4_OFF,
    DCO0: Clock2xx.DCO0,
    DCO1: Clock2xx.DCO1,
    DCO2: Clock2xx.DCO2_OFF
};
    params.LFXT1CLKHz = Float 0;
    //
    params.MCLKHz = Float undefined;
    // Stores MCLK as frequency in float
    params.SMCLKHz = Float undefined;
    // Stores SMCLK as frequency in float
    params.VLOCLKHz = Float 12000;
    //
    params.WATCHCRYSTALCLKHz = Float 32768;
    //
    params.XT2CLKHz = Float 0;
    //
    params.baseAddr = UInt undefined;
    // Address of the peripheral's control register
    params.forceSetDefaultRegister = Clock2xx.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.hasXT2 = Bool false;
    // Set whether XT2 is available on the device
    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 = Clock2xx.PreCalibratedValues_t Clock2xx.PreCal_0;
    // Basic Clock System 2xx pre-calibrated system frequency
config Clock2xx.ACLKHz // instance
index URL

Stores ACLK as frequency in float

XDCscript usage meta-domain
var params = new Clock2xx.Params;
...
const params.ACLKHz = Float computed value;
config Clock2xx.BCSCTL1 // instance
index URL

Basic Clock System Control 1

XDCscript usage meta-domain
var params = new Clock2xx.Params;
...
params.BCSCTL1 = Clock2xx.BCSCTL1_t {
    XT2OFF: Clock2xx.XT2OFF,
    XTS: Clock2xx.XTS_OFF,
    DIVA: Clock2xx.DIVA_0,
    RSEL0: Clock2xx.RSEL0,
    RSEL1: Clock2xx.RSEL1,
    RSEL2: Clock2xx.RSEL2,
    RSEL3: Clock2xx.RSEL3_OFF
};
config Clock2xx.BCSCTL2 // instance
index URL

Basic Clock System Control 2

XDCscript usage meta-domain
var params = new Clock2xx.Params;
...
params.BCSCTL2 = Clock2xx.BCSCTL2_t {
    SELM: Clock2xx.SELM_0,
    DIVM: Clock2xx.DIVM_0,
    SELS: Clock2xx.SELS_OFF,
    DIVS: Clock2xx.DIVS_0,
    DCOR: Clock2xx.DCOR_OFF
};
config Clock2xx.BCSCTL3 // instance
index URL

Basic Clock System Control 3

XDCscript usage meta-domain
var params = new Clock2xx.Params;
...
params.BCSCTL3 = Clock2xx.BCSCTL3_t {
    XT2S: Clock2xx.XT2S_0,
    LFXT1S: Clock2xx.LFXT1S_0,
    XCAP: Clock2xx.XCAP_1
};
config Clock2xx.DCOCLKHz // instance
index URL

Stores the DCO clock frequency in float

XDCscript usage meta-domain
var params = new Clock2xx.Params;
...
const params.DCOCLKHz = Float 1000000;
config Clock2xx.DCOCTL // instance
index URL

DCO Clock Frequency Control

XDCscript usage meta-domain
var params = new Clock2xx.Params;
...
params.DCOCTL = Clock2xx.DCOCTL_t {
    MOD0: Clock2xx.MOD0_OFF,
    MOD1: Clock2xx.MOD1_OFF,
    MOD2: Clock2xx.MOD2_OFF,
    MOD3: Clock2xx.MOD3_OFF,
    MOD4: Clock2xx.MOD4_OFF,
    DCO0: Clock2xx.DCO0,
    DCO1: Clock2xx.DCO1,
    DCO2: Clock2xx.DCO2_OFF
};
config Clock2xx.LFXT1CLKHz // instance
index URL
XDCscript usage meta-domain
var params = new Clock2xx.Params;
...
params.LFXT1CLKHz = Float 0;
config Clock2xx.MCLKHz // instance
index URL

Stores MCLK as frequency in float

XDCscript usage meta-domain
var params = new Clock2xx.Params;
...
const params.MCLKHz = Float computed value;
config Clock2xx.SMCLKHz // instance
index URL

Stores SMCLK as frequency in float

XDCscript usage meta-domain
var params = new Clock2xx.Params;
...
const params.SMCLKHz = Float computed value;
config Clock2xx.VLOCLKHz // instance
index URL
XDCscript usage meta-domain
var params = new Clock2xx.Params;
...
params.VLOCLKHz = Float 12000;
config Clock2xx.WATCHCRYSTALCLKHz // instance
index URL
XDCscript usage meta-domain
var params = new Clock2xx.Params;
...
params.WATCHCRYSTALCLKHz = Float 32768;
config Clock2xx.XT2CLKHz // instance
index URL
XDCscript usage meta-domain
var params = new Clock2xx.Params;
...
params.XT2CLKHz = Float 0;
config Clock2xx.baseAddr // instance
index URL

Address of the peripheral's control register

XDCscript usage meta-domain
var params = new Clock2xx.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 Clock2xx.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new Clock2xx.Params;
...
const params.forceSetDefaultRegister = Clock2xx.ForceSetDefaultRegister_t[] [
    {
        register: "DCOCTL",
        regForceSet: false
    },
    {
        register: "BCSCTL1",
        regForceSet: false
    },
    {
        register: "BCSCTL2",
        regForceSet: false
    },
    {
        register: "BCSCTL3",
        regForceSet: false
    }
];
config Clock2xx.hasXT2 // instance
index URL

Set whether XT2 is available on the device

XDCscript usage meta-domain
var params = new Clock2xx.Params;
...
params.hasXT2 = Bool false;
config Clock2xx.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new Clock2xx.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 Clock2xx.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new Clock2xx.Params;
...
params.owner = String undefined;
config Clock2xx.preCalibratedValues // instance
index URL

Basic Clock System 2xx pre-calibrated system frequency

XDCscript usage meta-domain
var params = new Clock2xx.Params;
...
params.preCalibratedValues = Clock2xx.PreCalibratedValues_t Clock2xx.PreCal_0;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new Clock2xx.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = Clock2xx.create(IE1.Instance interruptEnableRegister1, params);
// Create an instance-object
Clock2xx.computeDCOCLKHz() // instance
index URL

Initialize to the nearest available DCO clock frequency

XDCscript usage meta-domain
inst.computeDCOCLKHz(Float DCOCLKHz) returns Void
generated on Wed, 08 Dec 2010 20:08:55 GMT


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 ForceSetDefaultRegister_t// Force Set Default Register {
        String register;
        Bool regForceSet;
    };
module-wide functions
    Void addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds);
     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// Stores ACLK as frequency in float;
    readonly config Float DCOCLKHz// Stores the DCO clock frequency in float = 1000000;
    readonly config Float MCLKHz// Stores MCLK as frequency in float;
    readonly config Float SMCLKHz// Stores SMCLK as frequency in float;
    config UInt baseAddr// Address of the peripheral's control register;
    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.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.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/clock/IClock.xdc
Void addPeripheralsMap(ICpuDataSheet.Instance cds);
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.
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

Stores ACLK as frequency in float

XDCspec declarations sourced in ti/catalog/msp430/peripherals/clock/IClock.xdc
readonly config Float ACLKHz;
config IClock.DCOCLKHz // instance
index URL

Stores the DCO clock frequency in float

XDCspec declarations sourced in ti/catalog/msp430/peripherals/clock/IClock.xdc
readonly config Float DCOCLKHz = 1000000;
config IClock.MCLKHz // instance
index URL

Stores MCLK as frequency in float

XDCspec declarations sourced in ti/catalog/msp430/peripherals/clock/IClock.xdc
readonly config Float MCLKHz;
config IClock.SMCLKHz // instance
index URL

Stores SMCLK as frequency in float

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.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 Wed, 08 Dec 2010 20:08:55 GMT


package ti.catalog.msp430.peripherals.communication
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/package.xdc
requires ti.catalog.msp430.peripherals.clock;
requires ti.catalog.msp430.peripherals.special_function;
package ti.catalog.msp430.peripherals.communication {
    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_UART;
    // Universal Serial Communication Interface A0 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_I2C;
    // Universal Serial Communication Interface
    interface IUSCI_SPI;
    // Universal Serial Communication Interface
    interface IUSCI_UART;
    // Universal Serial Communication Interface
    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_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
}
generated on Wed, 08 Dec 2010 20:08:59 GMT


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;
    };
module-wide functions
    Void addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds);
     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
    Bool getUCRXIE// ();
    Bool getUCTXIE// ();
    Bool setUCRXIE// (Bool set);
    Bool setUCTXIE// (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
IUSCI.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
Void addPeripheralsMap(ICpuDataSheet.Instance cds);
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.
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.getUCRXIE() // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
Bool getUCRXIE();
IUSCI.getUCTXIE() // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
Bool getUCTXIE();
IUSCI.setUCRXIE() // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
Bool setUCRXIE(Bool set);
IUSCI.setUCTXIE() // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI.xdc
Bool setUCTXIE(Bool set);
generated on Wed, 08 Dec 2010 20:08:56 GMT


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;
    };
module-wide functions
    Void addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds);
     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 UChar UCA0BR0// Bit Rate Control Register 0 = 0;
    config UChar 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 UChar 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 UChar 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
    Bool getUCRXIE// ();
    Bool getUCTXIE// ();
    Bool setUCRXIE// (Bool set);
    Bool setUCTXIE// (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
};
IUSCI_A0_SPI.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
Void addPeripheralsMap(ICpuDataSheet.Instance cds);
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.
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 UChar 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 UChar 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 UChar 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 UChar 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.getUCRXIE() // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
Bool getUCRXIE();
IUSCI_A0_SPI.getUCTXIE() // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
Bool getUCTXIE();
IUSCI_A0_SPI.setUCRXIE() // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
Bool setUCRXIE(Bool set);
IUSCI_A0_SPI.setUCTXIE() // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_SPI.xdc
Bool setUCTXIE(Bool set);
generated on Wed, 08 Dec 2010 20:08:56 GMT


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;
    };
module-wide functions
    Void addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds);
     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 UChar UCA0BR0// Baud rate control register 0 = 0;
    config UChar 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 UChar 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 UChar 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
    Bool getUCRXIE// ();
    Bool getUCTXIE// ();
    Bool setUCRXIE// (Bool set);
    Bool setUCTXIE// (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
};
IUSCI_A0_UART.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
Void addPeripheralsMap(ICpuDataSheet.Instance cds);
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.
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 UChar 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 UChar 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 UChar 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 UChar 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.getUCRXIE() // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
Bool getUCRXIE();
IUSCI_A0_UART.getUCTXIE() // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
Bool getUCTXIE();
IUSCI_A0_UART.setUCRXIE() // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
Bool setUCRXIE(Bool set);
IUSCI_A0_UART.setUCTXIE() // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A0_UART.xdc
Bool setUCTXIE(Bool set);
generated on Wed, 08 Dec 2010 20:08:57 GMT


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 A0 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;
    };
module-wide functions
    Void addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds);
     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 UChar UCA1BR0// Baud rate control register 0 = 0;
    config UChar 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 UChar 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 UChar 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
    Bool getUCRXIE// ();
    Bool getUCTXIE// ();
    Bool setUCRXIE// (Bool set);
    Bool setUCTXIE// (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
};
IUSCI_A1_UART.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
Void addPeripheralsMap(ICpuDataSheet.Instance cds);
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.
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 UChar 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 UChar 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 UChar 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 UChar 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.getUCRXIE() // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
Bool getUCRXIE();
IUSCI_A1_UART.getUCTXIE() // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
Bool getUCTXIE();
IUSCI_A1_UART.setUCRXIE() // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
Bool setUCRXIE(Bool set);
IUSCI_A1_UART.setUCTXIE() // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_A1_UART.xdc
Bool setUCTXIE(Bool set);
generated on Wed, 08 Dec 2010 20:08:57 GMT


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;
    };
module-wide functions
    Void addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds);
     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 UChar UCB0BR0// Bit Rate Control Register 0 = 0;
    config UChar 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 UChar UCB0I2CSA// I2C Slave Address Register = 0;
    config UChar 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 UChar 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
    Bool getUCRXIE// ();
    Bool getUCTXIE// ();
    Bool setUCRXIE// (Bool set);
    Bool setUCTXIE// (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
};
IUSCI_B0_I2C.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
Void addPeripheralsMap(ICpuDataSheet.Instance cds);
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.
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 UChar 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 UChar 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 UChar 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 UChar 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 UChar 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.getUCRXIE() // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
Bool getUCRXIE();
IUSCI_B0_I2C.getUCTXIE() // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
Bool getUCTXIE();
IUSCI_B0_I2C.setUCRXIE() // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
Bool setUCRXIE(Bool set);
IUSCI_B0_I2C.setUCTXIE() // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_I2C.xdc
Bool setUCTXIE(Bool set);
generated on Wed, 08 Dec 2010 20:08:57 GMT


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;
    };
module-wide functions
    Void addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds);
     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 UChar UCB0BR0// Bit Rate Control Register 0 = 0;
    config UChar 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 UChar 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 UChar 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
    Bool getUCRXIE// ();
    Bool getUCTXIE// ();
    Bool setUCRXIE// (Bool set);
    Bool setUCTXIE// (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
};
IUSCI_B0_SPI.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
Void addPeripheralsMap(ICpuDataSheet.Instance cds);
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.
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 UChar 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 UChar 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 UChar 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 UChar 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.getUCRXIE() // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
Bool getUCRXIE();
IUSCI_B0_SPI.getUCTXIE() // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
Bool getUCTXIE();
IUSCI_B0_SPI.setUCRXIE() // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
Bool setUCRXIE(Bool set);
IUSCI_B0_SPI.setUCTXIE() // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_B0_SPI.xdc
Bool setUCTXIE(Bool set);
generated on Wed, 08 Dec 2010 20:08:57 GMT


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;
    };
module-wide functions
    Void addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds);
     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
    Bool getUCRXIE// ();
    Bool getUCTXIE// ();
    Bool setUCRXIE// (Bool set);
    Bool setUCTXIE// (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
};
IUSCI_I2C.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
Void addPeripheralsMap(ICpuDataSheet.Instance cds);
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.
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.getUCRXIE() // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
Bool getUCRXIE();
IUSCI_I2C.getUCTXIE() // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
Bool getUCTXIE();
IUSCI_I2C.setUCRXIE() // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
Bool setUCRXIE(Bool set);
IUSCI_I2C.setUCTXIE() // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_I2C.xdc
Bool setUCTXIE(Bool set);
generated on Wed, 08 Dec 2010 20:08:58 GMT


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;
    };
module-wide functions
    Void addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds);
     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
    Bool getUCRXIE// ();
    Bool getUCTXIE// ();
    Bool setUCRXIE// (Bool set);
    Bool setUCTXIE// (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
};
IUSCI_SPI.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
Void addPeripheralsMap(ICpuDataSheet.Instance cds);
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.
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.getUCRXIE() // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
Bool getUCRXIE();
IUSCI_SPI.getUCTXIE() // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
Bool getUCTXIE();
IUSCI_SPI.setUCRXIE() // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
Bool setUCRXIE(Bool set);
IUSCI_SPI.setUCTXIE() // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_SPI.xdc
Bool setUCTXIE(Bool set);
generated on Wed, 08 Dec 2010 20:08:58 GMT


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;
    };
module-wide functions
    Void addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds);
     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
    Bool getUCRXIE// ();
    Bool getUCTXIE// ();
    Bool setUCRXIE// (Bool set);
    Bool setUCTXIE// (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
};
IUSCI_UART.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
Void addPeripheralsMap(ICpuDataSheet.Instance cds);
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.
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.getUCRXIE() // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
Bool getUCRXIE();
IUSCI_UART.getUCTXIE() // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
Bool getUCTXIE();
IUSCI_UART.setUCRXIE() // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
Bool setUCRXIE(Bool set);
IUSCI_UART.setUCTXIE() // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/communication/IUSCI_UART.xdc
Bool setUCTXIE(Bool set);
generated on Wed, 08 Dec 2010 20:08:58 GMT


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 ...
module-wide functions
     USCI_A0_SPI_2xx.addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds) returns Void
     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 = UChar 0;
        params.UCA0BR1// Bit Rate Control Register 1 = UChar 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 = UChar 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 = UChar 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, IE2.Instance interruptEnableRegister2, params);
per-instance functions
     inst.getUCRXIE// () returns Bool
     inst.getUCTXIE// () returns Bool
     inst.setUCRXIE// (Bool set) returns Bool
     inst.setUCTXIE// (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
USCI_A0_SPI_2xx.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCscript usage meta-domain
USCI_A0_SPI_2xx.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.
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 = UChar 0;
    // Bit Rate Control Register 0
    params.UCA0BR1 = UChar 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 = UChar 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 = UChar 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 = UChar 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 = UChar 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 = UChar 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 = UChar 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, IE2.Instance interruptEnableRegister2, params);
// Create an instance-object
USCI_A0_SPI_2xx.getUCRXIE() // instance
index URL
XDCscript usage meta-domain
inst.getUCRXIE() returns Bool
USCI_A0_SPI_2xx.getUCTXIE() // instance
index URL
XDCscript usage meta-domain
inst.getUCTXIE() returns Bool
USCI_A0_SPI_2xx.setUCRXIE() // instance
index URL
XDCscript usage meta-domain
inst.setUCRXIE(Bool set) returns Bool
USCI_A0_SPI_2xx.setUCTXIE() // instance
index URL
XDCscript usage meta-domain
inst.setUCTXIE(Bool set) returns Bool
generated on Wed, 08 Dec 2010 20:08:58 GMT


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 ...
module-wide functions
     USCI_A0_UART_2xx.addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds) returns Void
     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 = UChar 0;
        params.UCA0BR1// Baud rate control register 1 = UChar 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 = UChar 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 = UChar 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, IE2.Instance interruptEnableRegister2, params);
per-instance functions
     inst.getUCRXIE// () returns Bool
     inst.getUCTXIE// () returns Bool
     inst.setUCRXIE// (Bool set) returns Bool
     inst.setUCTXIE// (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
USCI_A0_UART_2xx.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCscript usage meta-domain
USCI_A0_UART_2xx.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.
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 = UChar 0;
    // Baud rate control register 0
    params.UCA0BR1 = UChar 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 = UChar 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 = UChar 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 = UChar 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 = UChar 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 = UChar 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 = UChar 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, IE2.Instance interruptEnableRegister2, params);
// Create an instance-object
USCI_A0_UART_2xx.getUCRXIE() // instance
index URL
XDCscript usage meta-domain
inst.getUCRXIE() returns Bool
USCI_A0_UART_2xx.getUCTXIE() // instance
index URL
XDCscript usage meta-domain
inst.getUCTXIE() returns Bool
USCI_A0_UART_2xx.setUCRXIE() // instance
index URL
XDCscript usage meta-domain
inst.setUCRXIE(Bool set) returns Bool
USCI_A0_UART_2xx.setUCTXIE() // instance
index URL
XDCscript usage meta-domain
inst.setUCTXIE(Bool set) returns Bool
generated on Wed, 08 Dec 2010 20:08:58 GMT


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.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.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 ...
module-wide functions
     USCI_A1_UART_2xx.addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds) returns Void
     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.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 = UChar 0;
        params.UCA0BR1// Baud rate control register 1 = UChar 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 = UChar 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 = UChar 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
        }
    ];
        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.getUCRXIE// () returns Bool
     inst.getUCTXIE// () returns Bool
     inst.setUCRXIE// (Bool set) returns Bool
     inst.setUCTXIE// (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.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.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
USCI_A1_UART_2xx.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCscript usage meta-domain
USCI_A1_UART_2xx.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.
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.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 = UChar 0;
    // Baud rate control register 0
    params.UCA0BR1 = UChar 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 = UChar 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 = UChar 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
    }
];
    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.UCA0ABCTL // instance
index URL

Auto Baud Rate Control Register

XDCscript usage meta-domain
var params = new USCI_A1_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_A1_UART_2xx.UCA0BR0 // instance
index URL

Baud rate control register 0

XDCscript usage meta-domain
var params = new USCI_A1_UART_2xx.Params;
...
params.UCA0BR0 = UChar 0;
config USCI_A1_UART_2xx.UCA0BR1 // instance
index URL

Baud rate control register 1

XDCscript usage meta-domain
var params = new USCI_A1_UART_2xx.Params;
...
params.UCA0BR1 = UChar 0;
config USCI_A1_UART_2xx.UCA0CTL0 // instance
index URL

Control Register 0

XDCscript usage meta-domain
var params = new USCI_A1_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_A1_UART_2xx.UCA0CTL1 // instance
index URL

Control Register 1

XDCscript usage meta-domain
var params = new USCI_A1_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_A1_UART_2xx.UCA0IRRCTL // instance
index URL

IrDA Receive Control Register

XDCscript usage meta-domain
var params = new USCI_A1_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_A1_UART_2xx.UCA0IRTCTL // instance
index URL

IrDA Transmit Control Register

XDCscript usage meta-domain
var params = new USCI_A1_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_A1_UART_2xx.UCA0MCTL // instance
index URL

Modulation Control Register

XDCscript usage meta-domain
var params = new USCI_A1_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_A1_UART_2xx.UCA0RXBUF // instance
index URL

Receive Buffer Register

XDCscript usage meta-domain
var params = new USCI_A1_UART_2xx.Params;
...
params.UCA0RXBUF = UChar 0;
config USCI_A1_UART_2xx.UCA0STAT // instance
index URL

Status Register

XDCscript usage meta-domain
var params = new USCI_A1_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_A1_UART_2xx.UCA0TXBUF // instance
index URL

Transmit Buffer Register

XDCscript usage meta-domain
var params = new USCI_A1_UART_2xx.Params;
...
params.UCA0TXBUF = UChar 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
    }
];
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;
USCI_A1_UART_2xx.getUCRXIE() // instance
index URL
XDCscript usage meta-domain
inst.getUCRXIE() returns Bool
USCI_A1_UART_2xx.getUCTXIE() // instance
index URL
XDCscript usage meta-domain
inst.getUCTXIE() returns Bool
USCI_A1_UART_2xx.setUCRXIE() // instance
index URL
XDCscript usage meta-domain
inst.setUCRXIE(Bool set) returns Bool
USCI_A1_UART_2xx.setUCTXIE() // instance
index URL
XDCscript usage meta-domain
inst.setUCTXIE(Bool set) returns Bool
generated on Wed, 08 Dec 2010 20:08:59 GMT


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 ...
module-wide functions
     USCI_B0_I2C_2xx.addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds) returns Void
     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 = UChar 0;
        params.UCB0BR1// Bit Rate Control Register 1 = UChar 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 = UChar 0;
        params.UCB0RXBUF// Receive Buffer Register = UChar 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 = UChar 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.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, IE2.Instance interruptEnableRegister2, params);
per-instance functions
     inst.getUCALIE// Gets UCALIE bit() returns Bool
     inst.getUCNACKIE// Gets UCNACKIE bit() returns Bool
     inst.getUCRXIE// () returns Bool
     inst.getUCSTPIE// Gets UCSTPIE bit() returns Bool
     inst.getUCSTTIE// Gets UCSTTIE bit() returns Bool
     inst.getUCTXIE// () returns Bool
     inst.setUCALIE// Sets UCALIE bit(Bool set) returns Bool
     inst.setUCNACKIE// Sets UCNACKIE bit(Bool set) returns Bool
     inst.setUCRXIE// (Bool set) returns Bool
     inst.setUCSTPIE// Sets UCSTPIE bit(Bool set) returns Bool
     inst.setUCSTTIE// Sets UCSTTIE bit(Bool set) returns Bool
     inst.setUCTXIE// (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
USCI_B0_I2C_2xx.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCscript usage meta-domain
USCI_B0_I2C_2xx.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.
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 = UChar 0;
    // Bit Rate Control Register 0
    params.UCB0BR1 = UChar 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 = UChar 0;
    // I2C Slave Address Register
    params.UCB0RXBUF = UChar 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 = UChar 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.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 = UChar 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 = UChar 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 = UChar 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 = UChar 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 = UChar 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.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, IE2.Instance interruptEnableRegister2, 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.getUCNACKIE() // instance
index URL

Gets UCNACKIE bit

XDCscript usage meta-domain
inst.getUCNACKIE() returns Bool
SEE
getUCNACKIE
USCI_B0_I2C_2xx.getUCRXIE() // instance
index URL
XDCscript usage meta-domain
inst.getUCRXIE() returns Bool
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.getUCTXIE() // instance
index URL
XDCscript usage meta-domain
inst.getUCTXIE() returns Bool
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.setUCNACKIE() // instance
index URL

Sets UCNACKIE bit

XDCscript usage meta-domain
inst.setUCNACKIE(Bool set) returns Bool
SEE
setUCNACKIE
USCI_B0_I2C_2xx.setUCRXIE() // instance
index URL
XDCscript usage meta-domain
inst.setUCRXIE(Bool set) returns Bool
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.setUCTXIE() // instance
index URL
XDCscript usage meta-domain
inst.setUCTXIE(Bool set) returns Bool
generated on Wed, 08 Dec 2010 20:08:59 GMT


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 ...
module-wide functions
     USCI_B0_SPI_2xx.addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds) returns Void
     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 = UChar 0;
        params.UCB0BR1// Bit Rate Control Register 1 = UChar 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 = UChar 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 = UChar 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, IE2.Instance interruptEnableRegister2, params);
per-instance functions
     inst.getUCRXIE// () returns Bool
     inst.getUCTXIE// () returns Bool
     inst.setUCRXIE// (Bool set) returns Bool
     inst.setUCTXIE// (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
USCI_B0_SPI_2xx.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCscript usage meta-domain
USCI_B0_SPI_2xx.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.
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 = UChar 0;
    // Bit Rate Control Register 0
    params.UCB0BR1 = UChar 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 = UChar 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 = UChar 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 = UChar 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 = UChar 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 = UChar 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 = UChar 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, IE2.Instance interruptEnableRegister2, params);
// Create an instance-object
USCI_B0_SPI_2xx.getUCRXIE() // instance
index URL
XDCscript usage meta-domain
inst.getUCRXIE() returns Bool
USCI_B0_SPI_2xx.getUCTXIE() // instance
index URL
XDCscript usage meta-domain
inst.getUCTXIE() returns Bool
USCI_B0_SPI_2xx.setUCRXIE() // instance
index URL
XDCscript usage meta-domain
inst.setUCRXIE(Bool set) returns Bool
USCI_B0_SPI_2xx.setUCTXIE() // instance
index URL
XDCscript usage meta-domain
inst.setUCTXIE(Bool set) returns Bool
generated on Wed, 08 Dec 2010 20:08:59 GMT


package ti.catalog.msp430.peripherals.gpio
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/package.xdc
package ti.catalog.msp430.peripherals.gpio {
    interface IGPIO;
    // MSP430 General Purpose Input Output Ports
    module GPIO_MSP430x22xx;
    // MSP430 General Purpose Input Output Ports
}
generated on Wed, 08 Dec 2010 20:09:02 GMT


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430x22xx

metaonly module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430x22xx
index URL

MSP430 General Purpose Input Output Ports

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/gpio/GPIO_MSP430x22xx.xdc
var GPIO_MSP430x22xx = xdc.useModule('ti.catalog.msp430.peripherals.gpio.GPIO_MSP430x22xx');
module-wide constants & types
    values of type GPIO_MSP430x22xx.Bit0_t// GPIO Bit 0 Definitions
        const GPIO_MSP430x22xx.BIT0_OFF;
        const GPIO_MSP430x22xx.BIT0;
    values of type GPIO_MSP430x22xx.Bit1_t//
        const GPIO_MSP430x22xx.BIT1_OFF;
        const GPIO_MSP430x22xx.BIT1;
    values of type GPIO_MSP430x22xx.Bit2_t//
        const GPIO_MSP430x22xx.BIT2_OFF;
        const GPIO_MSP430x22xx.BIT2;
    values of type GPIO_MSP430x22xx.Bit3_t//
        const GPIO_MSP430x22xx.BIT3_OFF;
        const GPIO_MSP430x22xx.BIT3;
    values of type GPIO_MSP430x22xx.Bit4_t//
        const GPIO_MSP430x22xx.BIT4_OFF;
        const GPIO_MSP430x22xx.BIT4;
    values of type GPIO_MSP430x22xx.Bit5_t//
        const GPIO_MSP430x22xx.BIT5_OFF;
        const GPIO_MSP430x22xx.BIT5;
    values of type GPIO_MSP430x22xx.Bit6_t//
        const GPIO_MSP430x22xx.BIT6_OFF;
        const GPIO_MSP430x22xx.BIT6;
    values of type GPIO_MSP430x22xx.Bit7_t//
        const GPIO_MSP430x22xx.BIT7_OFF;
        const GPIO_MSP430x22xx.BIT7;
    var obj = new GPIO_MSP430x22xx.DevicePinFunctionSetting_t// Device Pin Functional Setting Descriptor;
        obj.functionIndex = UInt ...
        obj.owner = Any ...
    var obj = new GPIO_MSP430x22xx.DevicePinFunction_t// Device Pin Functional Descriptor;
        obj.functionName = String[] ...
        obj.functionConfig = IGPIO.DeviceRegisterConfig_t[][] ...
    var obj = new GPIO_MSP430x22xx.DevicePin_t// Device Pin Descriptor;
        obj.pinName = String ...
        obj.pinFunction = IGPIO.DevicePinFunction_t ...
    var obj = new GPIO_MSP430x22xx.DeviceRegisterConfig_t// Device Register Configuration Descriptor;
        obj.register = String ...
        obj.bitSetMask = UInt ...
        obj.bitClearMask = UInt ...
    var obj = new GPIO_MSP430x22xx.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new GPIO_MSP430x22xx.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_MSP430x22xx.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_MSP430x22xx.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_MSP430x22xx.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_MSP430x22xx.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_MSP430x22xx.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_MSP430x22xx.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_MSP430x22xx.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_MSP430x22xx.MatchedPortFunction_t// Port Function Enumeration Type;
        obj.port = UInt[] ...
        obj.pin = UInt[] ...
        obj.pinName = String[] ...
        obj.functionIndex = UInt[] ...
        obj.functionName = String[] ...
module-wide functions
     GPIO_MSP430x22xx.addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds) returns Void
     GPIO_MSP430x22xx.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     GPIO_MSP430x22xx.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new GPIO_MSP430x22xx.Params// Instance config-params object;
        params.P1DIR// Port 1 Direction Register = GPIO_MSP430x22xx.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 = GPIO_MSP430x22xx.GpioBits8PxIe_t {
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: 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 = GPIO_MSP430x22xx.GpioBits8PxIes_t {
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: 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 = GPIO_MSP430x22xx.GpioBits8PxIfg_t {
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: 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_MSP430x22xx.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_MSP430x22xx.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_MSP430x22xx.GpioBits8PxSel_t {
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: 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_MSP430x22xx.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 = GPIO_MSP430x22xx.GpioBits8PxIe_t {
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: 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 = GPIO_MSP430x22xx.GpioBits8PxIes_t {
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: 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 = GPIO_MSP430x22xx.GpioBits8PxIfg_t {
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: 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_MSP430x22xx.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_MSP430x22xx.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_MSP430x22xx.GpioBits8PxSel_t {
        Bit0: IGPIO.BIT0_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_MSP430x22xx.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.P3OUT// Port 3 Output Register = GPIO_MSP430x22xx.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_MSP430x22xx.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_MSP430x22xx.GpioBits8PxSel_t {
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: 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_MSP430x22xx.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.P4OUT// Port 4 Output Register = GPIO_MSP430x22xx.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_MSP430x22xx.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_MSP430x22xx.GpioBits8PxSel_t {
        Bit0: IGPIO.BIT0_OFF,
        Bit1: IGPIO.BIT1_OFF,
        Bit2: 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_MSP430x22xx.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_MSP430x22xx.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: "P2DIR",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x00,
                                bitClearMask: 0x20
                            }
                        ],
                        [
                            {
                                register: "P2DIR",
                                bitSetMask: 0x20,
                                bitClearMask: 0x00
                            },
                            {
                                register: "P2SEL",
                                bitSetMask: 0x20,
                                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_MSP430x22xx.ForceSetDefaultRegister_t[] [
        {
            register: "P1OUT",
            regForceSet: true
        },
        {
            register: "P1SEL",
            regForceSet: false
        },
        {
            register: "P1DIR",
            regForceSet: false
        },
        {
            register: "P1REN",
            regForceSet: false
        },
        {
            register: "P1IES",
            regForceSet: true
        },
        {
            register: "P1IFG",
            regForceSet: false
        },
        {
            register: "P1IE",
            regForceSet: false
        },
        {
            register: "P2OUT",
            regForceSet: true
        },
        {
            register: "P2SEL",
            regForceSet: false
        },
        {
            register: "P2DIR",
            regForceSet: false
        },
        {
            register: "P2REN",
            regForceSet: false
        },
        {
            register: "P2IES",
            regForceSet: true
        },
        {
            register: "P2IFG",
            regForceSet: false
        },
        {
            register: "P2IE",
            regForceSet: false
        },
        {
            register: "P3OUT",
            regForceSet: true
        },
        {
            register: "P3SEL",
            regForceSet: false
        },
        {
            register: "P3DIR",
            regForceSet: false
        },
        {
            register: "P3REN",
            regForceSet: false
        },
        {
            register: "P4OUT",
            regForceSet: true
        },
        {
            register: "P4SEL",
            regForceSet: false
        },
        {
            register: "P4DIR",
            regForceSet: false
        },
        {
            register: "P4REN",
            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 = GPIO_MSP430x22xx.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_MSP430x22xx.Bit0_t
index URL

GPIO Bit 0 Definitions

XDCscript usage meta-domain
values of type GPIO_MSP430x22xx.Bit0_t
    const GPIO_MSP430x22xx.BIT0_OFF;
    const GPIO_MSP430x22xx.BIT0;
enum GPIO_MSP430x22xx.Bit1_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430x22xx.Bit1_t
    const GPIO_MSP430x22xx.BIT1_OFF;
    const GPIO_MSP430x22xx.BIT1;
enum GPIO_MSP430x22xx.Bit2_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430x22xx.Bit2_t
    const GPIO_MSP430x22xx.BIT2_OFF;
    const GPIO_MSP430x22xx.BIT2;
enum GPIO_MSP430x22xx.Bit3_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430x22xx.Bit3_t
    const GPIO_MSP430x22xx.BIT3_OFF;
    const GPIO_MSP430x22xx.BIT3;
enum GPIO_MSP430x22xx.Bit4_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430x22xx.Bit4_t
    const GPIO_MSP430x22xx.BIT4_OFF;
    const GPIO_MSP430x22xx.BIT4;
enum GPIO_MSP430x22xx.Bit5_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430x22xx.Bit5_t
    const GPIO_MSP430x22xx.BIT5_OFF;
    const GPIO_MSP430x22xx.BIT5;
enum GPIO_MSP430x22xx.Bit6_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430x22xx.Bit6_t
    const GPIO_MSP430x22xx.BIT6_OFF;
    const GPIO_MSP430x22xx.BIT6;
enum GPIO_MSP430x22xx.Bit7_t
index URL
XDCscript usage meta-domain
values of type GPIO_MSP430x22xx.Bit7_t
    const GPIO_MSP430x22xx.BIT7_OFF;
    const GPIO_MSP430x22xx.BIT7;
struct GPIO_MSP430x22xx.DevicePinFunctionSetting_t
index URL

Device Pin Functional Setting Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430x22xx.DevicePinFunctionSetting_t;
    obj.functionIndex = UInt ...
    obj.owner = Any ...
DETAILS
Type to store the selected pin configuration and a reference to the object that last modified the configuration.
SEE
DevicePinFunctionSetting_t
struct GPIO_MSP430x22xx.DevicePinFunction_t
index URL

Device Pin Functional Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430x22xx.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_MSP430x22xx.DevicePin_t
index URL

Device Pin Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430x22xx.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_MSP430x22xx.DeviceRegisterConfig_t
index URL

Device Register Configuration Descriptor

XDCscript usage meta-domain
var obj = new GPIO_MSP430x22xx.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_MSP430x22xx.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430x22xx.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_MSP430x22xx.GpioBits8PxDir_t
index URL

Generic GPIO 8-bit PxDIR Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430x22xx.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_MSP430x22xx.GpioBits8PxIe_t
index URL

Generic GPIO 8-bit PxIE Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430x22xx.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_MSP430x22xx.GpioBits8PxIes_t
index URL

Generic GPIO 8-bit PxIES Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430x22xx.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_MSP430x22xx.GpioBits8PxIfg_t
index URL

Generic GPIO 8-bit PxIFG Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430x22xx.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_MSP430x22xx.GpioBits8PxIn_t
index URL

Generic GPIO 8-bit Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430x22xx.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_MSP430x22xx.GpioBits8PxOut_t
index URL

Generic GPIO 8-bit PxOUT Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430x22xx.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_MSP430x22xx.GpioBits8PxRen_t
index URL

Generic GPIO 8-bit PxREN Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430x22xx.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_MSP430x22xx.GpioBits8PxSel_t
index URL

Generic GPIO 8-bit PxSEL Register

XDCscript usage meta-domain
var obj = new GPIO_MSP430x22xx.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_MSP430x22xx.MatchedPortFunction_t
index URL

Port Function Enumeration Type

XDCscript usage meta-domain
var obj = new GPIO_MSP430x22xx.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
GPIO_MSP430x22xx.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCscript usage meta-domain
GPIO_MSP430x22xx.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.
GPIO_MSP430x22xx.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
GPIO_MSP430x22xx.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_MSP430x22xx.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
GPIO_MSP430x22xx.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430x22xx.Params;
// Instance config-params object
    params.P1DIR = GPIO_MSP430x22xx.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 = GPIO_MSP430x22xx.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 = GPIO_MSP430x22xx.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 = GPIO_MSP430x22xx.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_MSP430x22xx.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_MSP430x22xx.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_MSP430x22xx.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_MSP430x22xx.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 = GPIO_MSP430x22xx.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 = GPIO_MSP430x22xx.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 = GPIO_MSP430x22xx.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_MSP430x22xx.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_MSP430x22xx.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_MSP430x22xx.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_MSP430x22xx.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.P3OUT = GPIO_MSP430x22xx.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_MSP430x22xx.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_MSP430x22xx.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_MSP430x22xx.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.P4OUT = GPIO_MSP430x22xx.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_MSP430x22xx.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_MSP430x22xx.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_MSP430x22xx.DevicePinFunctionSetting_t[8][4] undefined;
    // Implementation of Device Pin Functional Configuration
    params.devicePins = GPIO_MSP430x22xx.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: "P2DIR",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x20,
                            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_MSP430x22xx.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
    {
        register: "P1OUT",
        regForceSet: true
    },
    {
        register: "P1SEL",
        regForceSet: false
    },
    {
        register: "P1DIR",
        regForceSet: false
    },
    {
        register: "P1REN",
        regForceSet: false
    },
    {
        register: "P1IES",
        regForceSet: true
    },
    {
        register: "P1IFG",
        regForceSet: false
    },
    {
        register: "P1IE",
        regForceSet: false
    },
    {
        register: "P2OUT",
        regForceSet: true
    },
    {
        register: "P2SEL",
        regForceSet: false
    },
    {
        register: "P2DIR",
        regForceSet: false
    },
    {
        register: "P2REN",
        regForceSet: false
    },
    {
        register: "P2IES",
        regForceSet: true
    },
    {
        register: "P2IFG",
        regForceSet: false
    },
    {
        register: "P2IE",
        regForceSet: false
    },
    {
        register: "P3OUT",
        regForceSet: true
    },
    {
        register: "P3SEL",
        regForceSet: false
    },
    {
        register: "P3DIR",
        regForceSet: false
    },
    {
        register: "P3REN",
        regForceSet: false
    },
    {
        register: "P4OUT",
        regForceSet: true
    },
    {
        register: "P4SEL",
        regForceSet: false
    },
    {
        register: "P4DIR",
        regForceSet: false
    },
    {
        register: "P4REN",
        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 GPIO_MSP430x22xx.P1DIR // instance
index URL

Port 1 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430x22xx.Params;
...
params.P1DIR = GPIO_MSP430x22xx.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_MSP430x22xx.P1IE // instance
index URL

Port 1 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430x22xx.Params;
...
params.P1IE = GPIO_MSP430x22xx.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430x22xx.P1IES // instance
index URL

Port 1 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430x22xx.Params;
...
params.P1IES = GPIO_MSP430x22xx.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430x22xx.P1IFG // instance
index URL

Port 1 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430x22xx.Params;
...
params.P1IFG = GPIO_MSP430x22xx.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430x22xx.P1OUT // instance
index URL

Port 1 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430x22xx.Params;
...
params.P1OUT = GPIO_MSP430x22xx.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_MSP430x22xx.P1REN // instance
index URL

Port 1 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430x22xx.Params;
...
params.P1REN = GPIO_MSP430x22xx.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_MSP430x22xx.P1SEL // instance
index URL

Port 1 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430x22xx.Params;
...
params.P1SEL = GPIO_MSP430x22xx.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430x22xx.P2DIR // instance
index URL

Port 2 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430x22xx.Params;
...
params.P2DIR = GPIO_MSP430x22xx.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_MSP430x22xx.P2IE // instance
index URL

Port 2 Interrupt Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430x22xx.Params;
...
params.P2IE = GPIO_MSP430x22xx.GpioBits8PxIe_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430x22xx.P2IES // instance
index URL

Port 2 Interrupt Edge Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430x22xx.Params;
...
params.P2IES = GPIO_MSP430x22xx.GpioBits8PxIes_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430x22xx.P2IFG // instance
index URL

Port 2 Interrupt Flag Register

XDCscript usage meta-domain
var params = new GPIO_MSP430x22xx.Params;
...
params.P2IFG = GPIO_MSP430x22xx.GpioBits8PxIfg_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430x22xx.P2OUT // instance
index URL

Port 2 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430x22xx.Params;
...
params.P2OUT = GPIO_MSP430x22xx.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_MSP430x22xx.P2REN // instance
index URL

Port 2 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430x22xx.Params;
...
params.P2REN = GPIO_MSP430x22xx.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_MSP430x22xx.P2SEL // instance
index URL

Port 2 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430x22xx.Params;
...
params.P2SEL = GPIO_MSP430x22xx.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_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_MSP430x22xx.P3DIR // instance
index URL

Port 3 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430x22xx.Params;
...
params.P3DIR = GPIO_MSP430x22xx.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_MSP430x22xx.P3OUT // instance
index URL

Port 3 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430x22xx.Params;
...
params.P3OUT = GPIO_MSP430x22xx.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_MSP430x22xx.P3REN // instance
index URL

Port 3 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430x22xx.Params;
...
params.P3REN = GPIO_MSP430x22xx.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_MSP430x22xx.P3SEL // instance
index URL

Port 3 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430x22xx.Params;
...
params.P3SEL = GPIO_MSP430x22xx.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430x22xx.P4DIR // instance
index URL

Port 4 Direction Register

XDCscript usage meta-domain
var params = new GPIO_MSP430x22xx.Params;
...
params.P4DIR = GPIO_MSP430x22xx.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_MSP430x22xx.P4OUT // instance
index URL

Port 4 Output Register

XDCscript usage meta-domain
var params = new GPIO_MSP430x22xx.Params;
...
params.P4OUT = GPIO_MSP430x22xx.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_MSP430x22xx.P4REN // instance
index URL

Port 4 Resistor Enable Register

XDCscript usage meta-domain
var params = new GPIO_MSP430x22xx.Params;
...
params.P4REN = GPIO_MSP430x22xx.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_MSP430x22xx.P4SEL // instance
index URL

Port 4 Port Select Register

XDCscript usage meta-domain
var params = new GPIO_MSP430x22xx.Params;
...
params.P4SEL = GPIO_MSP430x22xx.GpioBits8PxSel_t {
    Bit0: IGPIO.BIT0_OFF,
    Bit1: IGPIO.BIT1_OFF,
    Bit2: IGPIO.BIT2_OFF,
    Bit3: IGPIO.BIT3_OFF,
    Bit4: IGPIO.BIT4_OFF,
    Bit5: IGPIO.BIT5_OFF,
    Bit6: IGPIO.BIT6_OFF,
    Bit7: IGPIO.BIT7_OFF
};
config GPIO_MSP430x22xx.devicePinSetting // instance
index URL

Implementation of Device Pin Functional Configuration

XDCscript usage meta-domain
var params = new GPIO_MSP430x22xx.Params;
...
params.devicePinSetting = GPIO_MSP430x22xx.DevicePinFunctionSetting_t[8][4] undefined;
config GPIO_MSP430x22xx.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_MSP430x22xx.Params;
...
const params.devicePins = GPIO_MSP430x22xx.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: "P2DIR",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x00,
                            bitClearMask: 0x20
                        }
                    ],
                    [
                        {
                            register: "P2DIR",
                            bitSetMask: 0x20,
                            bitClearMask: 0x00
                        },
                        {
                            register: "P2SEL",
                            bitSetMask: 0x20,
                            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_MSP430x22xx.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new GPIO_MSP430x22xx.Params;
...
const params.forceSetDefaultRegister = GPIO_MSP430x22xx.ForceSetDefaultRegister_t[] [
    {
        register: "P1OUT",
        regForceSet: true
    },
    {
        register: "P1SEL",
        regForceSet: false
    },
    {
        register: "P1DIR",
        regForceSet: false
    },
    {
        register: "P1REN",
        regForceSet: false
    },
    {
        register: "P1IES",
        regForceSet: true
    },
    {
        register: "P1IFG",
        regForceSet: false
    },
    {
        register: "P1IE",
        regForceSet: false
    },
    {
        register: "P2OUT",
        regForceSet: true
    },
    {
        register: "P2SEL",
        regForceSet: false
    },
    {
        register: "P2DIR",
        regForceSet: false
    },
    {
        register: "P2REN",
        regForceSet: false
    },
    {
        register: "P2IES",
        regForceSet: true
    },
    {
        register: "P2IFG",
        regForceSet: false
    },
    {
        register: "P2IE",
        regForceSet: false
    },
    {
        register: "P3OUT",
        regForceSet: true
    },
    {
        register: "P3SEL",
        regForceSet: false
    },
    {
        register: "P3DIR",
        regForceSet: false
    },
    {
        register: "P3REN",
        regForceSet: false
    },
    {
        register: "P4OUT",
        regForceSet: true
    },
    {
        register: "P4SEL",
        regForceSet: false
    },
    {
        register: "P4DIR",
        regForceSet: false
    },
    {
        register: "P4REN",
        regForceSet: false
    }
];
config GPIO_MSP430x22xx.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new GPIO_MSP430x22xx.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_MSP430x22xx.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new GPIO_MSP430x22xx.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new GPIO_MSP430x22xx.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = GPIO_MSP430x22xx.create(ADC10.Instance adc10, params);
// Create an instance-object
GPIO_MSP430x22xx.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_MSP430x22xx.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_MSP430x22xx.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_MSP430x22xx.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_MSP430x22xx.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_MSP430x22xx.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 Wed, 08 Dec 2010 20:09:02 GMT


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
    };
    typedef IPeripheral.Instance IPeripheralArray// [];
    typedef String StringArray// [];
    metaonly struct DevicePinFunctionSetting_t// Device Pin Functional Setting Descriptor {
        UInt functionIndex;
        Any owner;
    };
    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 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[];
    };
module-wide functions
    Void addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds);
     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.DevicePinFunctionSetting_t devicePinSetting// Fordward Declaration of Device Pin Functional Configuration[][];
    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
};
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;
    Any owner;
};
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.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
IGPIO.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
Void addPeripheralsMap(ICpuDataSheet.Instance cds);
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.
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.devicePinSetting // instance
index URL

Fordward Declaration of Device Pin Functional Configuration

XDCspec declarations sourced in ti/catalog/msp430/peripherals/gpio/IGPIO.xdc
config IGPIO.DevicePinFunctionSetting_t devicePinSetting[][];
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 Wed, 08 Dec 2010 20:09:01 GMT


package ti.catalog.msp430.peripherals.interrupt
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/interrupt/package.xdc
package ti.catalog.msp430.peripherals.interrupt {
    module Interrupt_Controller;
    // MSP430 Interrupt_Controller
}
generated on Wed, 08 Dec 2010 20:09:02 GMT


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.addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds) returns Void
     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.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCscript usage meta-domain
Interrupt_Controller.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.
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 Wed, 08 Dec 2010 20:09:02 GMT


package ti.catalog.msp430.peripherals.memory
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/package.xdc
package ti.catalog.msp430.peripherals.memory {
    interface IFlash;
    // MSP430 IFlash interface
    module Flash_2xx;
    // MSP430 Flash 2xx
}
generated on Wed, 08 Dec 2010 20:09:03 GMT


module ti.catalog.msp430.peripherals.memory.Flash_2xx

metaonly module ti.catalog.msp430.peripherals.memory.Flash_2xx
index URL

MSP430 Flash 2xx

  • 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;
        const Flash_2xx.ACCVIFG;
    values of type Flash_2xx.BLKWRT_t// Block write mode
        const Flash_2xx.BLKWRT_OFF;
        const Flash_2xx.BLKWRT;
    values of type Flash_2xx.BUSY_t// Busy
        const Flash_2xx.BUSY_OFF;
        const Flash_2xx.BUSY;
    values of type Flash_2xx.EEIEX_t// Enable Emergency Interrupt Exit
        const Flash_2xx.EEIEX_OFF;
        const Flash_2xx.EEIEX;
    values of type Flash_2xx.EEI_t// Enable Erase Interrupts
        const Flash_2xx.EEI_OFF;
        const Flash_2xx.EEI;
    values of type Flash_2xx.EMEX_t// Emergency exit
        const Flash_2xx.EMEX_OFF;
        const Flash_2xx.EMEX;
    values of type Flash_2xx.ERASE_t// Erase
        const Flash_2xx.ERASE_OFF;
        const Flash_2xx.ERASE;
    values of type Flash_2xx.FAIL_t// Operation failure
        const Flash_2xx.FAIL_OFF;
        const Flash_2xx.FAIL;
    values of type Flash_2xx.FN0_t// Flash controller clock divider bit 0
        const Flash_2xx.FN0_OFF;
        const Flash_2xx.FN0;
    values of type Flash_2xx.FN1_t// Flash controller clock divider bit 1
        const Flash_2xx.FN1_OFF;
        const Flash_2xx.FN1;
    values of type Flash_2xx.FN2_t// Flash controller clock divider bit 2
        const Flash_2xx.FN2_OFF;
        const Flash_2xx.FN2;
    values of type Flash_2xx.FN3_t// Flash controller clock divider bit 3
        const Flash_2xx.FN3_OFF;
        const Flash_2xx.FN3;
    values of type Flash_2xx.FN4_t// Flash controller clock divider bit 4
        const Flash_2xx.FN4_OFF;
        const Flash_2xx.FN4;
    values of type Flash_2xx.FN5_t// Flash controller clock divider bit 5
        const Flash_2xx.FN5_OFF;
        const Flash_2xx.FN5;
    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;
        const Flash_2xx.FSSEL_3// 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;
        const Flash_2xx.KEYV;
    values of type Flash_2xx.LOCKA_t// SegmentA and Info lock
        const Flash_2xx.LOCKA_OFF;
        const Flash_2xx.LOCKA;
    values of type Flash_2xx.LOCK_t// Lock
        const Flash_2xx.LOCK_OFF;
        const Flash_2xx.LOCK;
    values of type Flash_2xx.MERAS_t// Mass erase
        const Flash_2xx.MERAS_OFF;
        const Flash_2xx.MERAS;
    values of type Flash_2xx.WAIT_t// Wait
        const Flash_2xx.WAIT_OFF;
        const Flash_2xx.WAIT;
    values of type Flash_2xx.WRT_t// Write
        const Flash_2xx.WRT_OFF;
        const Flash_2xx.WRT;
    var obj = new Flash_2xx.FCTL1_t// ;
        obj.FWKEY// FCTLx password = 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 = Flash_2xx.FWKEY_t ...
        obj.FSSEL// Flash controller clock source select = 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.FN3_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.addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds) returns Void
     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.baseAddr// Address of the peripheral's control register = UInt undefined;
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = Flash_2xx.ForceSetDefaultRegister_t[] [
        {
            register: "FCTL1",
            regForceSet: false
        }
    ];
        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;
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;
    const Flash_2xx.ACCVIFG;
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;
    const Flash_2xx.BLKWRT;
enum Flash_2xx.BUSY_t
index URL

Busy

XDCscript usage meta-domain
values of type Flash_2xx.BUSY_t
    const Flash_2xx.BUSY_OFF;
    const Flash_2xx.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;
    const Flash_2xx.EEIEX;
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;
    const Flash_2xx.EEI;
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;
    const Flash_2xx.EMEX;
enum Flash_2xx.ERASE_t
index URL

Erase

XDCscript usage meta-domain
values of type Flash_2xx.ERASE_t
    const Flash_2xx.ERASE_OFF;
    const Flash_2xx.ERASE;
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;
    const Flash_2xx.FAIL;
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;
    const Flash_2xx.FN0;
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;
    const Flash_2xx.FN1;
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;
    const Flash_2xx.FN2;
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;
    const Flash_2xx.FN3;
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;
    const Flash_2xx.FN4;
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;
    const Flash_2xx.FN5;
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
    const Flash_2xx.FSSEL_3;
    // 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;
    const Flash_2xx.KEYV;
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;
    const Flash_2xx.LOCKA;
enum Flash_2xx.LOCK_t
index URL

Lock

XDCscript usage meta-domain
values of type Flash_2xx.LOCK_t
    const Flash_2xx.LOCK_OFF;
    const Flash_2xx.LOCK;
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;
    const Flash_2xx.MERAS;
enum Flash_2xx.WAIT_t
index URL

Wait

XDCscript usage meta-domain
values of type Flash_2xx.WAIT_t
    const Flash_2xx.WAIT_OFF;
    const Flash_2xx.WAIT;
enum Flash_2xx.WRT_t
index URL

Write

XDCscript usage meta-domain
values of type Flash_2xx.WRT_t
    const Flash_2xx.WRT_OFF;
    const Flash_2xx.WRT;
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
    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
    obj.FSSEL = Flash_2xx.FSSEL_t ...
    // Flash controller clock source select
    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.FN3_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.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCscript usage meta-domain
Flash_2xx.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.
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.baseAddr = UInt undefined;
    // Address of the peripheral's control register
    params.forceSetDefaultRegister = Flash_2xx.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
    {
        register: "FCTL1",
        regForceSet: false
    }
];
    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 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.baseAddr // instance
index URL

Address of the peripheral's control register

XDCscript usage meta-domain
var params = new Flash_2xx.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 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
    }
];
config Flash_2xx.intNum // instance
index URL

Interrupt source number

XDCscript usage meta-domain
var params = new Flash_2xx.Params;
...
params.intNum = UInt undefined;
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;
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 Wed, 08 Dec 2010 20:09:03 GMT


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,
         ACCVIFG
    };
    enum BLKWRT_t// Block write mode {
         BLKWRT_OFF,
         BLKWRT
    };
    enum BUSY_t// Busy {
         BUSY_OFF,
         BUSY
    };
    enum EEIEX_t// Enable Emergency Interrupt Exit {
         EEIEX_OFF,
         EEIEX
    };
    enum EEI_t// Enable Erase Interrupts {
         EEI_OFF,
         EEI
    };
    enum EMEX_t// Emergency exit {
         EMEX_OFF,
         EMEX
    };
    enum ERASE_t// Erase {
         ERASE_OFF,
         ERASE
    };
    enum FAIL_t// Operation failure {
         FAIL_OFF,
         FAIL
    };
    enum FN0_t// Flash controller clock divider bit 0 {
         FN0_OFF,
         FN0
    };
    enum FN1_t// Flash controller clock divider bit 1 {
         FN1_OFF,
         FN1
    };
    enum FN2_t// Flash controller clock divider bit 2 {
         FN2_OFF,
         FN2
    };
    enum FN3_t// Flash controller clock divider bit 3 {
         FN3_OFF,
         FN3
    };
    enum FN4_t// Flash controller clock divider bit 4 {
         FN4_OFF,
         FN4
    };
    enum FN5_t// Flash controller clock divider bit 5 {
         FN5_OFF,
         FN5
    };
    enum FSSEL_t// {
         FSSEL_0// ACLK,
         FSSEL_1// MCLK,
         FSSEL_2// SMCLK,
         FSSEL_3// SMCLK
    };
    enum FWKEY_t// {
         FWKEY_OFF,
         FWKEY
    };
    enum KEYV_t// Flash security key violation {
         KEYV_OFF,
         KEYV
    };
    enum LOCKA_t// SegmentA and Info lock {
         LOCKA_OFF,
         LOCKA
    };
    enum LOCK_t// Lock {
         LOCK_OFF,
         LOCK
    };
    enum MERAS_t// Mass erase {
         MERAS_OFF,
         MERAS
    };
    enum WAIT_t// Wait {
         WAIT_OFF,
         WAIT
    };
    enum WRT_t// Write {
         WRT_OFF,
         WRT
    };
    typedef IPeripheral.Instance IPeripheralArray// [];
    typedef String StringArray// [];
    metaonly struct ForceSetDefaultRegister_t// Force Set Default Register {
        String register;
        Bool regForceSet;
    };
module-wide functions
    Void addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds);
     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 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);
}
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,
    ACCVIFG
};
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,
    BLKWRT
};
enum IFlash.BUSY_t
index URL

Busy

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
enum BUSY_t {
    BUSY_OFF,
    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,
    EEIEX
};
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,
    EEI
};
enum IFlash.EMEX_t
index URL

Emergency exit

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
enum EMEX_t {
    EMEX_OFF,
    EMEX
};
enum IFlash.ERASE_t
index URL

Erase

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
enum ERASE_t {
    ERASE_OFF,
    ERASE
};
enum IFlash.FAIL_t
index URL

Operation failure

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
enum FAIL_t {
    FAIL_OFF,
    FAIL
};
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,
    FN0
};
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,
    FN1
};
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,
    FN2
};
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,
    FN3
};
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,
    FN4
};
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,
    FN5
};
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
    FSSEL_3
    // 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,
    KEYV
};
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,
    LOCKA
};
enum IFlash.LOCK_t
index URL

Lock

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
enum LOCK_t {
    LOCK_OFF,
    LOCK
};
enum IFlash.MERAS_t
index URL

Mass erase

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
enum MERAS_t {
    MERAS_OFF,
    MERAS
};
enum IFlash.WAIT_t
index URL

Wait

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
enum WAIT_t {
    WAIT_OFF,
    WAIT
};
enum IFlash.WRT_t
index URL

Write

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
enum WRT_t {
    WRT_OFF,
    WRT
};
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.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
Void addPeripheralsMap(ICpuDataSheet.Instance cds);
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.
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.baseAddr // instance
index URL

Address of the peripheral's control register

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.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 IFlash.intNum // instance
index URL

Interrupt source number

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
config UInt intNum;
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;
Instance Creation
index URL

XDCspec declarations sourced in ti/catalog/msp430/peripherals/memory/IFlash.xdc
create(IClock.Instance clock);
// Create an instance-object
generated on Wed, 08 Dec 2010 20:09:03 GMT


package ti.catalog.msp430.peripherals.oa
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/oa/package.xdc
package ti.catalog.msp430.peripherals.oa {
    interface IOA;
    // MSP430 General Purpose Operational Amplifier
    module OA_2;
    // MSP430 General Purpose Operational Amplifier
    module OA_3;
    // MSP430 General Purpose Operational Amplifier
}
generated on Wed, 08 Dec 2010 20:09:03 GMT


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,
         OAADC0
    };
    enum OAADC1_t// {
         OAADC1_OFF,
         OAADC1
    };
    enum OAFBR_t// OAx feedback resistor select {
         OAFBR_0,
         OAFBR_1,
         OAFBR_2,
         OAFBR_3,
         OAFBR_4,
         OAFBR_5,
         OAFBR_6,
         OAFBR_7
    };
    enum OAFC_t// OAx function control {
         OAFC_0,
         OAFC_1,
         OAFC_2,
         OAFC_3,
         OAFC_4,
         OAFC_5,
         OAFC_6,
         OAFC_7
    };
    enum OANEXT_t// {
         OANEXT_OFF,
         OANEXT
    };
    enum OAN_t// Inverting input selection {
         OAN_0// OAxI0,
         OAN_1// OAxI1,
         OAN_2// OAxIA (see the device-specific data sheet for connected signal),
         OAN_3// OAxIB (see the device-specific data sheet for connected signal)
    };
    enum OAPM_t// Slew rate select {
         OAPM_0// OAx Power mode select: Off, output high Z,
         OAPM_1// OAx Power mode select: Slow,
         OAPM_2// OAx Power mode select: Medium,
         OAPM_3// OAx Power mode select: Fast
    };
    enum OAP_t// Non-inverting input selection {
         OAP_0// OAxI0,
         OAP_1// OAxI1,
         OAP_2// OAxIA (see the device-specific data sheet for connected signal),
         OAP_3// OAxIB (see the device-specific data sheet for connected signal)
    };
    enum OARRIP_t// {
         OARRIP_OFF,
         OARRIP
    };
    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
    Void addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds);
     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,
    OAADC0
};
enum IOA.OAADC1_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/oa/IOA.xdc
enum OAADC1_t {
    OAADC1_OFF,
    OAADC1
};
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,
    OAFBR_1,
    OAFBR_2,
    OAFBR_3,
    OAFBR_4,
    OAFBR_5,
    OAFBR_6,
    OAFBR_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,
    OAFC_1,
    OAFC_2,
    OAFC_3,
    OAFC_4,
    OAFC_5,
    OAFC_6,
    OAFC_7
};
enum IOA.OANEXT_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/oa/IOA.xdc
enum OANEXT_t {
    OANEXT_OFF,
    OANEXT
};
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,
    // OAxIA (see the device-specific data sheet for connected signal)
    OAN_3
    // OAxIB (see the device-specific data sheet for connected signal)
};
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,
    // OAx Power mode select: Off, output high Z
    OAPM_1,
    // OAx Power mode select: Slow
    OAPM_2,
    // OAx Power mode select: Medium
    OAPM_3
    // OAx Power mode select: 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,
    // OAxIA (see the device-specific data sheet for connected signal)
    OAP_3
    // OAxIB (see the device-specific data sheet for connected signal)
};
enum IOA.OARRIP_t
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/oa/IOA.xdc
enum OARRIP_t {
    OARRIP_OFF,
    OARRIP
};
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.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/oa/IOA.xdc
Void addPeripheralsMap(ICpuDataSheet.Instance cds);
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.
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 Wed, 08 Dec 2010 20:09:03 GMT


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
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;
        const OA_2.OAADC0;
    values of type OA_2.OAADC1_t//
        const OA_2.OAADC1_OFF;
        const OA_2.OAADC1;
    values of type OA_2.OAFBR_t// OAx feedback resistor select
        const OA_2.OAFBR_0;
        const OA_2.OAFBR_1;
        const OA_2.OAFBR_2;
        const OA_2.OAFBR_3;
        const OA_2.OAFBR_4;
        const OA_2.OAFBR_5;
        const OA_2.OAFBR_6;
        const OA_2.OAFBR_7;
    values of type OA_2.OAFC_t// OAx function control
        const OA_2.OAFC_0;
        const OA_2.OAFC_1;
        const OA_2.OAFC_2;
        const OA_2.OAFC_3;
        const OA_2.OAFC_4;
        const OA_2.OAFC_5;
        const OA_2.OAFC_6;
        const OA_2.OAFC_7;
    values of type OA_2.OANEXT_t//
        const OA_2.OANEXT_OFF;
        const OA_2.OANEXT;
    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// OAxIA (see the device-specific data sheet for connected signal);
        const OA_2.OAN_3// OAxIB (see the device-specific data sheet for connected signal);
    values of type OA_2.OAPM_t// Slew rate select
        const OA_2.OAPM_0// OAx Power mode select: Off, output high Z;
        const OA_2.OAPM_1// OAx Power mode select: Slow;
        const OA_2.OAPM_2// OAx Power mode select: Medium;
        const OA_2.OAPM_3// OAx Power mode select: 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// OAxIA (see the device-specific data sheet for connected signal);
        const OA_2.OAP_3// OAxIB (see the device-specific data sheet for connected signal);
    values of type OA_2.OARRIP_t//
        const OA_2.OARRIP_OFF;
        const OA_2.OARRIP;
    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.addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds) returns Void
     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;
    const OA_2.OAADC0;
enum OA_2.OAADC1_t
index URL
XDCscript usage meta-domain
values of type OA_2.OAADC1_t
    const OA_2.OAADC1_OFF;
    const OA_2.OAADC1;
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;
    const OA_2.OAFBR_1;
    const OA_2.OAFBR_2;
    const OA_2.OAFBR_3;
    const OA_2.OAFBR_4;
    const OA_2.OAFBR_5;
    const OA_2.OAFBR_6;
    const OA_2.OAFBR_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;
    const OA_2.OAFC_1;
    const OA_2.OAFC_2;
    const OA_2.OAFC_3;
    const OA_2.OAFC_4;
    const OA_2.OAFC_5;
    const OA_2.OAFC_6;
    const OA_2.OAFC_7;
enum OA_2.OANEXT_t
index URL
XDCscript usage meta-domain
values of type OA_2.OANEXT_t
    const OA_2.OANEXT_OFF;
    const OA_2.OANEXT;
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;
    // OAxIA (see the device-specific data sheet for connected signal)
    const OA_2.OAN_3;
    // OAxIB (see the device-specific data sheet for connected signal)
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;
    // OAx Power mode select: Off, output high Z
    const OA_2.OAPM_1;
    // OAx Power mode select: Slow
    const OA_2.OAPM_2;
    // OAx Power mode select: Medium
    const OA_2.OAPM_3;
    // OAx Power mode select: 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;
    // OAxIA (see the device-specific data sheet for connected signal)
    const OA_2.OAP_3;
    // OAxIB (see the device-specific data sheet for connected signal)
enum OA_2.OARRIP_t
index URL
XDCscript usage meta-domain
values of type OA_2.OARRIP_t
    const OA_2.OARRIP_OFF;
    const OA_2.OARRIP;
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.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCscript usage meta-domain
OA_2.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.
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 Wed, 08 Dec 2010 20:09:03 GMT


module ti.catalog.msp430.peripherals.oa.OA_3

metaonly module ti.catalog.msp430.peripherals.oa.OA_3
index URL

MSP430 General Purpose Operational Amplifier

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/catalog/msp430/peripherals/oa/OA_3.xdc
var OA_3 = xdc.useModule('ti.catalog.msp430.peripherals.oa.OA_3');
module-wide constants & types
    values of type OA_3.OAADC0_t//
        const OA_3.OAADC0_OFF;
        const OA_3.OAADC0;
    values of type OA_3.OAADC1_t//
        const OA_3.OAADC1_OFF;
        const OA_3.OAADC1;
    values of type OA_3.OAFBR_t// OAx feedback resistor select
        const OA_3.OAFBR_0;
        const OA_3.OAFBR_1;
        const OA_3.OAFBR_2;
        const OA_3.OAFBR_3;
        const OA_3.OAFBR_4;
        const OA_3.OAFBR_5;
        const OA_3.OAFBR_6;
        const OA_3.OAFBR_7;
    values of type OA_3.OAFC_t// OAx function control
        const OA_3.OAFC_0;
        const OA_3.OAFC_1;
        const OA_3.OAFC_2;
        const OA_3.OAFC_3;
        const OA_3.OAFC_4;
        const OA_3.OAFC_5;
        const OA_3.OAFC_6;
        const OA_3.OAFC_7;
    values of type OA_3.OANEXT_t//
        const OA_3.OANEXT_OFF;
        const OA_3.OANEXT;
    values of type OA_3.OAN_t// Inverting input selection
        const OA_3.OAN_0// OAxI0;
        const OA_3.OAN_1// OAxI1;
        const OA_3.OAN_2// OAxIA (see the device-specific data sheet for connected signal);
        const OA_3.OAN_3// OAxIB (see the device-specific data sheet for connected signal);
    values of type OA_3.OAPM_t// Slew rate select
        const OA_3.OAPM_0// OAx Power mode select: Off, output high Z;
        const OA_3.OAPM_1// OAx Power mode select: Slow;
        const OA_3.OAPM_2// OAx Power mode select: Medium;
        const OA_3.OAPM_3// OAx Power mode select: Fast;
    values of type OA_3.OAP_t// Non-inverting input selection
        const OA_3.OAP_0// OAxI0;
        const OA_3.OAP_1// OAxI1;
        const OA_3.OAP_2// OAxIA (see the device-specific data sheet for connected signal);
        const OA_3.OAP_3// OAxIB (see the device-specific data sheet for connected signal);
    values of type OA_3.OARRIP_t//
        const OA_3.OARRIP_OFF;
        const OA_3.OARRIP;
    var obj = new OA_3.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new OA_3.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_3.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_3.addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds) returns Void
     OA_3.getAll// Find all peripherals of a certain type() returns IPeripheral.Instance[]
     OA_3.getRegisters// Find all registers defined by the peripheral() returns String[]
per-instance config parameters
    var params = new OA_3.Params// Instance config-params object;
        params.OA0CTL0// OA0 control register 0 = OA_3.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_3.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_3.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_3.OAxCTL1_t {
        OAFBR: IOA.OAFBR_0,
        OAFC: IOA.OAFC_0,
        OANEXT: IOA.OANEXT_OFF,
        OARRIP: IOA.OARRIP_OFF
    };
        params.OA2CTL0// OA2 control register 0 = OA_3.OAxCTL0_t {
        OAN: IOA.OAN_0,
        OAP: IOA.OAP_0,
        OAPM: IOA.OAPM_0,
        OAADC0: IOA.OAADC0_OFF,
        OAADC1: IOA.OAADC1_OFF
    };
        params.OA2CTL1// OA2 control register 1 = OA_3.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_3.ForceSetDefaultRegister_t[] [
        {
            register: "OA0CTL0",
            regForceSet: false
        },
        {
            register: "OA0CTL1",
            regForceSet: false
        },
        {
            register: "OA1CTL0",
            regForceSet: false
        },
        {
            register: "OA1CTL1",
            regForceSet: false
        },
        {
            register: "OA2CTL0",
            regForceSet: false
        },
        {
            register: "OA2CTL1",
            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_3.create// Create an instance-object(params);
per-instance functions
     inst.getNumberOfOA// Returns the number of available OA() returns UChar
enum OA_3.OAADC0_t
index URL
XDCscript usage meta-domain
values of type OA_3.OAADC0_t
    const OA_3.OAADC0_OFF;
    const OA_3.OAADC0;
enum OA_3.OAADC1_t
index URL
XDCscript usage meta-domain
values of type OA_3.OAADC1_t
    const OA_3.OAADC1_OFF;
    const OA_3.OAADC1;
enum OA_3.OAFBR_t
index URL

OAx feedback resistor select

XDCscript usage meta-domain
values of type OA_3.OAFBR_t
    const OA_3.OAFBR_0;
    const OA_3.OAFBR_1;
    const OA_3.OAFBR_2;
    const OA_3.OAFBR_3;
    const OA_3.OAFBR_4;
    const OA_3.OAFBR_5;
    const OA_3.OAFBR_6;
    const OA_3.OAFBR_7;
enum OA_3.OAFC_t
index URL

OAx function control

XDCscript usage meta-domain
values of type OA_3.OAFC_t
    const OA_3.OAFC_0;
    const OA_3.OAFC_1;
    const OA_3.OAFC_2;
    const OA_3.OAFC_3;
    const OA_3.OAFC_4;
    const OA_3.OAFC_5;
    const OA_3.OAFC_6;
    const OA_3.OAFC_7;
enum OA_3.OANEXT_t
index URL
XDCscript usage meta-domain
values of type OA_3.OANEXT_t
    const OA_3.OANEXT_OFF;
    const OA_3.OANEXT;
enum OA_3.OAN_t
index URL

Inverting input selection

XDCscript usage meta-domain
values of type OA_3.OAN_t
    const OA_3.OAN_0;
    // OAxI0
    const OA_3.OAN_1;
    // OAxI1
    const OA_3.OAN_2;
    // OAxIA (see the device-specific data sheet for connected signal)
    const OA_3.OAN_3;
    // OAxIB (see the device-specific data sheet for connected signal)
enum OA_3.OAPM_t
index URL

Slew rate select

XDCscript usage meta-domain
values of type OA_3.OAPM_t
    const OA_3.OAPM_0;
    // OAx Power mode select: Off, output high Z
    const OA_3.OAPM_1;
    // OAx Power mode select: Slow
    const OA_3.OAPM_2;
    // OAx Power mode select: Medium
    const OA_3.OAPM_3;
    // OAx Power mode select: Fast
enum OA_3.OAP_t
index URL

Non-inverting input selection

XDCscript usage meta-domain
values of type OA_3.OAP_t
    const OA_3.OAP_0;
    // OAxI0
    const OA_3.OAP_1;
    // OAxI1
    const OA_3.OAP_2;
    // OAxIA (see the device-specific data sheet for connected signal)
    const OA_3.OAP_3;
    // OAxIB (see the device-specific data sheet for connected signal)
enum OA_3.OARRIP_t
index URL
XDCscript usage meta-domain
values of type OA_3.OARRIP_t
    const OA_3.OARRIP_OFF;
    const OA_3.OARRIP;
struct OA_3.ForceSetDefaultRegister_t
index URL

Force Set Default Register

XDCscript usage meta-domain
var obj = new OA_3.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_3.OAxCTL0_t
index URL

Opamp Control Register 0 Definition

XDCscript usage meta-domain
var obj = new OA_3.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_3.OAxCTL1_t
index URL

Opamp Control Register 1 Definition

XDCscript usage meta-domain
var obj = new OA_3.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_3.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCscript usage meta-domain
OA_3.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.
OA_3.getAll() // module-wide
index URL

Find all peripherals of a certain type

XDCscript usage meta-domain
OA_3.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_3.getRegisters() // module-wide
index URL

Find all registers defined by the peripheral

XDCscript usage meta-domain
OA_3.getRegisters() returns String[]
RETURNS
Returns an array of register names
Instance Config Parameters
index URL

XDCscript usage meta-domain
var params = new OA_3.Params;
// Instance config-params object
    params.OA0CTL0 = OA_3.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_3.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_3.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_3.OAxCTL1_t {
    // OA1 control register 1
    OAFBR: IOA.OAFBR_0,
    OAFC: IOA.OAFC_0,
    OANEXT: IOA.OANEXT_OFF,
    OARRIP: IOA.OARRIP_OFF
};
    params.OA2CTL0 = OA_3.OAxCTL0_t {
    // OA2 control register 0
    OAN: IOA.OAN_0,
    OAP: IOA.OAP_0,
    OAPM: IOA.OAPM_0,
    OAADC0: IOA.OAADC0_OFF,
    OAADC1: IOA.OAADC1_OFF
};
    params.OA2CTL1 = OA_3.OAxCTL1_t {
    // OA2 control register 1
    OAFBR: IOA.OAFBR_0,
    OAFC: IOA.OAFC_0,
    OANEXT: IOA.OANEXT_OFF,
    OARRIP: IOA.OARRIP_OFF
};
    params.forceSetDefaultRegister = OA_3.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
    },
    {
        register: "OA2CTL0",
        regForceSet: false
    },
    {
        register: "OA2CTL1",
        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_3.OA0CTL0 // instance
index URL

OA0 control register 0

XDCscript usage meta-domain
var params = new OA_3.Params;
...
params.OA0CTL0 = OA_3.OAxCTL0_t {
    OAN: IOA.OAN_0,
    OAP: IOA.OAP_0,
    OAPM: IOA.OAPM_0,
    OAADC0: IOA.OAADC0_OFF,
    OAADC1: IOA.OAADC1_OFF
};
config OA_3.OA0CTL1 // instance
index URL

OA0 control register 1

XDCscript usage meta-domain
var params = new OA_3.Params;
...
params.OA0CTL1 = OA_3.OAxCTL1_t {
    OAFBR: IOA.OAFBR_0,
    OAFC: IOA.OAFC_0,
    OANEXT: IOA.OANEXT_OFF,
    OARRIP: IOA.OARRIP_OFF
};
config OA_3.OA1CTL0 // instance
index URL

OA1 control register 0

XDCscript usage meta-domain
var params = new OA_3.Params;
...
params.OA1CTL0 = OA_3.OAxCTL0_t {
    OAN: IOA.OAN_0,
    OAP: IOA.OAP_0,
    OAPM: IOA.OAPM_0,
    OAADC0: IOA.OAADC0_OFF,
    OAADC1: IOA.OAADC1_OFF
};
config OA_3.OA1CTL1 // instance
index URL

OA1 control register 1

XDCscript usage meta-domain
var params = new OA_3.Params;
...
params.OA1CTL1 = OA_3.OAxCTL1_t {
    OAFBR: IOA.OAFBR_0,
    OAFC: IOA.OAFC_0,
    OANEXT: IOA.OANEXT_OFF,
    OARRIP: IOA.OARRIP_OFF
};
config OA_3.OA2CTL0 // instance
index URL

OA2 control register 0

XDCscript usage meta-domain
var params = new OA_3.Params;
...
params.OA2CTL0 = OA_3.OAxCTL0_t {
    OAN: IOA.OAN_0,
    OAP: IOA.OAP_0,
    OAPM: IOA.OAPM_0,
    OAADC0: IOA.OAADC0_OFF,
    OAADC1: IOA.OAADC1_OFF
};
config OA_3.OA2CTL1 // instance
index URL

OA2 control register 1

XDCscript usage meta-domain
var params = new OA_3.Params;
...
params.OA2CTL1 = OA_3.OAxCTL1_t {
    OAFBR: IOA.OAFBR_0,
    OAFC: IOA.OAFC_0,
    OANEXT: IOA.OANEXT_OFF,
    OARRIP: IOA.OARRIP_OFF
};
config OA_3.forceSetDefaultRegister // instance
index URL

Determine if each Register needs to be forced set or not

XDCscript usage meta-domain
var params = new OA_3.Params;
...
const params.forceSetDefaultRegister = OA_3.ForceSetDefaultRegister_t[] [
    {
        register: "OA0CTL0",
        regForceSet: false
    },
    {
        register: "OA0CTL1",
        regForceSet: false
    },
    {
        register: "OA1CTL0",
        regForceSet: false
    },
    {
        register: "OA1CTL1",
        regForceSet: false
    },
    {
        register: "OA2CTL0",
        regForceSet: false
    },
    {
        register: "OA2CTL1",
        regForceSet: false
    }
];
config OA_3.name // instance
index URL

Specific peripheral name given by the device

XDCscript usage meta-domain
var params = new OA_3.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_3.owner // instance
index URL

String specifying the entity that manages the peripheral

XDCscript usage meta-domain
var params = new OA_3.Params;
...
params.owner = String undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new OA_3.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = OA_3.create(params);
// Create an instance-object
OA_3.getNumberOfOA() // instance
index URL

Returns the number of available OA

XDCscript usage meta-domain
inst.getNumberOfOA() returns UChar
generated on Wed, 08 Dec 2010 20:09:03 GMT


package ti.catalog.msp430.peripherals.special_function
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/special_function/package.xdc
package ti.catalog.msp430.peripherals.special_function {
    module IE1;
    // MSP430 Interrupt Enable Register 1
    module IE2;
    // MSP430 Interrupt Enable Register 2
}
generated on Wed, 08 Dec 2010 20:09:04 GMT


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.NMIE_t//
        const IE1.NMIE_OFF;
        const IE1.NMIE;
    values of type IE1.OFIE_t//
        const IE1.OFIE_OFF// Interrupt not enabled;
        const IE1.OFIE// Interrupt enabled;
    values of type IE1.WDTIE_t//
        const IE1.WDTIE_OFF;
        const IE1.WDTIE;
    var obj = new IE1.ForceSetDefaultRegister_t// Force Set Default Register;
        obj.register = String ...
        obj.regForceSet = Bool ...
    var obj = new IE1.IE1_t// ;
        obj.NMIE = IE1.NMIE_t ...
        obj.OFIE = IE1.OFIE_t ...
        obj.WDTIE = IE1.WDTIE_t ...
module-wide functions
     IE1.addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds) returns Void
     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 {
        NMIE: IE1.NMIE_OFF,
        OFIE: IE1.OFIE_OFF,
        WDTIE: IE1.WDTIE_OFF
    };
        params.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = IE1.ForceSetDefaultRegister_t[] [
        {
            register: "IE1",
            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.getNMIE// Gets NMIE bit() returns Bool
     inst.getOFIE// Gets OFIE bit() returns Bool
     inst.getWDTIE// Gets WDTIE bit() returns Bool
     inst.setNMIE// Sets NMIE bit(Bool set) returns Bool
     inst.setOFIE// Sets OFIE bit(Bool set) returns Bool
     inst.setWDTIE// Sets WDTIE bit(Bool set) returns Bool
enum IE1.NMIE_t
index URL
XDCscript usage meta-domain
values of type IE1.NMIE_t
    const IE1.NMIE_OFF;
    const IE1.NMIE;
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.WDTIE_t
index URL
XDCscript usage meta-domain
values of type IE1.WDTIE_t
    const IE1.WDTIE_OFF;
    const IE1.WDTIE;
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.NMIE = IE1.NMIE_t ...
    obj.OFIE = IE1.OFIE_t ...
    obj.WDTIE = IE1.WDTIE_t ...
IE1.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCscript usage meta-domain
IE1.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.
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
    NMIE: IE1.NMIE_OFF,
    OFIE: IE1.OFIE_OFF,
    WDTIE: IE1.WDTIE_OFF
};
    params.forceSetDefaultRegister = IE1.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
    {
        register: "IE1",
        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 IE1.IE1 // instance
index URL

IE1, Interrupt Enable Register 1

XDCscript usage meta-domain
var params = new IE1.Params;
...
params.IE1 = IE1.IE1_t {
    NMIE: IE1.NMIE_OFF,
    OFIE: IE1.OFIE_OFF,
    WDTIE: IE1.WDTIE_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
    }
];
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.getNMIE() // instance
index URL

Gets NMIE bit

XDCscript usage meta-domain
inst.getNMIE() returns Bool
SEE
getNMIE
IE1.getOFIE() // instance
index URL

Gets OFIE bit

XDCscript usage meta-domain
inst.getOFIE() returns Bool
SEE
getOFIE
IE1.getWDTIE() // instance
index URL

Gets WDTIE bit

XDCscript usage meta-domain
inst.getWDTIE() returns Bool
SEE
getWDTIE
IE1.setNMIE() // instance
index URL

Sets NMIE bit

XDCscript usage meta-domain
inst.setNMIE(Bool set) returns Bool
SEE
setNMIE
IE1.setOFIE() // instance
index URL

Sets OFIE bit

XDCscript usage meta-domain
inst.setOFIE(Bool set) returns Bool
SEE
setOFIE
IE1.setWDTIE() // instance
index URL

Sets WDTIE bit

XDCscript usage meta-domain
inst.setWDTIE(Bool set) returns Bool
SEE
setWDTIE
generated on Wed, 08 Dec 2010 20:09:04 GMT


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.UCA0TXIE_t//
        const IE2.UCA0TXIE_OFF// Interrupt disabled;
        const IE2.UCA0TXIE// Interrupt enabled;
    values of type IE2.UCB0RXIE_t//
        const IE2.UCB0RXIE_OFF// Interrupt disabled;
        const IE2.UCB0RXIE// Interrupt enabled;
    values of type IE2.UCB0TXIE_t//
        const IE2.UCB0TXIE_OFF// Interrupt disabled;
        const IE2.UCB0TXIE// Interrupt enabled;
    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 ...
module-wide functions
     IE2.addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds) returns Void
     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.forceSetDefaultRegister// Determine if each Register needs to be forced set or not = IE2.ForceSetDefaultRegister_t[] [
        {
            register: "IE2",
            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.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.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.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.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
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
IE2.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCscript usage meta-domain
IE2.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.
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.forceSetDefaultRegister = IE2.ForceSetDefaultRegister_t[] [
    // Determine if each Register needs to be forced set or not
    {
        register: "IE2",
        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 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.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
    }
];
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 Wed, 08 Dec 2010 20:09:04 GMT


package ti.catalog.msp430.peripherals.timer
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/package.xdc
requires ti.catalog.msp430.peripherals.clock;
package ti.catalog.msp430.peripherals.timer {
    interface ITimer_A;
    // MSP430 ITimer_A interface
    interface ITimer_B;
    // MSP430 ITimer_B interface
    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 Wed, 08 Dec 2010 20:09:05 GMT


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 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 IPeripheral {
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;
    };
module-wide functions
    Void addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds);
     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 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);
per-instance functions
    UChar getNumberOfTimers// ();
}
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
ITimer_A.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
Void addPeripheralsMap(ICpuDataSheet.Instance cds);
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.
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.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.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.getNumberOfTimers() // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_A.xdc
UChar getNumberOfTimers();
generated on Wed, 08 Dec 2010 20:09:04 GMT


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 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 IPeripheral {
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;
    };
module-wide functions
    Void addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds);
     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 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);
per-instance functions
    UChar getNumberOfTimers// ();
}
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
ITimer_B.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
Void addPeripheralsMap(ICpuDataSheet.Instance cds);
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.
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.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.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.getNumberOfTimers() // instance
index URL
XDCspec declarations sourced in ti/catalog/msp430/peripherals/timer/ITimer_B.xdc
UChar getNumberOfTimers();
generated on Wed, 08 Dec 2010 20:09:04 GMT


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 ...
module-wide functions
     Timer_A3.addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds) returns Void
     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 = Int 0;
        params.TACCR1// TACCR1, Timer_A Capture/Compare Register 1 = Int 0;
        params.TACCR2// TACCR2, Timer_A Capture/Compare Register 2 = Int 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.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 = Timer_A3.create// Create an instance-object(IClock.Instance clock, params);
per-instance functions
     inst.getNumberOfTimers// () returns UChar
     inst.getTimer_A_OUT// Returns Timer_A OUT in ms rising-edge interval based on a channel input(UChar channel) returns Float
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
Timer_A3.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCscript usage meta-domain
Timer_A3.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.
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 = Int 0;
    // TACCR0, Timer_A Capture/Compare Register 0
    params.TACCR1 = Int 0;
    // TACCR1, Timer_A Capture/Compare Register 1
    params.TACCR2 = Int 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.name = String undefined;
    // Specific peripheral name given by the device
    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 = Int 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 = Int 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 = Int 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.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.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.getNumberOfTimers() // instance
index URL
XDCscript usage meta-domain
inst.getNumberOfTimers() returns UChar
Timer_A3.getTimer_A_OUT() // instance
index URL

Returns Timer_A OUT in ms rising-edge interval based on a channel input

XDCscript usage meta-domain
inst.getTimer_A_OUT(UChar channel) returns Float
DETAILS
This function calculates a time base rising-edge of clock based on clock source, TxCCRx register and OUTMOD settings.
SEE
getTimer_A_OUT
generated on Wed, 08 Dec 2010 20:09:05 GMT


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 ...
module-wide functions
     Timer_A5.addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds) returns Void
     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 = Int 0;
        params.TACCR1// Capture/Compare 1 = Int 0;
        params.TACCR2// Capture/Compare 2 = Int 0;
        params.TACCR3// Capture/Compare 3 = Int 0;
        params.TACCR4// Capture/Compare 4 = Int 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.name// Specific peripheral name given by the device = String "TimerA5";
        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.getNumberOfTimers// () returns UChar
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
Timer_A5.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCscript usage meta-domain
Timer_A5.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.
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 = Int 0;
    // Capture/Compare 0
    params.TACCR1 = Int 0;
    // Capture/Compare 1
    params.TACCR2 = Int 0;
    // Capture/Compare 2
    params.TACCR3 = Int 0;
    // Capture/Compare 3
    params.TACCR4 = Int 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.name = String "TimerA5";
    // Specific peripheral name given by the device
    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 = Int 0;
config Timer_A5.TACCR1 // instance
index URL

Capture/Compare 1

XDCscript usage meta-domain
var params = new Timer_A5.Params;
...
params.TACCR1 = Int 0;
config Timer_A5.TACCR2 // instance
index URL

Capture/Compare 2

XDCscript usage meta-domain
var params = new Timer_A5.Params;
...
params.TACCR2 = Int 0;
config Timer_A5.TACCR3 // instance
index URL

Capture/Compare 3

XDCscript usage meta-domain
var params = new Timer_A5.Params;
...
params.TACCR3 = Int 0;
config Timer_A5.TACCR4 // instance
index URL

Capture/Compare 4

XDCscript usage meta-domain
var params = new Timer_A5.Params;
...
params.TACCR4 = Int 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.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.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.getNumberOfTimers() // instance
index URL
XDCscript usage meta-domain
inst.getNumberOfTimers() returns UChar
generated on Wed, 08 Dec 2010 20:09:05 GMT


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 ...
module-wide functions
     Timer_B3.addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds) returns Void
     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 = Int 0;
        params.TBCCR1// TBCCR1, Timer_B Capture/Compare Register 1 = Int 0;
        params.TBCCR2// TBCCR2, Timer_B Capture/Compare Register 2 = Int 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.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 = Timer_B3.create// Create an instance-object(IClock.Instance clock, params);
per-instance functions
     inst.getNumberOfTimers// () returns UChar
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
Timer_B3.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCscript usage meta-domain
Timer_B3.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.
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 = Int 0;
    // TBCCR0, Timer_B Capture/Compare Register 0
    params.TBCCR1 = Int 0;
    // TBCCR1, Timer_B Capture/Compare Register 1
    params.TBCCR2 = Int 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.name = String undefined;
    // Specific peripheral name given by the device
    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 = Int 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 = Int 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 = Int 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.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.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.getNumberOfTimers() // instance
index URL
XDCscript usage meta-domain
inst.getNumberOfTimers() returns UChar
generated on Wed, 08 Dec 2010 20:09:05 GMT


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// TB7IV 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 ...
module-wide functions
     Timer_B7.addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds) returns Void
     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 = Int 0;
        params.TBCCR1// TBCCR1, Timer_B Capture/Compare Register 1 = Int 0;
        params.TBCCR2// TBCCR2, Timer_B Capture/Compare Register 2 = Int 0;
        params.TBCCR3// TBCCR3, Timer_B Capture/Compare Register 3 = Int 0;
        params.TBCCR4// TBCCR4, Timer_B Capture/Compare Register 4 = Int 0;
        params.TBCCR5// TBCCR5, Timer_B Capture/Compare Register 5 = Int 0;
        params.TBCCR6// TBCCR6, Timer_B Capture/Compare Register 6 = Int 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.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 = Timer_B7.create// Create an instance-object(IClock.Instance clock, params);
per-instance functions
     inst.getNumberOfTimers// () returns UChar
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

TB7IV 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
Timer_B7.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCscript usage meta-domain
Timer_B7.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.
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 = Int 0;
    // TBCCR0, Timer_B Capture/Compare Register 0
    params.TBCCR1 = Int 0;
    // TBCCR1, Timer_B Capture/Compare Register 1
    params.TBCCR2 = Int 0;
    // TBCCR2, Timer_B Capture/Compare Register 2
    params.TBCCR3 = Int 0;
    // TBCCR3, Timer_B Capture/Compare Register 3
    params.TBCCR4 = Int 0;
    // TBCCR4, Timer_B Capture/Compare Register 4
    params.TBCCR5 = Int 0;
    // TBCCR5, Timer_B Capture/Compare Register 5
    params.TBCCR6 = Int 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.name = String undefined;
    // Specific peripheral name given by the device
    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 = Int 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 = Int 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 = Int 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 = Int 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 = Int 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 = Int 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 = Int 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.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.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.getNumberOfTimers() // instance
index URL
XDCscript usage meta-domain
inst.getNumberOfTimers() returns UChar
generated on Wed, 08 Dec 2010 20:09:05 GMT


package ti.catalog.msp430.peripherals.watchdog
index URL
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 {
    interface IWDT;
    // MSP430 Watchdog Timer Interface
    module WDTPlus;
    // MSP430 Watchdog Timer+
}
generated on Wed, 08 Dec 2010 20:09:06 GMT


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
    Void addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds);
     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.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCspec declarations sourced in ti/catalog/msp430/peripherals/watchdog/IWDT.xdc
Void addPeripheralsMap(ICpuDataSheet.Instance cds);
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.
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 Wed, 08 Dec 2010 20:09:05 GMT


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;
        const WDTPlus.WDTCNTCL;
    values of type WDTPlus.WDTHOLD_t//
        const WDTPlus.WDTHOLD_OFF;
        const WDTPlus.WDTHOLD;
    values of type WDTPlus.WDTIS0_t//
        const WDTPlus.WDTIS0_OFF;
        const WDTPlus.WDTIS0;
    values of type WDTPlus.WDTIS1_t//
        const WDTPlus.WDTIS1_OFF;
        const WDTPlus.WDTIS1;
    values of type WDTPlus.WDTNMIES_t//
        const WDTPlus.WDTNMIES_OFF;
        const WDTPlus.WDTNMIES;
    values of type WDTPlus.WDTNMI_t//
        const WDTPlus.WDTNMI_OFF;
        const WDTPlus.WDTNMI;
    values of type WDTPlus.WDTPW_t//
        const WDTPlus.WDTPW_OFF;
        const WDTPlus.WDTPW;
    values of type WDTPlus.WDTSSEL_t//
        const WDTPlus.WDTSSEL_OFF;
        const WDTPlus.WDTSSEL;
    values of type WDTPlus.WDTTMSEL_t//
        const WDTPlus.WDTTMSEL_OFF;
        const WDTPlus.WDTTMSEL;
    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.addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds) returns Void
     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: 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 = WDTPlus.create// Create an instance-object(IClock.Instance clock, IE1.Instance interruptEnableRegister1, params);
enum WDTPlus.WDTCNTCL_t
index URL
XDCscript usage meta-domain
values of type WDTPlus.WDTCNTCL_t
    const WDTPlus.WDTCNTCL_OFF;
    const WDTPlus.WDTCNTCL;
enum WDTPlus.WDTHOLD_t
index URL
XDCscript usage meta-domain
values of type WDTPlus.WDTHOLD_t
    const WDTPlus.WDTHOLD_OFF;
    const WDTPlus.WDTHOLD;
enum WDTPlus.WDTIS0_t
index URL
XDCscript usage meta-domain
values of type WDTPlus.WDTIS0_t
    const WDTPlus.WDTIS0_OFF;
    const WDTPlus.WDTIS0;
enum WDTPlus.WDTIS1_t
index URL
XDCscript usage meta-domain
values of type WDTPlus.WDTIS1_t
    const WDTPlus.WDTIS1_OFF;
    const WDTPlus.WDTIS1;
enum WDTPlus.WDTNMIES_t
index URL
XDCscript usage meta-domain
values of type WDTPlus.WDTNMIES_t
    const WDTPlus.WDTNMIES_OFF;
    const WDTPlus.WDTNMIES;
enum WDTPlus.WDTNMI_t
index URL
XDCscript usage meta-domain
values of type WDTPlus.WDTNMI_t
    const WDTPlus.WDTNMI_OFF;
    const WDTPlus.WDTNMI;
enum WDTPlus.WDTPW_t
index URL
XDCscript usage meta-domain
values of type WDTPlus.WDTPW_t
    const WDTPlus.WDTPW_OFF;
    const WDTPlus.WDTPW;
enum WDTPlus.WDTSSEL_t
index URL
XDCscript usage meta-domain
values of type WDTPlus.WDTSSEL_t
    const WDTPlus.WDTSSEL_OFF;
    const WDTPlus.WDTSSEL;
enum WDTPlus.WDTTMSEL_t
index URL
XDCscript usage meta-domain
values of type WDTPlus.WDTTMSEL_t
    const WDTPlus.WDTTMSEL_OFF;
    const WDTPlus.WDTTMSEL;
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.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCscript usage meta-domain
WDTPlus.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.
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: 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 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: false
    }
];
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, IE1.Instance interruptEnableRegister1, params);
// Create an instance-object
generated on Wed, 08 Dec 2010 20:09:06 GMT


package ti.catalog.peripherals.hdvicp2
index URL
XDCspec declarations sourced in ti/catalog/peripherals/hdvicp2/package.xdc
package ti.catalog.peripherals.hdvicp2 {
    module HDVICP2;
}
generated on Wed, 08 Dec 2010 20:08:18 GMT


module ti.catalog.peripherals.hdvicp2.HDVICP2

metaonly module ti.catalog.peripherals.hdvicp2.HDVICP2
index URL
  • 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.addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds) returns Void
     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.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCscript usage meta-domain
HDVICP2.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.
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 Wed, 08 Dec 2010 20:08:18 GMT


package ti.catalog.t16
index URL

Package of devices for the t16 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/t16/package.xdc
requires xdc.platform;
package ti.catalog.t16 [1, 0, 0, 0] {
    module T16v200;
    // The T16v200 device data sheet module
}
generated on Wed, 08 Dec 2010 20:08:18 GMT


module ti.catalog.t16.T16v200

metaonly module ti.catalog.t16.T16v200
index URL

The T16v200 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/t16/T16v200.xdc
var T16v200 = xdc.useModule('ti.catalog.t16.T16v200');
per-instance config parameters
    var params = new T16v200.Params// Instance config-params object;
        params.cpuCore// A string identifying the CPU Core = String "TORRENT_T16";
        params.cpuCoreRevision// A string that uniquely 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] [
        [
            "CODEMEM",
            {
                comment: "256MB T16 code memory",
                name: "CODEMEM",
                base: 0x0,
                len: 0x10000000,
                space: "code",
                access: "RX"
            }
        ],
        [
            "DMEM",
            {
                comment: "32KB T16 data memory",
                name: "DMEM",
                base: 0x10020000,
                len: 0x8000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "WBUF",
            {
                comment: "VCOP work buffer",
                name: "WBUF",
                base: 0x10040000,
                len: 0x8000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "IBUFLA",
            {
                comment: "Image buffer low copy A",
                name: "IBUFLA",
                base: 0x10050000,
                len: 0x4000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "IBUFHA",
            {
                comment: "Image buffer high copy A",
                name: "IBUFHA",
                base: 0x10054000,
                len: 0x4000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "IBUFLB",
            {
                comment: "Image buffer low copy B",
                name: "IBUFLB",
                base: 0x10070000,
                len: 0x4000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "IBUFHB",
            {
                comment: "Image buffer high copy B",
                name: "IBUFHB",
                base: 0x10074000,
                len: 0x4000,
                space: "data",
                access: "RW"
            }
        ],
        [
            "L3MEM",
            {
                comment: "1MB L3 Memory",
                name: "L3MEM",
                base: 0x7FF00000,
                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// The map of peripherals available on the device = IPeripheral.Instance[string] undefined;
per-instance creation
    var inst = T16v200.create// Create an instance-object(String revision, params);
per-instance functions
     inst.getMemoryMap// Get the memory map that corresponds 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 T16v200.Params;
// Instance config-params object
    params.cpuCore = String "TORRENT_T16";
    // 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()
    [
        "CODEMEM",
        {
            comment: "256MB T16 code memory",
            name: "CODEMEM",
            base: 0x0,
            len: 0x10000000,
            space: "code",
            access: "RX"
        }
    ],
    [
        "DMEM",
        {
            comment: "32KB T16 data memory",
            name: "DMEM",
            base: 0x10020000,
            len: 0x8000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "WBUF",
        {
            comment: "VCOP work buffer",
            name: "WBUF",
            base: 0x10040000,
            len: 0x8000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "IBUFLA",
        {
            comment: "Image buffer low copy A",
            name: "IBUFLA",
            base: 0x10050000,
            len: 0x4000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "IBUFHA",
        {
            comment: "Image buffer high copy A",
            name: "IBUFHA",
            base: 0x10054000,
            len: 0x4000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "IBUFLB",
        {
            comment: "Image buffer low copy B",
            name: "IBUFLB",
            base: 0x10070000,
            len: 0x4000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "IBUFHB",
        {
            comment: "Image buffer high copy B",
            name: "IBUFHB",
            base: 0x10074000,
            len: 0x4000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "L3MEM",
        {
            comment: "1MB L3 Memory",
            name: "L3MEM",
            base: 0x7FF00000,
            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;
    // The map of peripherals available on the device
config T16v200.cpuCore // instance
index URL

A string identifying the CPU Core

XDCscript usage meta-domain
var params = new T16v200.Params;
...
params.cpuCore = String "TORRENT_T16";
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
config T16v200.cpuCoreRevision // instance
index URL

A string that uniquely identifies a revision of the core

XDCscript usage meta-domain
var params = new T16v200.Params;
...
params.cpuCoreRevision = String "1.0";
config T16v200.dataWordSize // instance
index URL

The size of an int on the target in 8-bit bytes

XDCscript usage meta-domain
var params = new T16v200.Params;
...
params.dataWordSize = Int 4;
config T16v200.deviceHeader // instance
index URL

The optional header file that define device specific constants and structures

XDCscript usage meta-domain
var params = new T16v200.Params;
...
params.deviceHeader = String undefined;
config T16v200.memMap // instance
index URL

The memory map returned be getMemoryMap()

XDCscript usage meta-domain
var params = new T16v200.Params;
...
params.memMap = IPlatform.Memory[string] [
    [
        "CODEMEM",
        {
            comment: "256MB T16 code memory",
            name: "CODEMEM",
            base: 0x0,
            len: 0x10000000,
            space: "code",
            access: "RX"
        }
    ],
    [
        "DMEM",
        {
            comment: "32KB T16 data memory",
            name: "DMEM",
            base: 0x10020000,
            len: 0x8000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "WBUF",
        {
            comment: "VCOP work buffer",
            name: "WBUF",
            base: 0x10040000,
            len: 0x8000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "IBUFLA",
        {
            comment: "Image buffer low copy A",
            name: "IBUFLA",
            base: 0x10050000,
            len: 0x4000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "IBUFHA",
        {
            comment: "Image buffer high copy A",
            name: "IBUFHA",
            base: 0x10054000,
            len: 0x4000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "IBUFLB",
        {
            comment: "Image buffer low copy B",
            name: "IBUFLB",
            base: 0x10070000,
            len: 0x4000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "IBUFHB",
        {
            comment: "Image buffer high copy B",
            name: "IBUFHB",
            base: 0x10074000,
            len: 0x4000,
            space: "data",
            access: "RW"
        }
    ],
    [
        "L3MEM",
        {
            comment: "1MB L3 Memory",
            name: "L3MEM",
            base: 0x7FF00000,
            len: 0x00100000,
            space: "code/data",
            access: "RWX"
        }
    ]
];
config T16v200.minDataUnitSize // instance
index URL

The minimum addressable data unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new T16v200.Params;
...
params.minDataUnitSize = Int 1;
config T16v200.minProgUnitSize // instance
index URL

The minimum addressable program unit size in 8-bit bytes

XDCscript usage meta-domain
var params = new T16v200.Params;
...
params.minProgUnitSize = Int 1;
config T16v200.peripherals // instance
index URL

The map of peripherals available on the device

XDCscript usage meta-domain
var params = new T16v200.Params;
...
params.peripherals = IPeripheral.Instance[string] undefined;
Instance Creation
index URL

XDCscript usage meta-domain
var params = new T16v200.Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = T16v200.create(String revision, params);
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
T16v200.getMemoryMap() // instance
index URL

Get the memory map that corresponds to the values of the specified registers

XDCscript usage meta-domain
inst.getMemoryMap(Any registers) returns Any
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
T16v200.getRegisterSet() // instance
index URL

The set of valid register names for this CPU

XDCscript usage meta-domain
inst.getRegisterSet() returns Any
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Wed, 08 Dec 2010 20:08:18 GMT


package ti.mcu.msp430
index URL

Header and linker command files for msp430 devices

XDCspec declarations sourced in ti/mcu/msp430/package.xdc
package ti.mcu.msp430 {
}
generated on Wed, 08 Dec 2010 20:09:06 GMT


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 Wed, 08 Dec 2010 20:09:17 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:17 GMT


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 Wed, 08 Dec 2010 20:09:07 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:07 GMT


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 Wed, 08 Dec 2010 20:09:07 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:07 GMT


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 Wed, 08 Dec 2010 20:09:07 GMT


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: 100.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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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: 100.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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:07 GMT


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 Wed, 08 Dec 2010 20:09:07 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:07 GMT


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 Wed, 08 Dec 2010 20:09:07 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:07 GMT


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 Wed, 08 Dec 2010 20:09:08 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:08 GMT


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 Wed, 08 Dec 2010 20:09:08 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:08 GMT


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 Wed, 08 Dec 2010 20:09:08 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:08 GMT


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 Wed, 08 Dec 2010 20:09:08 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:08 GMT


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 Wed, 08 Dec 2010 20:09:08 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:08 GMT


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 Wed, 08 Dec 2010 20:09:09 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:09 GMT


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 Wed, 08 Dec 2010 20:09:08 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:08 GMT


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 Wed, 08 Dec 2010 20:09:08 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:08 GMT


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 Wed, 08 Dec 2010 20:09:09 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:09 GMT


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 Wed, 08 Dec 2010 20:09:12 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:12 GMT


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 Wed, 08 Dec 2010 20:09:12 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:12 GMT


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 Wed, 08 Dec 2010 20:09:09 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:09 GMT


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 Wed, 08 Dec 2010 20:09:07 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:07 GMT


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 Wed, 08 Dec 2010 20:09:09 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:09 GMT


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 Wed, 08 Dec 2010 20:09:07 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:07 GMT


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 Wed, 08 Dec 2010 20:09:10 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:10 GMT


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 Wed, 08 Dec 2010 20:09:11 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:11 GMT


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 Wed, 08 Dec 2010 20:09:16 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:16 GMT


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 Wed, 08 Dec 2010 20:09:18 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:18 GMT


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 Wed, 08 Dec 2010 20:09:17 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:17 GMT


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 Wed, 08 Dec 2010 20:09:17 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:17 GMT


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 Wed, 08 Dec 2010 20:09:17 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:17 GMT


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 Wed, 08 Dec 2010 20:09:17 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:17 GMT


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 Wed, 08 Dec 2010 20:09:17 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:17 GMT


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 Wed, 08 Dec 2010 20:09:19 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:19 GMT


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 Wed, 08 Dec 2010 20:09:16 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:16 GMT


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 Wed, 08 Dec 2010 20:09:18 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:18 GMT


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 Wed, 08 Dec 2010 20:09:09 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:09 GMT


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 Wed, 08 Dec 2010 20:09:09 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:09 GMT


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 Wed, 08 Dec 2010 20:09:10 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:10 GMT


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 Wed, 08 Dec 2010 20:09:10 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:10 GMT


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 Wed, 08 Dec 2010 20:09:10 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:10 GMT


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 Wed, 08 Dec 2010 20:09:11 GMT


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: 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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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: 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.
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: 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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:11 GMT


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 Wed, 08 Dec 2010 20:09:11 GMT


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.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.singleCore// = Bool true;
        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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.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.singleCore = Bool true;
    //
    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.
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.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.singleCore // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.singleCore = Bool true;
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:11 GMT


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 Wed, 08 Dec 2010 20:09:11 GMT


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.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.singleCore// = Bool true;
        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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.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.singleCore = Bool true;
    //
    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.
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.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.singleCore // instance
index URL
XDCscript usage meta-domain
var params = new Platform.Params;
...
params.singleCore = Bool true;
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:11 GMT


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 Wed, 08 Dec 2010 20:09:18 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:18 GMT


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 Wed, 08 Dec 2010 20:09:10 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:10 GMT


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 Wed, 08 Dec 2010 20:09:19 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:19 GMT


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 Wed, 08 Dec 2010 20:09:19 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:19 GMT


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 Wed, 08 Dec 2010 20:09:15 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:15 GMT


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 Wed, 08 Dec 2010 20:09:15 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:15 GMT


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 Wed, 08 Dec 2010 20:09:16 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:16 GMT


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 Wed, 08 Dec 2010 20:09:22 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:22 GMT


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 Wed, 08 Dec 2010 20:09:22 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:22 GMT


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 Wed, 08 Dec 2010 20:09:12 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:12 GMT


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 Wed, 08 Dec 2010 20:09:13 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:12 GMT


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 Wed, 08 Dec 2010 20:09:16 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:16 GMT


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 Wed, 08 Dec 2010 20:09:16 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:16 GMT


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 Wed, 08 Dec 2010 20:09:16 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:16 GMT


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 Wed, 08 Dec 2010 20:09:20 GMT


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: 250.0,
        catalogName: "ti.catalog.arm.cortexm3",
        deviceName: "TMS320TI814X",
        revision: "1.0"
    };
    const Platform.GEM// = IExeContext.Cpu {
        id: "0",
        clockRate: 800.0,
        catalogName: "ti.catalog.c6000",
        deviceName: "TMS320TI814X",
        revision: ""
    };
    const Platform.GPP// = IExeContext.Cpu {
        id: "2",
        clockRate: 1000.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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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: 250.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: 800.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: 1000.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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:20 GMT


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 Wed, 08 Dec 2010 20:09:19 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:19 GMT


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 Wed, 08 Dec 2010 20:09:13 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:13 GMT


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 Wed, 08 Dec 2010 20:09:18 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:18 GMT


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 Wed, 08 Dec 2010 20:09:18 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:18 GMT


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 Wed, 08 Dec 2010 20:09:18 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:18 GMT


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 Wed, 08 Dec 2010 20:09:11 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:11 GMT


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 Wed, 08 Dec 2010 20:09:23 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:23 GMT


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 Wed, 08 Dec 2010 20:09:13 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:13 GMT


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 Wed, 08 Dec 2010 20:09:23 GMT


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: 16.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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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: 16.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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:23 GMT


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 Wed, 08 Dec 2010 20:09:06 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:06 GMT


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 Wed, 08 Dec 2010 20:09:06 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:06 GMT


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 Wed, 08 Dec 2010 20:09:06 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:06 GMT


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 Wed, 08 Dec 2010 20:09:06 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:06 GMT


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 Wed, 08 Dec 2010 20:09:06 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:06 GMT


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 Wed, 08 Dec 2010 20:09:20 GMT


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 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.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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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 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.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 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.
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.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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:20 GMT


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 Wed, 08 Dec 2010 20:09:13 GMT


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 Wed, 08 Dec 2010 20:09:13 GMT


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 Wed, 08 Dec 2010 20:09:13 GMT


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 Wed, 08 Dec 2010 20:09:13 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:13 GMT


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 Wed, 08 Dec 2010 20:09:21 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:21 GMT


package ti.platforms.msp430
index URL
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 Wed, 08 Dec 2010 20:09:23 GMT


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
     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: 0,
        catalogName: "ti.catalog.msp430",
        deviceName: "MSP430",
        revision: ""
    };
        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.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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.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: 0,
    catalogName: "ti.catalog.msp430",
    deviceName: "MSP430",
    revision: ""
};
    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.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.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 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.
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.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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:23 GMT


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 Wed, 08 Dec 2010 20:09:13 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:13 GMT


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 Wed, 08 Dec 2010 20:09:12 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:12 GMT


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 Wed, 08 Dec 2010 20:09:13 GMT


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 Wed, 08 Dec 2010 20:09:12 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:11 GMT


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 Wed, 08 Dec 2010 20:09:12 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:12 GMT


package ti.platforms.sdp4430
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/sdp4430/package.xdc
requires ti.catalog.c6000;
requires ti.catalog.arm.cortexm3;
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 Tesla simulator platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.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 Wed, 08 Dec 2010 20:09:20 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:20 GMT


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 Wed, 08 Dec 2010 20:09:13 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:13 GMT


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 Wed, 08 Dec 2010 20:09:21 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:21 GMT


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 Wed, 08 Dec 2010 20:09:21 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:21 GMT


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 Wed, 08 Dec 2010 20:09:22 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:22 GMT


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 Wed, 08 Dec 2010 20:09:22 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:22 GMT


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 Wed, 08 Dec 2010 20:09:14 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:14 GMT


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 Wed, 08 Dec 2010 20:09:14 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:14 GMT


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 Wed, 08 Dec 2010 20:09:22 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:22 GMT


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 Wed, 08 Dec 2010 20:09:20 GMT


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.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: ""
    };
    const Platform.T16// = IExeContext.Cpu {
        id: "0",
        clockRate: 200.0,
        catalogName: "ti.catalog.t16",
        deviceName: "T16v200",
        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: 0x80000000
            }
        ]
    ];
        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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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: "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: ""
};
config Platform.T16 // module-wide
index URL
XDCscript usage meta-domain
const Platform.T16 = IExeContext.Cpu {
    id: "0",
    clockRate: 200.0,
    catalogName: "ti.catalog.t16",
    deviceName: "T16v200",
    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: 0x80000000
        }
    ]
];
    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.
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: 0x80000000
        }
    ]
];
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:20 GMT


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;
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 Wed, 08 Dec 2010 20:09:14 GMT


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",
        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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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",
    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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:14 GMT


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 Wed, 08 Dec 2010 20:09:14 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:14 GMT


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 Wed, 08 Dec 2010 20:09:23 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:23 GMT


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 Wed, 08 Dec 2010 20:09:14 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:14 GMT


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 Wed, 08 Dec 2010 20:09:19 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:19 GMT


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 Wed, 08 Dec 2010 20:09:21 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:21 GMT


package ti.platforms.simT16
index URL

Platform package for the simT16 platform

  • DETAILS
  • THROWS
This package implements the interfaces (xdc.platform.IPlatform) necessary to build and run executables on the simT16 platform. [ more ... ]
XDCspec declarations sourced in ti/platforms/simT16/package.xdc
requires ti.catalog.t16;
requires xdc.platform[1, 0, 1];
package ti.platforms.simT16 [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 simT16 platform.
THROWS
XDCException exceptions are thrown for fatal errors. The following error codes are reported in the exception message:
ti.platfoms.simT16.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 Wed, 08 Dec 2010 20:09:20 GMT


module ti.platforms.simT16.Platform

metaonly module ti.platforms.simT16.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/simT16/Platform.xdc
var Platform = xdc.useModule('ti.platforms.simT16.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: "simT16",
        boardFamily: "simT16",
        boardRevision: null
    };
    const Platform.CPU// The CPU simulated by this platform = IExeContext.Cpu {
        id: "0",
        clockRate: 200.0,
        catalogName: "ti.catalog.t16",
        deviceName: "T16v200",
        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 "CMDMEM";
        params.customMemoryMap// A custom mapping of memory names to memory objects = IPlatform.Memory[string] undefined;
        params.dataMemory// The default segment for data sections = String "DATMEM";
        params.externalMemoryMap// Memory regions as defined in the Ducati Functional Specification = IPlatform.Memory[string] [
        [
            "DDR",
            {
                comment: "DDR",
                name: "DDR",
                base: 0x80000000,
                len: 0x10000000
            }
        ]
    ];
        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 "DATMEM";
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, Any args, params);
per-instance functions
     inst.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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: "simT16",
    boardFamily: "simT16",
    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.t16",
    deviceName: "T16v200",
    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 "CMDMEM";
    // The default segment for code sections
    params.customMemoryMap = IPlatform.Memory[string] undefined;
    // A custom mapping of memory names to memory objects
    params.dataMemory = String "DATMEM";
    // The default segment for data sections
    params.externalMemoryMap = IPlatform.Memory[string] [
    // Memory regions as defined in the Ducati Functional Specification
    [
        "DDR",
        {
            comment: "DDR",
            name: "DDR",
            base: 0x80000000,
            len: 0x10000000
        }
    ]
];
    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 "DATMEM";
    // 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 "CMDMEM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for 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.
config Platform.dataMemory // instance
index URL

The default segment for data sections

XDCscript usage meta-domain
var params = new Platform.Params;
...
params.dataMemory = String "DATMEM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for 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] [
    [
        "DDR",
        {
            comment: "DDR",
            name: "DDR",
            base: 0x80000000,
            len: 0x10000000
        }
    ]
];
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 "DATMEM";
DETAILS
Each target has a section map with keys equal to the names of all sections that compiler and assembler for 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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:20 GMT


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 Wed, 08 Dec 2010 20:09:15 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:15 GMT


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 Wed, 08 Dec 2010 20:09:15 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:15 GMT


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 Wed, 08 Dec 2010 20:09:15 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:15 GMT


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 Wed, 08 Dec 2010 20:09:21 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:21 GMT


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 Wed, 08 Dec 2010 20:09:15 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:15 GMT


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 Wed, 08 Dec 2010 20:09:23 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:09:23 GMT


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 Wed, 08 Dec 2010 20:09:23 GMT


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 Wed, 08 Dec 2010 20:09:23 GMT


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[1, 0, 1];
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 Wed, 08 Dec 2010 20:09:51 GMT


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",
            "data"
        ],
        [
            ".data",
            "data"
        ],
        [
            ".cinit",
            "code"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".ebss",
            "data"
        ],
        [
            ".econst",
            "data"
        ],
        [
            ".const",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".sysmem",
            "data"
        ],
        [
            ".esysmem",
            "data"
        ],
        [
            ".pinit",
            "code"
        ],
        [
            ".args",
            "data"
        ],
        [
            ".cio",
            "data"
        ],
        [
            ".reset",
            "code"
        ]
    ];
    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.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
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",
        "data"
    ],
    [
        ".data",
        "data"
    ],
    [
        ".cinit",
        "code"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".ebss",
        "data"
    ],
    [
        ".econst",
        "data"
    ],
    [
        ".const",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".sysmem",
        "data"
    ],
    [
        ".esysmem",
        "data"
    ],
    [
        ".pinit",
        "code"
    ],
    [
        ".args",
        "data"
    ],
    [
        ".cio",
        "data"
    ],
    [
        ".reset",
        "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 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.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 Wed, 08 Dec 2010 20:09:45 GMT


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.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
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.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 Wed, 08 Dec 2010 20:09:45 GMT


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.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
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.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 Wed, 08 Dec 2010 20:09:45 GMT


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.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
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.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 Wed, 08 Dec 2010 20:09:45 GMT


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.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
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.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 Wed, 08 Dec 2010 20:09:46 GMT


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: ""
    };
     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.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
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: ""
};
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.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 Wed, 08 Dec 2010 20:09:46 GMT


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: ""
    };
     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.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
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: ""
};
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.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 Wed, 08 Dec 2010 20:09:46 GMT


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: ""
    };
     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.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
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: ""
};
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.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 Wed, 08 Dec 2010 20:09:46 GMT


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: ""
    };
     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.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
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: ""
};
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.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 Wed, 08 Dec 2010 20:09:47 GMT


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.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
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.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 Wed, 08 Dec 2010 20:09:47 GMT


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.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
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.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 Wed, 08 Dec 2010 20:09:47 GMT


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.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
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.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 Wed, 08 Dec 2010 20:09:47 GMT


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.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
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.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 Wed, 08 Dec 2010 20:09:48 GMT


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.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
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.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 Wed, 08 Dec 2010 20:09:48 GMT


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.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
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.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 Wed, 08 Dec 2010 20:09:48 GMT


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.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
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.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 Wed, 08 Dec 2010 20:09:48 GMT


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.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
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.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 Wed, 08 Dec 2010 20:09:48 GMT


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",
        shortEnums: true
    };
    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[] undefined;
     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.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
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",
    shortEnums: true
};
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[] 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 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.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 Wed, 08 Dec 2010 20:09:49 GMT


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",
        shortEnums: true
    };
    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[] undefined;
     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.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
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",
    shortEnums: true
};
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[] 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 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.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 Wed, 08 Dec 2010 20:09:49 GMT


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.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
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.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 Wed, 08 Dec 2010 20:09:49 GMT


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.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
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.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 Wed, 08 Dec 2010 20:09:49 GMT


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.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
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.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 Wed, 08 Dec 2010 20:09:50 GMT


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.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
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.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 Wed, 08 Dec 2010 20:09:50 GMT


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.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
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.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 Wed, 08 Dec 2010 20:09:50 GMT


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);
     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
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.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 Wed, 08 Dec 2010 20:09:44 GMT


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.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
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.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 Wed, 08 Dec 2010 20:09:50 GMT


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.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
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.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 Wed, 08 Dec 2010 20:09:50 GMT


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[1, 0, 1];
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 Wed, 08 Dec 2010 20:09:29 GMT


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: "-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"
                }
            }
        ]
    ];
     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.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
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: "-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 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.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 Wed, 08 Dec 2010 20:09:26 GMT


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: "-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"
                }
            }
        ]
    ];
     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.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
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: "-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 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.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 Wed, 08 Dec 2010 20:09:26 GMT


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: "-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"
                }
            }
        ]
    ];
     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.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
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: "-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 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.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 Wed, 08 Dec 2010 20:09:27 GMT


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: "-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"
                }
            }
        ]
    ];
     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.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
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: "-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 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.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 Wed, 08 Dec 2010 20:09:27 GMT


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: "-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"
                }
            }
        ]
    ];
     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.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
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: "-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 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.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 Wed, 08 Dec 2010 20:09:27 GMT


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: "-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"
                }
            }
        ]
    ];
     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.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
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: "-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 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.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 Wed, 08 Dec 2010 20:09:28 GMT


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: "-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"
                }
            }
        ]
    ];
    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);
     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
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: "-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 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.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 Wed, 08 Dec 2010 20:09:25 GMT


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: "-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"
                }
            }
        ]
    ];
    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);
     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
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: "-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 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.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 Wed, 08 Dec 2010 20:09:25 GMT


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: "-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"
                }
            }
        ]
    ];
    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);
     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
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: "-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 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.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 Wed, 08 Dec 2010 20:09:25 GMT


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: "-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"
                }
            }
        ]
    ];
    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);
     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
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: "-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 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.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 Wed, 08 Dec 2010 20:09:26 GMT


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: "-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"
                }
            }
        ]
    ];
    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);
     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
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: "-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 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.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 Wed, 08 Dec 2010 20:09:26 GMT


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: "-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"
                }
            }
        ]
    ];
     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.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
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: "-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 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.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 Wed, 08 Dec 2010 20:09:28 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: "-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"
                }
            }
        ]
    ];
     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.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
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: "-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 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.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 Wed, 08 Dec 2010 20:09:28 GMT


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: "-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"
                }
            }
        ]
    ];
     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.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
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: "-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 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.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 Wed, 08 Dec 2010 20:09:28 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: "-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"
                }
            }
        ]
    ];
     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.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
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: "-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 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.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 Wed, 08 Dec 2010 20:09:29 GMT


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: "-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"
                }
            }
        ]
    ];
     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.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
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: "-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 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.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 Wed, 08 Dec 2010 20:09:29 GMT


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: "-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"
                }
            }
        ]
    ];
     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.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
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: "-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 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.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 Wed, 08 Dec 2010 20:09:29 GMT


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[1, 0, 1];
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 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 A8Ft;
    // Cortex A8 thumb2 little endian with floating point support (NEON) (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 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 Wed, 08 Dec 2010 20:09:37 GMT


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 = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms",
        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[] undefined;
     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.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
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

XDCscript usage meta-domain
A8F.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 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[] 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 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.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 Wed, 08 Dec 2010 20:09:32 GMT


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 = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms",
        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[] undefined;
     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.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
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

XDCscript usage meta-domain
A8Ft.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 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[] 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 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.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 Wed, 08 Dec 2010 20:09:33 GMT


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 = 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 = 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.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
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

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

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.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 Wed, 08 Dec 2010 20:09:33 GMT


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 = 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 = 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.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
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

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

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.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 Wed, 08 Dec 2010 20:09:33 GMT


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 = 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 "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.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
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

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 "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.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 Wed, 08 Dec 2010 20:09:34 GMT


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 = 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 "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.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
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

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 "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.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 Wed, 08 Dec 2010 20:09:34 GMT


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 = {
        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.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);
     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
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

XDCspec declarations sourced in ti/targets/arm/elf/IA8.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 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
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 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.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 Wed, 08 Dec 2010 20:09:31 GMT


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 = {
        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: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);
     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
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

XDCspec declarations sourced in ti/targets/arm/elf/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/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.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 Wed, 08 Dec 2010 20:09:31 GMT


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 = {
        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: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);
     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
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

XDCspec declarations sourced in ti/targets/arm/elf/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/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.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 Wed, 08 Dec 2010 20:09:31 GMT


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 = {
        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: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);
     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
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

XDCspec declarations sourced in ti/targets/arm/elf/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/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.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 Wed, 08 Dec 2010 20:09:32 GMT


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 = {
        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: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);
     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
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

XDCspec declarations sourced in ti/targets/arm/elf/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/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.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 Wed, 08 Dec 2010 20:09:32 GMT


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 = {
        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: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);
     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
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

XDCspec declarations sourced in ti/targets/arm/elf/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/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.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 Wed, 08 Dec 2010 20:09:32 GMT


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 = 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_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.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
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

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_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.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 Wed, 08 Dec 2010 20:09:34 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 = 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_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.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
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

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_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.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 Wed, 08 Dec 2010 20:09:34 GMT


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 = 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_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.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
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

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_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.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 Wed, 08 Dec 2010 20:09:35 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 = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms",
        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.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
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

XDCscript usage meta-domain
R4F.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 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.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 Wed, 08 Dec 2010 20:09:35 GMT


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 = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms",
        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.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
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

XDCscript usage meta-domain
R4Ft.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 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.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 Wed, 08 Dec 2010 20:09:35 GMT


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 = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms",
        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.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
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

XDCscript usage meta-domain
R4Ft_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 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.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 Wed, 08 Dec 2010 20:09:36 GMT


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 = ITarget2.Options {
        prefix: "$(ccOpts.prefix) -ms",
        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.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
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

XDCscript usage meta-domain
R4F_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 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.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 Wed, 08 Dec 2010 20:09:35 GMT


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 = 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_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.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
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

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_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.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 Wed, 08 Dec 2010 20:09:36 GMT


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 = 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_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.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
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

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_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.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 Wed, 08 Dec 2010 20:09:37 GMT


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 = 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_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.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
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

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_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.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 Wed, 08 Dec 2010 20:09:36 GMT


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 Wed, 08 Dec 2010 20:09:24 GMT


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[1, 0, 1];
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 T16;
    // TI T16 default runtime model (little endian)
    module TMS470;
    // TI TMS470 (Arm) little endian ELF EABI
}
generated on Wed, 08 Dec 2010 20:09:41 GMT


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=elfabi"
    };
    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=elfabi"
    };
    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=elfabi"
    };
    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"
        ],
        [
            ".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.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
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=elfabi"
};
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=elfabi"
};
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=elfabi"
};
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"
    ],
    [
        ".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.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 Wed, 08 Dec 2010 20:09:38 GMT


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=elfabi"
    };
    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=elfabi"
    };
    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=elfabi"
    };
    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"
        ],
        [
            ".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.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
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=elfabi"
};
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=elfabi"
};
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=elfabi"
};
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"
    ],
    [
        ".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.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 Wed, 08 Dec 2010 20:09:38 GMT


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=elfabi"
    };
    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=elfabi"
    };
    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=elfabi"
    };
    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"
        ],
        [
            ".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.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
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=elfabi"
};
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=elfabi"
};
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=elfabi"
};
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"
    ],
    [
        ".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.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 Wed, 08 Dec 2010 20:09:39 GMT


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=elfabi"
    };
    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=elfabi"
    };
    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=elfabi"
    };
    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"
        ],
        [
            ".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.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
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=elfabi"
};
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=elfabi"
};
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=elfabi"
};
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"
    ],
    [
        ".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.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 Wed, 08 Dec 2010 20:09:39 GMT


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=elfabi"
    };
    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=elfabi"
    };
    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=elfabi"
    };
    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"
        ],
        [
            ".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 C62.stdTypes;
    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[] undefined;
     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.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
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=elfabi"
};
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=elfabi"
};
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=elfabi"
};
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"
    ],
    [
        ".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 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 "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[] 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 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.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 Wed, 08 Dec 2010 20:09:39 GMT


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=elfabi"
    };
    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=elfabi"
    };
    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=elfabi"
    };
    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"
        ],
        [
            ".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 C62.stdTypes;
    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[] undefined;
     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.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
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=elfabi"
};
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=elfabi"
};
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=elfabi"
};
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"
    ],
    [
        ".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 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 "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[] 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 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.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 Wed, 08 Dec 2010 20:09:39 GMT


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=elfabi"
    };
    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=elfabi"
    };
    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=elfabi"
    };
    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"
        ],
        [
            ".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.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
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=elfabi"
};
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=elfabi"
};
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=elfabi"
};
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"
    ],
    [
        ".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.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 Wed, 08 Dec 2010 20:09:40 GMT


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=elfabi"
    };
    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=elfabi"
    };
    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=elfabi"
    };
    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"
        ],
        [
            ".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.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
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=elfabi"
};
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=elfabi"
};
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=elfabi"
};
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"
    ],
    [
        ".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.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 Wed, 08 Dec 2010 20:09:40 GMT


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=elfabi"
    };
    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=elfabi"
    };
    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=elfabi"
    };
    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"
        ],
        [
            ".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 C62.stdTypes;
    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.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
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=elfabi"
};
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=elfabi"
};
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=elfabi"
};
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"
    ],
    [
        ".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 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 "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.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 Wed, 08 Dec 2010 20:09:40 GMT


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"
        ],
        [
            ".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);
     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
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"
    ],
    [
        ".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.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 Wed, 08 Dec 2010 20:09:38 GMT


module ti.targets.elf.T16

metaonly module ti.targets.elf.T16
index URL

TI T16 default runtime model (little endian)

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in ti/targets/elf/T16.xdc
var T16 = xdc.useModule('ti.targets.elf.T16');
module-wide constants & types
    var obj = new T16.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 T16.Command// Required command and options;
        obj.cmd// the command to run = String ...
        obj.opts// required options for the command = String ...
    var obj = new T16.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 T16.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 T16.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 T16.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 T16.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 T16.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 T16.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 T16.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 T16.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 T16.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 T16.alignDirectiveSupported// The compiler supports an align directive = Bool true;
    const T16.ar// The command used to create an archive = ITarget2.Command {
        cmd: "art16",
        opts: "rq"
    };
    const T16.asm// The command used to assembles assembly source files into object files = ITarget2.Command {
        cmd: "clt16 -c",
        opts: "--silicon_version=v210"
    };
    const T16.base// A target that this target is based upon = ITarget.Module computed value;
    const T16.bitsPerChar// The number of bits in a variable of type char = Int 8;
    const T16.cc// The command used to compile C/C++ source files into object files = ITarget2.Command {
        cmd: "clt16 -c",
        opts: "--silicon_version=v210"
    };
    const T16.isa// CPU Instruction Set Architecture (ISA) = String "t16";
    const T16.lnk// The command used to link executables = ITarget2.Command {
        cmd: "lnkt16",
        opts: ""
    };
    const T16.model// Run-time model = ITarget.Model {
        endian: "little"
    };
    const T16.name// Nickname for this target = String "T16";
    const T16.os// Name of OS required to run programs built for this target = String computed value;
    const T16.rts// Name of a run-time support package to include = String "ti.targets.elf.rtst16";
    const T16.sectMap// Output section name to segment type mapping = String[string] [
        [
            ".text",
            "code"
        ],
        [
            ".ti.decompress",
            "code"
        ],
        [
            ".stack",
            "stack"
        ],
        [
            ".bss",
            "data"
        ],
        [
            ".cinit",
            "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 T16.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 T16.suffix// Suffix appended to all objs, libraries, and executable = String "et16";
    const T16.vers// The command used to get the tool-chain to return a version number = ITarget2.Command {
        cmd: "clt16",
        opts: "--compiler_revision"
    };
     T16.arOpts// User configurable archiver options = ITarget2.Options {
        prefix: "",
        suffix: ""
    };
     T16.asmOpts// User configurable assembler options = ITarget2.Options {
        prefix: "-qq",
        suffix: ""
    };
     T16.binDir// This parameter controls the location of the target's commands = String "$(rootDir)/bin/";
     T16.ccConfigOpts// User configurable compiler options for the generated config C file = ITarget2.Options {
        prefix: "$(ccOpts.prefix)",
        suffix: "$(ccOpts.suffix)"
    };
     T16.ccOpts// User configurable compiler options = ITarget2.Options {
        prefix: "-qq -pdsw225",
        suffix: ""
    };
     T16.compatibleSuffixes// Array of suffixes used by targets compatible with this target = String[] undefined;
     T16.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"
    };
     T16.execExt// Extension for executables = String undefined;
     T16.extensions// File extensions recognized by TI targets = ITarget.Extension[string] ITarget.extensions;
     T16.includeOpts// Additional user configurable target-specific include path options = String "-I$(rootDir)/include";
     T16.lnkOpts// User configurable linker options = ITarget2.Options {
        prefix: "-w -q -u _c_int00",
        suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rtst16_v200.lib"
    };
     T16.pathPrefix// A prefix to the PATH environment variable = String "";
     T16.platform// The default platform name for this target = String "ti.platforms.simT16";
     T16.platforms// A set of platforms that can support this target = String[] [ ];
     T16.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:dwarf"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "--symdebug:dwarf"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2 --gen_func_subsections"
                }
            }
        ],
        [
            "whole_program_debug",
            {
                compileOpts: {
                    copts: "-oe --symdebug:dwarf --gen_func_subsections"
                }
            }
        ]
    ];
     T16.rootDir// Installation directory for this target's code generation tools = String undefined;
     T16.stdInclude// Standard C/C++ types header = String "ti/targets/elf/std.h";
     T16.version// The Compatibility Key associated with this target = String undefined;
     T16.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
     T16.archive// Create an archive(ITarget.ArchiveGoal* goal) returns ITarget.CommandSet*
     T16.asmName// The function that converts a C name into an assembly name(String CName) returns String
     T16.compile// Compile a source file into an object file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     T16.findSuffix// Find the suffix that is compatible with this target(Any pkg) returns Any
     T16.getISAChain// Get this target's ISA "is compatible with" relation(Any isa) returns Any
     T16.getVersion// Get a target-specific Compatibility Key string() returns String
     T16.link// Link object files to produce an executable(ITarget.LinkGoal* goal) returns ITarget.CommandSet*
     T16.scompile// Compile a source file into an assembly language file(ITarget.CompileGoal* goal) returns ITarget.CommandSet*
     T16.selectSuffix// Select the suffix that is compatible with this target(String[] suffixList) returns String
struct T16.ArchiveGoal
index URL

The goal specification passed to the archive function

XDCscript usage meta-domain
var obj = new T16.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 T16.Command
index URL

Required command and options

XDCscript usage meta-domain
var obj = new T16.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 T16.CommandSet
index URL

The commands necessary to create a specified goal

XDCscript usage meta-domain
var obj = new T16.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 T16.CompileGoal
index URL

The goal specification passed to the compile function

XDCscript usage meta-domain
var obj = new T16.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 T16.CompileOptions
index URL

Options passed to the compiler/assembler

XDCscript usage meta-domain
var obj = new T16.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
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 T16.DebugGen
index URL

Debugger integration support

XDCscript usage meta-domain
var obj = new T16.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 T16.Extension
index URL

File extension to file type association

XDCscript usage meta-domain
var obj = new T16.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 T16.LinkGoal
index URL

The goal specification passed to the link function

XDCscript usage meta-domain
var obj = new T16.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 T16.Model
index URL

Target runtime model

XDCscript usage meta-domain
var obj = new T16.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 T16.OptionSet
index URL

Collection of tool-chain options

XDCscript usage meta-domain
var obj = new T16.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 T16.Options
index URL

User configurable command options

XDCscript usage meta-domain
var obj = new T16.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 T16.StdTypes
index URL

Standard base types supported by all targets

XDCscript usage meta-domain
var obj = new T16.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 T16.alignDirectiveSupported // module-wide
index URL

The compiler supports an align directive

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

The command used to create an archive

XDCscript usage meta-domain
const T16.ar = ITarget2.Command {
    cmd: "art16",
    opts: "rq"
};
config T16.asm // module-wide
index URL

The command used to assembles assembly source files into object files

XDCscript usage meta-domain
const T16.asm = ITarget2.Command {
    cmd: "clt16 -c",
    opts: "--silicon_version=v210"
};
config T16.base // module-wide
index URL

A target that this target is based upon

XDCscript usage meta-domain
const T16.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 T16.bitsPerChar // module-wide
index URL

The number of bits in a variable of type char

XDCscript usage meta-domain
const T16.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 T16.cc // module-wide
index URL

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

XDCscript usage meta-domain
const T16.cc = ITarget2.Command {
    cmd: "clt16 -c",
    opts: "--silicon_version=v210"
};
config T16.isa // module-wide
index URL

CPU Instruction Set Architecture (ISA)

XDCscript usage meta-domain
const T16.isa = String "t16";
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 T16.lnk // module-wide
index URL

The command used to link executables

XDCscript usage meta-domain
const T16.lnk = ITarget2.Command {
    cmd: "lnkt16",
    opts: ""
};
config T16.model // module-wide
index URL

Run-time model

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

Nickname for this target

XDCscript usage meta-domain
const T16.name = String "T16";
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 T16.os // module-wide
index URL

Name of OS required to run programs built for this target

XDCscript usage meta-domain
const T16.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 T16.rts // module-wide
index URL

Name of a run-time support package to include

XDCscript usage meta-domain
const T16.rts = String "ti.targets.elf.rtst16";
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 T16.sectMap // module-wide
index URL

Output section name to segment type mapping

XDCscript usage meta-domain
const T16.sectMap = String[string] [
    [
        ".text",
        "code"
    ],
    [
        ".ti.decompress",
        "code"
    ],
    [
        ".stack",
        "stack"
    ],
    [
        ".bss",
        "data"
    ],
    [
        ".cinit",
        "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 T16.stdTypes // module-wide
index URL

Size and alignment for standard base types

XDCscript usage meta-domain
const T16.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 T16.suffix // module-wide
index URL

Suffix appended to all objs, libraries, and executable

XDCscript usage meta-domain
const T16.suffix = String "et16";
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 T16.vers // module-wide
index URL

The command used to get the tool-chain to return a version number

XDCscript usage meta-domain
const T16.vers = ITarget2.Command {
    cmd: "clt16",
    opts: "--compiler_revision"
};
config T16.arOpts // module-wide
index URL

User configurable archiver options

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

User configurable assembler options

XDCscript usage meta-domain
T16.asmOpts = ITarget2.Options {
    prefix: "-qq",
    suffix: ""
};
DETAILS
Defaults:
-qq
super quiet mode
config T16.binDir // module-wide
index URL

This parameter controls the location of the target's commands

XDCscript usage meta-domain
T16.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 T16.ccConfigOpts // module-wide
index URL

User configurable compiler options for the generated config C file

XDCscript usage meta-domain
T16.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 T16.ccOpts // module-wide
index URL

User configurable compiler options

XDCscript usage meta-domain
T16.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 T16.compatibleSuffixes // module-wide
index URL

Array of suffixes used by targets compatible with this target

XDCscript usage meta-domain
T16.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 T16.debugGen // module-wide
index URL

TI Debugger/IDE file generation support

XDCscript usage meta-domain
T16.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 T16.execExt // module-wide
index URL

Extension for executables

XDCscript usage meta-domain
T16.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 T16.extensions // module-wide
index URL

File extensions recognized by TI targets

XDCscript usage meta-domain
T16.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 T16.includeOpts // module-wide
index URL

Additional user configurable target-specific include path options

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

User configurable linker options

XDCscript usage meta-domain
T16.lnkOpts = ITarget2.Options {
    prefix: "-w -q -u _c_int00",
    suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rtst16_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 T16.pathPrefix // module-wide
index URL

A prefix to the PATH environment variable

XDCscript usage meta-domain
T16.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 T16.platform // module-wide
index URL

The default platform name for this target

XDCscript usage meta-domain
T16.platform = String "ti.platforms.simT16";
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 T16.platforms // module-wide
index URL

A set of platforms that can support this target

XDCscript usage meta-domain
T16.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 T16.profiles // module-wide
index URL

Standard options profiles for the TI tool-chain

XDCscript usage meta-domain
T16.profiles = ITarget.OptionSet[string] [
    [
        "debug",
        {
            compileOpts: {
                copts: "-g",
                defs: "-D_DEBUG_=1"
            }
        }
    ],
    [
        "release",
        {
            compileOpts: {
                copts: "-O2"
            }
        }
    ],
    [
        "profile",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "coverage",
        {
            compileOpts: {
                copts: "--symdebug:dwarf"
            }
        }
    ],
    [
        "whole_program",
        {
            compileOpts: {
                copts: "-oe -O2 --gen_func_subsections"
            }
        }
    ],
    [
        "whole_program_debug",
        {
            compileOpts: {
                copts: "-oe --symdebug:dwarf --gen_func_subsections"
            }
        }
    ]
];
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 T16.rootDir // module-wide
index URL

Installation directory for this target's code generation tools

XDCscript usage meta-domain
T16.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 T16.stdInclude // module-wide
index URL

Standard C/C++ types header

XDCscript usage meta-domain
T16.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 T16.version // module-wide
index URL

The Compatibility Key associated with this target

XDCscript usage meta-domain
T16.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 T16.versionMap // module-wide
index URL

Map of TI compiler version numbers to compatibility keys

XDCscript usage meta-domain
T16.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";
T16.archive() // module-wide
index URL

Create an archive

XDCscript usage meta-domain
T16.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.
T16.asmName() // module-wide
index URL

The function that converts a C name into an assembly name

XDCscript usage meta-domain
T16.asmName(String CName) returns String
T16.compile() // module-wide
index URL

Compile a source file into an object file

XDCscript usage meta-domain
T16.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.
T16.findSuffix() // module-wide
index URL

Find the suffix that is compatible with this target

XDCscript usage meta-domain
T16.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.
T16.getISAChain() // module-wide
index URL

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

XDCscript usage meta-domain
T16.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.
T16.getVersion() // module-wide
index URL

Get a target-specific Compatibility Key string

XDCscript usage meta-domain
T16.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.
T16.link() // module-wide
index URL

Link object files to produce an executable

XDCscript usage meta-domain
T16.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.
T16.scompile() // module-wide
index URL

Compile a source file into an assembly language file

XDCscript usage meta-domain
T16.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.
T16.selectSuffix() // module-wide
index URL

Select the suffix that is compatible with this target

XDCscript usage meta-domain
T16.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 Wed, 08 Dec 2010 20:09:40 GMT


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: "-g",
                    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.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
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: "-g",
                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.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 Wed, 08 Dec 2010 20:09:41 GMT


package ti.targets.elf.rtst16
index URL

Runtime support package for the t16 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/elf/rtst16/package.xdc
requires xdc.runtime;
package ti.targets.elf.rtst16 [1, 0, 0, 0] {
}
generated on Wed, 08 Dec 2010 20:09:41 GMT


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 Wed, 08 Dec 2010 20:09:52 GMT


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"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2"
                }
            }
        ],
        [
            "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.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
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"
            }
        }
    ],
    [
        "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 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.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 Wed, 08 Dec 2010 20:09:51 GMT


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"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2"
                }
            }
        ],
        [
            "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.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
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"
            }
        }
    ],
    [
        "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 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.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 Wed, 08 Dec 2010 20:09:52 GMT


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"
                }
            }
        ],
        [
            "profile",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "coverage",
            {
                compileOpts: {
                    copts: "-gp"
                }
            }
        ],
        [
            "whole_program",
            {
                compileOpts: {
                    copts: "-oe -O2"
                }
            }
        ],
        [
            "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.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
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"
            }
        }
    ],
    [
        "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 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.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 Wed, 08 Dec 2010 20:09:52 GMT


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 Wed, 08 Dec 2010 20:09:51 GMT


package ti.targets.omf.cof
index URL
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 Wed, 08 Dec 2010 20:09:51 GMT


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 Wed, 08 Dec 2010 20:09:51 GMT


package ti.targets.omf.elf
index URL
XDCspec declarations sourced in ti/targets/omf/elf/package.xdc
package ti.targets.omf.elf {
}
generated on Wed, 08 Dec 2010 20:09:51 GMT


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 Wed, 08 Dec 2010 20:09:41 GMT


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 Wed, 08 Dec 2010 20:09:41 GMT


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 Wed, 08 Dec 2010 20:09:41 GMT


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 Wed, 08 Dec 2010 20:09:41 GMT


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 Wed, 08 Dec 2010 20:09:41 GMT


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 Wed, 08 Dec 2010 20:08:00 GMT


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 Wed, 08 Dec 2010 20:07:50 GMT


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
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 Wed, 08 Dec 2010 20:07:50 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);
     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
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.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 Wed, 08 Dec 2010 20:07:50 GMT


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(prog, 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
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(prog, cfgDir, configName);
ARGUMENTS
prog — xdc.bld.Executable or Assembly
cfgDir — String directory 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 Wed, 08 Dec 2010 20:07:50 GMT


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 developent 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 developent 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 Wed, 08 Dec 2010 20:07:50 GMT


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 Wed, 08 Dec 2010 20:07:50 GMT


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 Wed, 08 Dec 2010 20:07:50 GMT


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 Wed, 08 Dec 2010 20:07:50 GMT


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 Wed, 08 Dec 2010 20:07:50 GMT


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.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.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 that this test is a a member of.
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 Wed, 08 Dec 2010 20:07:50 GMT


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 Wed, 08 Dec 2010 20:07:50 GMT


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
}
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 Wed, 08 Dec 2010 20:08:01 GMT


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
}
generated on Wed, 08 Dec 2010 20:07:41 GMT


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 Wed, 08 Dec 2010 20:07:41 GMT


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// The 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

The 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 Wed, 08 Dec 2010 20:07:41 GMT


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 Wed, 08 Dec 2010 20:07:41 GMT


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
    Void addPeripheralsMap// Create a map of all peripherals available on a device(ICpuDataSheet.Instance cds);
     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.addPeripheralsMap() // module-wide
index URL

Create a map of all peripherals available on a device

XDCspec declarations sourced in xdc/platform/IPeripheral.xdc
Void addPeripheralsMap(ICpuDataSheet.Instance cds);
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.
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 Wed, 08 Dec 2010 20:07:41 GMT


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 getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(cpuId);
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCspec declarations sourced in xdc/platform/IPlatform.xdc
function getCpuDataSheet(cpuId);
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:07:41 GMT


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.assembleMemoryMap// Combine the device and the external memory map into a platform map(Any cpu, Any plat, Any noCheck) returns Any
     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.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.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 Wed, 08 Dec 2010 20:07:41 GMT


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 Wed, 08 Dec 2010 20:07:42 GMT


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.getCpuDataSheet// Get the Cpu data sheet object corresponding to specified cpu id(Any cpuId) returns Any
     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.
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.getCpuDataSheet() // instance
index URL

Get the Cpu data sheet object corresponding to specified cpu id

XDCscript usage meta-domain
inst.getCpuDataSheet(Any cpuId) returns Any
ARGUMENTS
cpuId — a string that corresponds to the platform-specific id of a CPU on this platform that runs executables.
DETAILS
This function executes in either the Configuration object model or the Build object model.
RETURNS
Returns an xdc.platform.ICpuDataSheet instance object that corresponds to the specified cpuId.
THROWS
Error exceptions are thrown for fatal errors.
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 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 Wed, 08 Dec 2010 20:07:42 GMT


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 Wed, 08 Dec 2010 20:08:01 GMT


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 Wed, 08 Dec 2010 20:08:01 GMT


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 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 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 and LoggerSys 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.
  • 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.
  • 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 Wed, 08 Dec 2010 20:08:00 GMT


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 Wed, 08 Dec 2010 20:07:58 GMT


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 do not 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, to guarantee that NoRuntime modules do not accidentally request functionality they don not use.
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 Wed, 08 Dec 2010 20:07:58 GMT


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// Bit is permanently cleared;
        const Diags.ALWAYS_ON// Bit is permanently set;
        const Diags.RUNTIME_OFF// Bit is cleared and modifiable at run-time;
        const Diags.RUNTIME_ON// Bit is set and modifiable at run-time;
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;
    // Bit is permanently cleared
    const Diags.ALWAYS_ON;
    // Bit is permanently set
    const Diags.RUNTIME_OFF;
    // Bit is cleared and modifiable at run-time
    const Diags.RUNTIME_ON;
    // Bit is set and modifiable at run-time
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 Wed, 08 Dec 2010 20:07:58 GMT


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 Wed, 08 Dec 2010 20:07:58 GMT


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 Wed, 08 Dec 2010 20:07:58 GMT


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 Wed, 08 Dec 2010 20:07:58 GMT


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// Sets 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 that all ILogger implementations support it.
ILoggers which do intend to support filtering by detail level should implement this interface, which extends the ILogger interface.
The setFilterLevel and getFilterLevel APIs support 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.
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

Sets 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 Wed, 08 Dec 2010 20:07:57 GMT


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 Wed, 08 Dec 2010 20:07:57 GMT


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.
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 Wed, 08 Dec 2010 20:07:57 GMT


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 Wed, 08 Dec 2010 20:07:57 GMT


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 Wed, 08 Dec 2010 20:07:57 GMT


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 Wed, 08 Dec 2010 20:07:57 GMT


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 Wed, 08 Dec 2010 20:07:58 GMT


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 Wed, 08 Dec 2010 20:07:58 GMT


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 addition 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 except that they are represented in IEEE 754 floating point format. Therefore, it is recommended that the float values are 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 ORing the level with the diags mask. For example, to print an INFO event of 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.
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 addition 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 Wed, 08 Dec 2010 20:07:59 GMT


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 of LoggerBuf which 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 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// Sets the level of detail that instances will log(LoggerBuf_Handle handle, Diags_Mask mask, Diags_EventLevel filterLevel);
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 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 receive 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 receive 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.
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 '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 setFilterLevel API 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 of LoggerBuf which 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 while in this API, by using an appropriate gate.
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

Sets 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// This data is 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 receive 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

This data is 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 receive 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.
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 '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 setFilterLevel API 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 Wed, 08 Dec 2010 20:07:59 GMT


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 Wed, 08 Dec 2010 20:07:59 GMT


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 Wed, 08 Dec 2010 20:07:59 GMT


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 Wed, 08 Dec 2010 20:07:59 GMT


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 the 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 the 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.
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 Wed, 08 Dec 2010 20:07:59 GMT


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 Wed, 08 Dec 2010 20:07:59 GMT


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 Wed, 08 Dec 2010 20:07:59 GMT


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 Wed, 08 Dec 2010 20:07:59 GMT


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 Wed, 08 Dec 2010 20:07:59 GMT


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 Wed, 08 Dec 2010 20:07:59 GMT


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 Wed, 08 Dec 2010 20:07:59 GMT


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 Wed, 08 Dec 2010 20:07:59 GMT


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 Wed, 08 Dec 2010 20:07:53 GMT


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 Wed, 08 Dec 2010 20:07:52 GMT


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 Wed, 08 Dec 2010 20:07:52 GMT


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 Wed, 08 Dec 2010 20:07:52 GMT


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 Wed, 08 Dec 2010 20:07:52 GMT


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 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 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 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 Wed, 08 Dec 2010 20:07:52 GMT


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 Wed, 08 Dec 2010 20:07:52 GMT


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 Wed, 08 Dec 2010 20:07:52 GMT


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 Wed, 08 Dec 2010 20:07:51 GMT


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 Wed, 08 Dec 2010 20:07:52 GMT


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 Wed, 08 Dec 2010 20:07:52 GMT


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 Wed, 08 Dec 2010 20:07:52 GMT


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 Wed, 08 Dec 2010 20:07:52 GMT


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 Wed, 08 Dec 2010 20:07:52 GMT


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() 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 Wed, 08 Dec 2010 20:07:52 GMT


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 Wed, 08 Dec 2010 20:07:52 GMT


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
eb — Pointer to Error.Block
DETAILS
  • PendStatus_ERROR if an error occured.
  • PendStatus_TIMEOUT denotes timeout.
  • PendStatus_SUCCESS semaphore was decremented. details.
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 Wed, 08 Dec 2010 20:07:52 GMT


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 Wed, 08 Dec 2010 20:07:52 GMT


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 Wed, 08 Dec 2010 20:07:52 GMT


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
RETURNS
TRUE or FALSE.
DETAILS
FALSE is returned if quality not supported.
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
RETURNS
see description above
DETAILS
This function can block. Non-blocking implementations should return ; Wait for the semaphore to become available.
  • 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// Proxy used for optimization = 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

Proxy used for optimization

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 this Proxy to SyncSemProcess and setting Sync.Proxy.abstractInstances$ = false, Sync APIs can have better performance.
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 Wed, 08 Dec 2010 20:07:53 GMT


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 Wed, 08 Dec 2010 20:07:53 GMT


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 Wed, 08 Dec 2010 20:07:53 GMT


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 Wed, 08 Dec 2010 20:07:53 GMT


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 Wed, 08 Dec 2010 20:07:53 GMT


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 Wed, 08 Dec 2010 20:07:46 GMT


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) {
        // prints "pkg.Mod.cfg set to <value>"
        print(this.$name + "." + sel + " set to " + val);
    });
The following example makes it an error to change Mod.cfg:
    GetSet.onSet(Mod, "cfg", function(sel, val) {
        throw new Error("You'll never change me!");
    });
generated on Wed, 08 Dec 2010 20:07:46 GMT


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 Wed, 08 Dec 2010 20:07:47 GMT


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 Wed, 08 Dec 2010 20:07:47 GMT


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[]
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([""]);
PARAMS
capsules array of capsule names
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[]
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([""]);
PARAMS
groups array of groups
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[]
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([""]);
PARAMS
capsules array of package names
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 Wed, 08 Dec 2010 20:07:47 GMT


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
xbean.jar | 1.0.4 | Apache 2.0 (note) | http://svn.apache.org/repos/asf/xmlbeans/tags/1.0.4 | XML support for JavaScript's E4X capabilities
jsr173_api.jar | 1.0.1 | Apache 2.0 | http://dist.codehaus.org/stax/distributions/stax-src-1.2.0.zip | JSR173 support required by xmlbeans
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.5.0_22 | Sun Microsystems, Inc. Binary Code License Agreement | 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 Wed, 08 Dec 2010 20:07:40 GMT


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 Wed, 08 Dec 2010 20:07:40 GMT


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 Wed, 08 Dec 2010 20:07:42 GMT


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 Wed, 08 Dec 2010 20:07:42 GMT


interface xdc.tools.ICmd

metaonly interface xdc.tools.ICmd
index URL

Generic xdc-script (xs) command

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[]);
}
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 Wed, 08 Dec 2010 20:07:42 GMT


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
-l
Language to document. Deprecated
-L
Don't include dependent packages. Deprecated
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 Wed, 08 Dec 2010 20:07:42 GMT


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 Wed, 08 Dec 2010 20:07:42 GMT


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.language// Language to document. Deprecated = String null;
        params.lopt// Don't include dependent packages. Deprecated = 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.language = String null;
    // Language to document. Deprecated
    params.lopt = Bool false;
    // Don't include dependent packages. Deprecated
    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.language // instance
index URL

Language to document. Deprecated

XDCscript usage meta-domain
var params = new Main.Params;
...
params.language = String null;
config Main.lopt // instance
index URL

Don't include dependent packages. Deprecated

XDCscript usage meta-domain
var params = new Main.Params;
...
params.lopt = 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 Wed, 08 Dec 2010 20:07:42 GMT


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 Wed, 08 Dec 2010 20:07:42 GMT


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 Wed, 08 Dec 2010 20:07:42 GMT


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 Wed, 08 Dec 2010 20:07:44 GMT


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 Wed, 08 Dec 2010 20:07:44 GMT


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. 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.

-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

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 the use of single quotes around the string value 'hello' on the command line. This is the easiest way to quote a JavaScript string constant that is compatible with the enclosing double quotes, which are for the benefit of the command line shell.

--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 Wed, 08 Dec 2010 20:07:43 GMT


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
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 the use of single quotes around the string value 'hello' on the command line. This is the easiest way to quote a JavaScript string constant that is compatible with the enclosing double quotes, which are for the benefit of the command line shell.
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. 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.
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 Wed, 08 Dec 2010 20:07:43 GMT


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 Wed, 08 Dec 2010 20:07:44 GMT


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 Wed, 08 Dec 2010 20:07:44 GMT


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 Wed, 08 Dec 2010 20:07:45 GMT


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 Wed, 08 Dec 2010 20:07:45 GMT


package xdc.tools.platformWizard
index URL
  • USAGE
  • OPTIONS
XDCspec declarations sourced in xdc/tools/platformWizard/package.xdc
requires xdc.tools.mkpkg;
package xdc.tools.platformWizard {
    module Main;
    // Command implementation
}
USAGE
xs xdc.tools.platformWizard [--help]
     -r <repository for platform package>
     -x <XML schema file>
    <platform package name>
OPTIONS
-r
-x
generated on Wed, 08 Dec 2010 20:07:42 GMT


module xdc.tools.platformWizard.Main

metaonly module xdc.tools.platformWizard.Main
index URL

Command implementation

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in xdc/tools/platformWizard/Main.xdc
var Main = xdc.useModule('xdc.tools.platformWizard.Main');
module-wide config parameters
     Main.usage// Usage for this command = String[] [
        ' -r <repository for platform package>',
        ' -x <XML schema file>',
        '<platform package name>'
    ];
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.repositoryPath// = String null;
        params.schemaFile// = String null;
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[] [
    ' -r <repository for platform package>',
    ' -x <XML schema file>',
    '<platform package name>'
];
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.repositoryPath = String null;
    //
    params.schemaFile = String null;
    //
config Main.repositoryPath // instance
index URL
XDCscript usage meta-domain
var params = new Main.Params;
...
params.repositoryPath = String null;
config Main.schemaFile // instance
index URL
XDCscript usage meta-domain
var params = new Main.Params;
...
params.schemaFile = String null;
Main.run() // instance
index URL

Underlying implementation

XDCscript usage meta-domain
inst.run(Cmdr.Instance cmdr, String[] args) returns Any
generated on Wed, 08 Dec 2010 20:07:42 GMT


package xdc.tools.platformWizard.memoryMap
index URL
  • USAGE
  • OPTIONS
XDCspec declarations sourced in xdc/tools/platformWizard/memoryMap/package.xdc
package xdc.tools.platformWizard.memoryMap {
    module Main;
    // Command implementation
}
USAGE
xs xdc.tools.platformWizard.memoryMap [--help]
     -m <Module Name>
     -r <Register Settings>
OPTIONS
-m
-r
generated on Wed, 08 Dec 2010 20:07:43 GMT


module xdc.tools.platformWizard.memoryMap.Main

metaonly module xdc.tools.platformWizard.memoryMap.Main
index URL

Command implementation

  • XDCscript usage
  • Individual elements
XDCscript usage meta-domain sourced in xdc/tools/platformWizard/memoryMap/Main.xdc
var Main = xdc.useModule('xdc.tools.platformWizard.memoryMap.Main');
module-wide config parameters
     Main.usage// Usage for this command = String[] [
        ' -m <Module Name>',
        ' -r <Register Settings>'
    ];
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.deviceModuleName// = String null;
        params.registerSettings// = String null;
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[] [
    ' -m <Module Name>',
    ' -r <Register Settings>'
];
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.deviceModuleName = String null;
    //
    params.registerSettings = String null;
    //
config Main.deviceModuleName // instance
index URL
XDCscript usage meta-domain
var params = new Main.Params;
...
params.deviceModuleName = String null;
config Main.registerSettings // instance
index URL
XDCscript usage meta-domain
var params = new Main.Params;
...
params.registerSettings = String null;
Main.run() // instance
index URL

Underlying implementation

XDCscript usage meta-domain
inst.run(Cmdr.Instance cmdr, String[] args) returns Any
generated on Wed, 08 Dec 2010 20:07:43 GMT


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 Wed, 08 Dec 2010 20:07:44 GMT


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 Target// Structure containing information on RTSC targets {
        String deviceNamePattern// Device name regex eg. MSP430*;
        String deviceFamilyPattern// Device family regex eg. C6*;
        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;
    };
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// Indicates whether product allows existence of multiple versions in a system = false;
    config String featureId// A unique feature id;
    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 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 repositoryArr// Repositories contained in 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
filePath — Path to help documentation relative to directory specified in docsLoc
tocFile — Flag indicates whether the element is a table of content(TOC) file. Tools may process TOC files in a special way. For example a tool to generate eclipse plugins may want to copy the TOC file in the plugin folder for integrating with eclipse help.
DETAILS
A help element is a file inside the product that may be referenced from a global table of contents.
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 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 RTSC target modules by associating them with device name and family regular expressions. This information may be leveraged by tools to derive the RTSC target given a device name and family. Devices implement the xdc.platform.ICpuDataSheet interface. Devices may be grouped in a family and delivered as a package.
For example, the device module TMS320DA830 in the package ti.catalog.C6000 may be associated with a RTSC target ti.targets.C674 by setting deviceNamePattern to TMS320DA8*, deviceFamilyPattern to C6*, packageName to ti.targets and baseTargetName to C674.
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
};
FIELDS
url — Uniform Resource Locator(URL)
text — Summary text for the URL
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 maybe 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.
config IProduct.exclusive // module-wide
index URL

Indicates whether product allows existence of multiple versions in a system

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config Bool exclusive = false;
DETAILS
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.featureId // module-wide
index URL

A unique feature id

XDCspec declarations sourced in xdc/tools/product/IProduct.xdc
config String featureId;
DETAILS
A feature maybe used by a system to install product upgrades. Typically a system will look at various versions of a feature available in the system and allow the user to upgrade to the latest version. The product developer can use the featureId to manage the granularity of product upgrades in a system. For example the version 3.20.0.00 for product org.eclipse.rtsc.xdctools.product may have the featureId org.eclipse.rtsc.xdctools.product_3.20. The product developer may allow the upgrade system to pick up patch releases to 3.20.0.00 release by specifying different versions of the product (eg. 3.20.0.01) with featureId org.eclipse.rtsc.xdctools.product_3.20
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.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 file path is defined relative to the directory containing the implementation of this interface
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 product
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
Product view module should be delivered in the repositories defined in repositoryArr
config IProduct.repositoryArr // module-wide
index URL

Repositories contained in 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
Template module should be delivered in 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 Wed, 08 Dec 2010 20:07:44 GMT


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// Indicates whether file should be excluded from build;
        Bool openOnCreation// Indicates whether file should be opened on project creation;
        Bool copyIntoConfiguration// Indicates whether file should be copied 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 example;
         IProductTemplate.FileDesc fileList// List of files along with properties for example[];
        String description// Description of example;
        String target// RTSC target;
        String platform// RTSC platform;
        String buildProfile// RTSC build profile;
        String linkerCommandFile// Linker command file for the example;
        String requiredProducts// List of products required to build this example[];
        String groups// Array of group ids[];
        Bool legacyTcf;
        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 example[];
    };
module-wide config parameters
    config IProductTemplate.TemplateInfo templateArr// Examples contained in the product[];
    config IProductTemplate.TemplateGroup templateGroupArr// Array fo 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;
    // Indicates whether file should be excluded from build
    Bool openOnCreation;
    // Indicates whether file should be opened on project creation
    Bool copyIntoConfiguration;
    // Indicates whether file should be copied 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 example providers to define constraints for their examples. IDEs may 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.
Example providers typically define an array of filters. The filter array is evaluated using the 'OR' operation.
The filter 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 maybe used to define a hierarchy of examples for the product. Examples maybe 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 of 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 example
     IProductTemplate.FileDesc fileList[];
    // List of files along with properties for example
    String description;
    // Description of example
    String target;
    // RTSC target
    String platform;
    // RTSC platform
    String buildProfile;
    // RTSC build profile
    String linkerCommandFile;
    // Linker command file for the example
    String requiredProducts[];
    // List of products required to build this example
    String groups[];
    // Array of group ids
    Bool legacyTcf;
    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 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.
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 maybe defined in the following manner : <product-id>:<min-version>
groups — Array of strings referring example groups that a particular example may belong. Example providers may want to 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.
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.
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 fo template group ids

XDCspec declarations sourced in xdc/tools/product/IProductTemplate.xdc
config IProductTemplate.TemplateGroup templateGroupArr[] = [ ];
DETAILS
This maybe optionally specified by example providers who want to organize their examples in groups.
generated on Wed, 08 Dec 2010 20:07:44 GMT


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 maybe consumed within development environments like IDE's to render a graphical tree view of the product comprising of these groups. This is an experimental interface and is subject to change.
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 functions
     IProductView.ProductElemDesc getProductDescriptor// Return product descriptor();
}
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
elemArray — Array used to define children of a node.
DETAILS
Structure that should be used by the implementor to define the logical tree "view" of the product. The product view is composed of elements that are either modules or groups. Groups can contain other groups or modules. The implementor will start with a root node and then logically build a tree comprising of groups and modules.
IProductView.getProductDescriptor() // module-wide
index URL

Return product descriptor

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 the tree of ProductElemDesc structures
generated on Wed, 08 Dec 2010 20:07:44 GMT


package xdc.tools.product.plugingen
index URL

Generate eclipse plugins for RTSC content

XDCspec declarations sourced in xdc/tools/product/plugingen/package.xdc
package xdc.tools.product.plugingen [1, 0, 0] {
    module Main;
    // Command-line tool for generating eclipse plugins for RTSC content
}
generated on Wed, 08 Dec 2010 20:07:44 GMT


module xdc.tools.product.plugingen.Main

metaonly module xdc.tools.product.plugingen.Main
index URL

Command-line tool for generating eclipse plugins for RTSC content

  • 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]',
        '[--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.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;
        params.suppressProductTypeInfo// Suppress generation of product type information in the generated plugin = 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]',
    '[--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.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
    params.suppressProductTypeInfo = Bool false;
    // Suppress generation of product type information in the generated plugin
    params.suppressSearch = Bool false;
    // Suppress search of product repositories
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.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. If the '-o' option is not specified the tool generates the plugin in a sub-directory called eclipse in the product root directory.
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 in the generated plugin

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 be invoked to generate plugins whose product type is declared elsewhere
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 Wed, 08 Dec 2010 20:07:44 GMT


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 Wed, 08 Dec 2010 20:07:45 GMT


module xdc.tools.repoman.sg.Main

metaonly module xdc.tools.repoman.sg.Main
index URL

Command implementation

  • XDCscript usage
  • Individual elements
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
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 Wed, 08 Dec 2010 20:07:45 GMT


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


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
xbean.jar | 1.0.4 | Apache 2.0 (note) | http://svn.apache.org/repos/asf/xmlbeans/tags/1.0.4 | XML support for JavaScript's E4X capabilities
jsr173_api.jar | 1.0.1 | Apache 2.0 | http://dist.codehaus.org/stax/distributions/stax-src-1.2.0.zip | JSR173 support required by xmlbeans
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.5.0_22 | Sun Microsystems, Inc. Binary Code License Agreement | 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 Wed, 08 Dec 2010 20:13:09 GMT


RTSC/XDCtools 3.20.06.81

revision 3.20.06.81

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.20.06.81. You can also view the most up to date documentation online at rtsc.eclipse.org.

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.20.06.81

Copyright © 2008 The Eclipse Foundation. All Rights Reserved


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: "",
   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    /*
   249     *  @(#) gnu.targets; 1, 0, 1,431; 12-7-2010 14:48:08; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   250
   251     */
   252


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        /*
    55         *  ======== includeOpts ========
    56         *  $(rootDir)/include        - contains compiler specific headers
    57         *
    58         *  GCC compilers for Linux automatically add this directory, but at least
    59         *  in some cases, the directory is added searched after standard system
    60         *  directories. This way, we ensure $(rootDir)/include is searched
    61         *  before standard system directories.
    62         */
    63        override config string includeOpts = "-isystem $(rootDir)/include";
    64
    65        /*
    66         *  ======== stdTypes ========
    67         */
    68        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
    69            t_IArg          : { size: 4, align: 4 },
    70            t_Char          : { size: 1, align: 1 },
    71            t_Double        : { size: 8, align: 4 },
    72            t_Float         : { size: 4, align: 4 },
    73            t_Fxn           : { size: 4, align: 4 },
    74            t_Int           : { size: 4, align: 4 },
    75            t_Int8          : { size: 1, align: 1 },
    76            t_Int16         : { size: 2, align: 2 },
    77            t_Int32         : { size: 4, align: 4 },
    78            t_Int64         : { size: 8, align: 4 },
    79            t_Long          : { size: 4, align: 4 },
    80            t_LDouble       : { size: 12, align: 4 },
    81            t_LLong         : { size: 8, align: 4 },
    82            t_Ptr           : { size: 4, align: 4 },
    83            t_Short         : { size: 2, align: 2 },
    84        };
    85    }
    86    /*
    87     *  @(#) gnu.targets; 1, 0, 1,431; 12-7-2010 14:48:08; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    88
    89     */
    90


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        };
    74    }
    75    /*
    76     *  @(#) gnu.targets; 1, 0, 1,431; 12-7-2010 14:48:08; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    77
    78     */
    79


module gnu.targets.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.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        };
    74    }
    75    /*
    76     *  @(#) gnu.targets; 1, 0, 1,431; 12-7-2010 14:48:08; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    77
    78     */
    79


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    requires xdc.bld [1,0,1];
    13
    14    /*!
    15     *  ======== gnu.targets ========
    16     *  Package of targets that wrap GNU gcc code generation tools.
    17     */
    18    package gnu.targets [1,0,1] {
    19        module Sparc, Linux86, Mingw;
    20        module MVArm9, UCArm9;
    21        interface ITarget;
    22    }
    23    /*
    24     *  @(#) gnu.targets; 1, 0, 1,431; 12-7-2010 14:48:09; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    25
    26     */
    27


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        };
    74    }
    75    /*
    76     *  @(#) gnu.targets; 1, 0, 1,431; 12-7-2010 14:48:08; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    77
    78     */
    79


module gnu.targets.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.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        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
    69            t_IArg          : { size: 4, align: 4 },
    70            t_Char          : { size: 1, align: 1 },
    71            t_Double        : { size: 8, align: 4 },
    72            t_Float         : { size: 4, align: 4 },
    73            t_Fxn           : { size: 4, align: 4 },
    74            t_Int           : { size: 4, align: 4 },
    75            t_Int8          : { size: 1, align: 1 },
    76            t_Int16         : { size: 2, align: 2 },
    77            t_Int32         : { size: 4, align: 4 },
    78            t_Int64         : { size: 8, align: 4 },
    79            t_Long          : { size: 4, align: 4 },
    80            t_LDouble       : { size: 8, align: 4 },
    81            t_LLong         : { size: 8, align: 4 },
    82            t_Ptr           : { size: 4, align: 4 },
    83            t_Short         : { size: 2, align: 2 },
    84        };
    85    }
    86    /*
    87     *  @(#) gnu.targets; 1, 0, 1,431; 12-7-2010 14:48:09; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    88
    89     */
    90


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        /*
    60         *  ======== compatibleSuffixes ========
    61         */
    62        override config String compatibleSuffixes[] = ["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        };
    81    }
    82    /*
    83     *  @(#) gnu.targets.arm; 1, 0, 0, 0,261; 12-7-2010 15:18:56; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    84
    85     */
    86


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        /*
    61         *  ======== compatibleSuffixes ========
    62         */
    63        override config String compatibleSuffixes[] = ["v5T", "470MV", "v5t"];
    64
    65        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
    66            t_IArg          : { size: 4, align: 4 },
    67            t_Char          : { size: 1, align: 1 },
    68            t_Double        : { size: 8, align: 4 },
    69            t_Float         : { size: 4, align: 4 },
    70            t_Fxn           : { size: 4, align: 4 },
    71            t_Int           : { size: 4, align: 4 },
    72            t_Int8          : { size: 1, align: 1 },
    73            t_Int16         : { size: 2, align: 2 },
    74            t_Int32         : { size: 4, align: 4 },
    75            t_Int64         : { size: 8, align: 4 },
    76            t_Long          : { size: 4, align: 4 },
    77            t_LDouble       : { size: 8, align: 4 },
    78            t_LLong         : { size: 8, align: 4 },
    79            t_Ptr           : { size: 4, align: 4 },
    80            t_Short         : { size: 2, align: 2 },
    81        };
    82    }
    83    /*
    84     *  @(#) gnu.targets.arm; 1, 0, 0, 0,261; 12-7-2010 15:18:56; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    85
    86     */
    87


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        };
    80    }
    81    /*
    82     *  @(#) gnu.targets.arm; 1, 0, 0, 0,261; 12-7-2010 15:18:56; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    83
    84     */
    85


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    requires xdc.bld [1,0,1];
    13    requires gnu.targets;
    14
    15    /*!
    16     *  ======== gnu.targets.arm ========
    17     *  GCC-based code generation targets for Arm
    18     *
    19     *  This package offers a generic support for different GNU Arm compilers.
    20     *  For the targets in this package, a user must set configuration parameter
    21     *  `LONGNAME` in `config.bld`. That parameter specifies the relative path to
    22     *  the compiler executable from the directory specified in `rootDir`.
    23     *
    24     *  @a(Example)
    25     *  If a version 2007q3 of the CodeSourcery GNU toolchain for Arm is installed
    26     *  in C:/CodeSourcery/arm-2007q3, the following settings in `config.bld`
    27     *  configure `gnu.targets.arm.GCArmv6` target to use that toolchain:
    28     *  @p(code)
    29     *  var GCArmv6 = xdc.module("gnu.targets.arm.GCArmv6");
    30     *  GCArmv6.rootDir = "C:/CodeSourcery/arm-2007q3";
    31     *  GCArmv6.LONGNAME = "bin/arm-none-linux-gnueabi-gcc";
    32     *  @p
    33     *
    34     *  @see gnu.targets.ITarget#LONGNAME
    35     *
    36     */
    37    package gnu.targets.arm [1,0,0,0] {
    38        module GCArmv5T, GCArmv6, GCArmv7A;
    39    }
    40    /*
    41     *  @(#) gnu.targets.arm; 1, 0, 0, 0,261; 12-7-2010 15:18:56; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    42
    43     */
    44


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,173; 12-7-2010 15:18:58; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    28
    29     */
    30


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,173; 12-7-2010 15:19:00; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    28
    29     */
    30


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,141; 12-7-2010 15:19:00; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    28
    29     */
    30


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        };
    71    }
    72    /*
    73     *  @(#) gnu.targets.codesourcery; 1, 0, 0, 0,286; 12-7-2010 15:19:02; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    74
    75     */
    76


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        };
   100    }
   101    /*
   102     *  @(#) gnu.targets.codesourcery; 1, 0, 0, 0,286; 12-7-2010 15:19:02; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   103
   104     */
   105


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,286; 12-7-2010 15:19:02; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    28
    29     */
    30


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,198; 12-7-2010 15:19:07; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    26
    27     */
    28


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,200; 12-7-2010 15:19:06; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    26
    27     */
    28


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,213; 12-7-2010 15:19:08; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    28
    29     */
    30


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,180; 12-7-2010 15:19:09; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    28
    29     */
    30


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,326; 12-7-2010 15:19:15; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    28
    29     */
    30


package gnu.targets.rts86GW

     1    /*
     2     *  Copyright 2010 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,325; 12-7-2010 15:19:14; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    22
    23     */
    24


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,325; 12-7-2010 15:19:15; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    28
    29     */
    30


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,53; 12-3-2010 12:35:35; /db/ztree/library/trees/platform/platform-l29x/src/
    24     */
    25


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,53; 12-3-2010 12:35:34; /db/ztree/library/trees/platform/platform-l29x/src/
    63     */
    64


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,299; 11-16-2010 11:19:50; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    42     */
    43


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,299; 11-16-2010 11:19:50; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    28     */
    29


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,299; 11-16-2010 11:19:50; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    67     */
    68


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,299; 11-16-2010 11:19:50; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    27     */
    28


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,299; 11-16-2010 11:19:50; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    67     */
    68


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,299; 11-16-2010 11:19:50; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    38     */
    39


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        };
   161    }
   162    /*
   163     *  @(#) microsoft.targets; 1, 0, 2, 0,431; 12-7-2010 14:48:07; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   164
   165     */
   166


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     *  @(#) microsoft.targets; 1, 0, 2, 0,431; 12-7-2010 14:48:07; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   159
   160     */
   161


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,431; 12-7-2010 14:48:07; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    24
    25     */
    26


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,431; 12-7-2010 14:48:07; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   178
   179     */
   180


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,431; 12-7-2010 14:48:07; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   320
   321     */
   322


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,184; 12-7-2010 14:48:14; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    29
    30     */
    31


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    /*
   184     *  @(#) microsoft.targets.arm; 1, 0, 0, 0,184; 12-7-2010 14:48:14; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   185
   186     */
   187


package microsoft.targets.arm.rts

     1    /*
     2     *  Copyright 2010 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,98; 12-7-2010 15:19:19; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    22
    23     */
    24


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,529; 12-7-2010 15:19:23; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    28
    29     */
    30


interface ti.catalog.ICpuDataSheet

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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    package ti.catalog;
    19
    20    metaonly interface ICpuDataSheet inherits xdc.platform.ICpuDataSheet {
    21
    22    instance:
    23
    24        /*!
    25         *  ======== cpuCore ========
    26         *  An array of strings identifying the compatible ISA for the device.
    27         *
    28         *  @_nodoc
    29         */
    30        config string isa;
    31
    32    }
    33    /*
    34     *  @(#) ti.catalog; 1, 0, 0,165; 12-3-2010 11:42:37; /db/ztree/library/trees/platform/platform-l29x/src/
    35     */
    36


package ti.catalog

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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 ti.catalog[1,0,0] {
    14        interface ICpuDataSheet;
    15    }
    16    /*
    17     *  @(#) ti.catalog; 1, 0, 0,165; 12-3-2010 11:42:37; /db/ztree/library/trees/platform/platform-l29x/src/
    18     */
    19


module ti.catalog.arm.AM1705

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:45; /db/ztree/library/trees/platform/platform-l29x/src/
    23     */
    24


module ti.catalog.arm.AM1707

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:45; /db/ztree/library/trees/platform/platform-l29x/src/
    23     */
    24


module ti.catalog.arm.AM1806

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:46; /db/ztree/library/trees/platform/platform-l29x/src/
    23     */
    24


module ti.catalog.arm.AM1808

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:46; /db/ztree/library/trees/platform/platform-l29x/src/
    23     */
    24


module ti.catalog.arm.CortexM3

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:46; /db/ztree/library/trees/platform/platform-l29x/src/
    45     */
    46


interface ti.catalog.arm.ILM3Sx7xx

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:47; /db/ztree/library/trees/platform/platform-l29x/src/
    67     */
    68


interface ti.catalog.arm.ILM3Sx9xx

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:47; /db/ztree/library/trees/platform/platform-l29x/src/
    67     */
    68


interface ti.catalog.arm.ILM3SxBxx

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:47; /db/ztree/library/trees/platform/platform-l29x/src/
    67     */
    68


interface ti.catalog.arm.IOMAP2x3x

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:47; /db/ztree/library/trees/platform/platform-l29x/src/
    46     */
    47


interface ti.catalog.arm.IOMAP3xxx

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:47; /db/ztree/library/trees/platform/platform-l29x/src/
    46     */
    47


interface ti.catalog.arm.ITMS320DA8xx

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:48; /db/ztree/library/trees/platform/platform-l29x/src/
    53     */
    54


module ti.catalog.arm.LM3S2B93

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:48; /db/ztree/library/trees/platform/platform-l29x/src/
    25     */
    26


module ti.catalog.arm.LM3S5B91

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:48; /db/ztree/library/trees/platform/platform-l29x/src/
    25     */
    26


module ti.catalog.arm.LM3S9B90

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:48; /db/ztree/library/trees/platform/platform-l29x/src/
    25     */
    26


module ti.catalog.arm.LM3S9B92

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:48; /db/ztree/library/trees/platform/platform-l29x/src/
    25     */
    26


module ti.catalog.arm.LM3S9B95

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:48; /db/ztree/library/trees/platform/platform-l29x/src/
    25     */
    26


module ti.catalog.arm.LM3S9B96

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:48; /db/ztree/library/trees/platform/platform-l29x/src/
    25     */
    26


module ti.catalog.arm.LM3S2793

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:48; /db/ztree/library/trees/platform/platform-l29x/src/
    25     */
    26


module ti.catalog.arm.LM3S5791

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:48; /db/ztree/library/trees/platform/platform-l29x/src/
    25     */
    26


module ti.catalog.arm.LM3S8962

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:48; /db/ztree/library/trees/platform/platform-l29x/src/
    25     */
    26


module ti.catalog.arm.LM3S9790

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:48; /db/ztree/library/trees/platform/platform-l29x/src/
    25     */
    26


module ti.catalog.arm.LM3S9792

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:48; /db/ztree/library/trees/platform/platform-l29x/src/
    25     */
    26


module ti.catalog.arm.OMAP2430

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:48; /db/ztree/library/trees/platform/platform-l29x/src/
    24     */
    25


module ti.catalog.arm.OMAP2431

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:48; /db/ztree/library/trees/platform/platform-l29x/src/
    24     */
    25


module ti.catalog.arm.OMAP2530

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:48; /db/ztree/library/trees/platform/platform-l29x/src/
    24     */
    25


module ti.catalog.arm.OMAP2531

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:49; /db/ztree/library/trees/platform/platform-l29x/src/
    24     */
    25


module ti.catalog.arm.OMAP3403

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:49; /db/ztree/library/trees/platform/platform-l29x/src/
    24     */
    25


module ti.catalog.arm.OMAP3405

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:49; /db/ztree/library/trees/platform/platform-l29x/src/
    24     */
    25


module ti.catalog.arm.OMAP3425

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:49; /db/ztree/library/trees/platform/platform-l29x/src/
    24     */
    25


module ti.catalog.arm.OMAP3503

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:49; /db/ztree/library/trees/platform/platform-l29x/src/
    24     */
    25


module ti.catalog.arm.OMAP3505

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:49; /db/ztree/library/trees/platform/platform-l29x/src/
    24     */
    25


module ti.catalog.arm.OMAP3515

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:49; /db/ztree/library/trees/platform/platform-l29x/src/
    24     */
    25


module ti.catalog.arm.OMAP3517

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:49; /db/ztree/library/trees/platform/platform-l29x/src/
    24     */
    25


module ti.catalog.arm.OMAP3525

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:49; /db/ztree/library/trees/platform/platform-l29x/src/
    24     */
    25


module ti.catalog.arm.OMAP3530

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:49; /db/ztree/library/trees/platform/platform-l29x/src/
    24     */
    25


module ti.catalog.arm.OMAPL108

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:49; /db/ztree/library/trees/platform/platform-l29x/src/
    23     */
    24


module ti.catalog.arm.OMAPL118

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:49; /db/ztree/library/trees/platform/platform-l29x/src/
    23     */
    24


module ti.catalog.arm.OMAPL137

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:49; /db/ztree/library/trees/platform/platform-l29x/src/
    23     */
    24


module ti.catalog.arm.OMAPL138

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:49; /db/ztree/library/trees/platform/platform-l29x/src/
    23     */
    24


package ti.catalog.arm

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,185; 12-3-2010 11:43:53; /db/ztree/library/trees/platform/platform-l29x/src/
    56     */
    57


module ti.catalog.arm.TMS320C1030

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,185; 12-3-2010 11:43:49; /db/ztree/library/trees/platform/platform-l29x/src/
    31     */
    32


module ti.catalog.arm.TMS320C3430

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:49; /db/ztree/library/trees/platform/platform-l29x/src/
    24     */
    25


module ti.catalog.arm.TMS320C5912

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,185; 12-3-2010 11:43:49; /db/ztree/library/trees/platform/platform-l29x/src/
    31     */
    32


module ti.catalog.arm.TMS320CDM510

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:50; /db/ztree/library/trees/platform/platform-l29x/src/
    54     */
    55


module ti.catalog.arm.TMS320CDM730

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:50; /db/ztree/library/trees/platform/platform-l29x/src/
    65     */
    66


module ti.catalog.arm.TMS320CDM740

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:50; /db/ztree/library/trees/platform/platform-l29x/src/
    65     */
    66


module ti.catalog.arm.TMS320CDM6446

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:50; /db/ztree/library/trees/platform/platform-l29x/src/
    72     */
    73


module ti.catalog.arm.TMS320CDM6467

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:50; /db/ztree/library/trees/platform/platform-l29x/src/
    72     */
    73


module ti.catalog.arm.TMS320DA828

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:51; /db/ztree/library/trees/platform/platform-l29x/src/
    23     */
    24


module ti.catalog.arm.TMS320DA830

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:51; /db/ztree/library/trees/platform/platform-l29x/src/
    23     */
    24


module ti.catalog.arm.TMS320DA840

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:51; /db/ztree/library/trees/platform/platform-l29x/src/
    23     */
    24


module ti.catalog.arm.TMS320DA850

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:51; /db/ztree/library/trees/platform/platform-l29x/src/
    23     */
    24


module ti.catalog.arm.TMS320DM355

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:51; /db/ztree/library/trees/platform/platform-l29x/src/
    54     */
    55


module ti.catalog.arm.TMS320DM357

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:51; /db/ztree/library/trees/platform/platform-l29x/src/
    36     */
    37


module ti.catalog.arm.TMS320DM365

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:51; /db/ztree/library/trees/platform/platform-l29x/src/
    36     */
    37


module ti.catalog.arm.TMS470R10

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:52; /db/ztree/library/trees/platform/platform-l29x/src/
    66     */
    67


module ti.catalog.arm.TMS570LS20216

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:52; /db/ztree/library/trees/platform/platform-l29x/src/
    77     */
    78


module ti.catalog.arm.TMS570PSF762

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:52; /db/ztree/library/trees/platform/platform-l29x/src/
    78     */
    79


module ti.catalog.arm.TNETV107X

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,185; 12-3-2010 11:43:52; /db/ztree/library/trees/platform/platform-l29x/src/
    42     */
    43


interface ti.catalog.arm.cortexa8.IOMAP3xxx

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:44:01; /db/ztree/library/trees/platform/platform-l29x/src/
    46     */
    47


interface ti.catalog.arm.cortexa8.ITI8148

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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:        0x00010000,
    47                space:      "code/data",
    48                access:     "RWX"
    49            }],
    50
    51            /*
    52             * OCMC (On-chip RAM) Bank 0
    53             * Size is 128K
    54             */
    55            ["OCMC_0", {
    56                name: "OCMC_0",
    57                base: 0x40300000,
    58                len:  0x00020000
    59            }],
    60
    61            /*
    62             * OCMC (On-chip RAM) Bank 1
    63             * Size is 128K
    64             */
    65            ["OCMC_1", {
    66                name: "OCMC_1",
    67                base: 0x40400000,
    68                len:  0x00020000
    69            }],
    70
    71        ];
    72    }
    73    /*
    74     *  @(#) ti.catalog.arm.cortexa8; 1, 0, 0,53; 12-3-2010 11:44:02; /db/ztree/library/trees/platform/platform-l29x/src/
    75     */
    76


interface ti.catalog.arm.cortexa8.ITI8168

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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:        0x00010000,
    49                space:      "code/data",
    50                access:     "RWX"
    51            }],
    52
    53            /*
    54             * OCMC (On-chip RAM) Bank 0
    55             * Size is 128K
    56             */
    57            ["OCMC_0", {
    58                name: "OCMC_0",
    59                base: 0x40300000,
    60                len:  0x00020000
    61            }],
    62
    63            /*
    64             * OCMC (On-chip RAM) Bank 1
    65             * Size is 128K
    66             */
    67            ["OCMC_1", {
    68                name: "OCMC_1",
    69                base: 0x40400000,
    70                len:  0x00020000
    71            }],
    72
    73        ];
    74    }
    75    /*
    76     *  @(#) ti.catalog.arm.cortexa8; 1, 0, 0,53; 12-3-2010 11:44:03; /db/ztree/library/trees/platform/platform-l29x/src/
    77     */
    78


module ti.catalog.arm.cortexa8.OMAP3403

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:44:04; /db/ztree/library/trees/platform/platform-l29x/src/
    24     */
    25


module ti.catalog.arm.cortexa8.OMAP3405

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:44:05; /db/ztree/library/trees/platform/platform-l29x/src/
    24     */
    25


module ti.catalog.arm.cortexa8.OMAP3425

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:44:05; /db/ztree/library/trees/platform/platform-l29x/src/
    24     */
    25


module ti.catalog.arm.cortexa8.OMAP3503

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:44:05; /db/ztree/library/trees/platform/platform-l29x/src/
    24     */
    25


module ti.catalog.arm.cortexa8.OMAP3505

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:44:05; /db/ztree/library/trees/platform/platform-l29x/src/
    24     */
    25


module ti.catalog.arm.cortexa8.OMAP3515

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:44:05; /db/ztree/library/trees/platform/platform-l29x/src/
    24     */
    25


module ti.catalog.arm.cortexa8.OMAP3517

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:44:05; /db/ztree/library/trees/platform/platform-l29x/src/
    24     */
    25


module ti.catalog.arm.cortexa8.OMAP3525

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:44:05; /db/ztree/library/trees/platform/platform-l29x/src/
    24     */
    25


module ti.catalog.arm.cortexa8.OMAP3530

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:44:05; /db/ztree/library/trees/platform/platform-l29x/src/
    24     */
    25


package ti.catalog.arm.cortexa8

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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    /*
    39     *  @(#) ti.catalog.arm.cortexa8; 1, 0, 0,53; 12-3-2010 11:44:06; /db/ztree/library/trees/platform/platform-l29x/src/
    40     */
    41


module ti.catalog.arm.cortexa8.TMS320C6A8168

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:44:06; /db/ztree/library/trees/platform/platform-l29x/src/
    23     */
    24


module ti.catalog.arm.cortexa8.TMS320C3430

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:44:05; /db/ztree/library/trees/platform/platform-l29x/src/
    24     */
    25


module ti.catalog.arm.cortexa8.TMS320DM8148

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:44:06; /db/ztree/library/trees/platform/platform-l29x/src/
    23     */
    24


module ti.catalog.arm.cortexa8.TMS320DM8168

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:44:06; /db/ztree/library/trees/platform/platform-l29x/src/
    23     */
    24


module ti.catalog.arm.cortexa8.TMS320TI814X

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:44:06; /db/ztree/library/trees/platform/platform-l29x/src/
    23     */
    24


module ti.catalog.arm.cortexa8.TMS320TI816X

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:44:06; /db/ztree/library/trees/platform/platform-l29x/src/
    23     */
    24


module ti.catalog.arm.cortexa9.OMAP4430

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:44:08; /db/ztree/library/trees/platform/platform-l29x/src/
    47     */
    48


package ti.catalog.arm.cortexa9

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,53; 12-3-2010 11:44:08; /db/ztree/library/trees/platform/platform-l29x/src/
    29     */
    30


interface ti.catalog.arm.cortexm3.ILM3Sx7xx

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:44:14; /db/ztree/library/trees/platform/platform-l29x/src/
    67     */
    68


interface ti.catalog.arm.cortexm3.ILM3Sx9xx

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:44:14; /db/ztree/library/trees/platform/platform-l29x/src/
    67     */
    68


interface ti.catalog.arm.cortexm3.ILM3SxBxx

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:44:14; /db/ztree/library/trees/platform/platform-l29x/src/
    67     */
    68


interface ti.catalog.arm.cortexm3.ITI8148

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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 ROM virtual address
    45             * Physical address is 0x55000000
    46             */
    47            ["L2_ROM", {
    48                name: "L2_ROM",
    49                base: 0x00000000,
    50                len:  0x00004000
    51            }],
    52
    53            /*
    54             * AMMU mapped L2 RAM virtual address
    55             * Physical address is 0x55020000
    56             * Size is 256K
    57             */
    58            ["L2_RAM", {
    59                name: "L2_RAM",
    60                base: 0x20000000,
    61                len:  0x00040000
    62            }],
    63
    64            /*
    65             * OCMC (On-chip RAM) Bank 0
    66             * Physical address is 0x40300000
    67             * Size is 128K
    68             */
    69            ["OCMC_0", {
    70                name: "OCMC_0",
    71                base: 0x00300000,
    72                len:  0x00020000
    73            }],
    74
    75            /*
    76             * OCMC (On-chip RAM) Bank 1
    77             * Physical address is 0x40400000
    78             * Size is 128K
    79             */
    80            ["OCMC_0", {
    81                name: "OCMC_0",
    82                base: 0x00400000,
    83                len:  0x00020000
    84            }],
    85        ];
    86    };
    87    /*
    88     *  @(#) ti.catalog.arm.cortexm3; 1, 0, 0,53; 12-3-2010 11:44:14; /db/ztree/library/trees/platform/platform-l29x/src/
    89     */
    90


interface ti.catalog.arm.cortexm3.ITI8168

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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 ROM virtual address
    47             * Physical address is 0x55000000
    48             */
    49            ["L2_ROM", {
    50                name: "L2_ROM",
    51                base: 0x00000000,
    52                len:  0x00004000
    53            }],
    54
    55            /*
    56             * AMMU mapped L2 RAM virtual address
    57             * Physical address is 0x55020000
    58             * Size is 256K
    59             */
    60            ["L2_RAM", {
    61                name: "L2_RAM",
    62                base: 0x20000000,
    63                len:  0x00040000
    64            }],
    65
    66            /*
    67             * OCMC (On-chip RAM) Bank 0
    68             * Physical address is 0x40300000
    69             * Size is 128K
    70             */
    71            ["OCMC_0", {
    72                name: "OCMC_0",
    73                base: 0x00300000,
    74                len:  0x00020000
    75            }],
    76
    77            /*
    78             * OCMC (On-chip RAM) Bank 1
    79             * Physical address is 0x40400000
    80             * Size is 128K
    81             */
    82            ["OCMC_0", {
    83                name: "OCMC_0",
    84                base: 0x00400000,
    85                len:  0x00020000
    86            }],
    87        ];
    88    };
    89    /*
    90     *  @(#) ti.catalog.arm.cortexm3; 1, 0, 0,53; 12-3-2010 11:44:14; /db/ztree/library/trees/platform/platform-l29x/src/
    91     */
    92


module ti.catalog.arm.cortexm3.LM3S2B93

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:44:14; /db/ztree/library/trees/platform/platform-l29x/src/
    25     */
    26


module ti.catalog.arm.cortexm3.LM3S5B91

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:44:14; /db/ztree/library/trees/platform/platform-l29x/src/
    25     */
    26


module ti.catalog.arm.cortexm3.LM3S9B90

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:44:14; /db/ztree/library/trees/platform/platform-l29x/src/
    25     */
    26


module ti.catalog.arm.cortexm3.LM3S9B92

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:44:15; /db/ztree/library/trees/platform/platform-l29x/src/
    25     */
    26


module ti.catalog.arm.cortexm3.LM3S9B95

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:44:15; /db/ztree/library/trees/platform/platform-l29x/src/
    25     */
    26


module ti.catalog.arm.cortexm3.LM3S9B96

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:44:15; /db/ztree/library/trees/platform/platform-l29x/src/
    25     */
    26


module ti.catalog.arm.cortexm3.LM3S2793

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:44:14; /db/ztree/library/trees/platform/platform-l29x/src/
    25     */
    26


module ti.catalog.arm.cortexm3.LM3S5791

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:44:14; /db/ztree/library/trees/platform/platform-l29x/src/
    25     */
    26


module ti.catalog.arm.cortexm3.LM3S8962

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:44:14; /db/ztree/library/trees/platform/platform-l29x/src/
    25     */
    26


module ti.catalog.arm.cortexm3.LM3S9790

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:44:14; /db/ztree/library/trees/platform/platform-l29x/src/
    25     */
    26


module ti.catalog.arm.cortexm3.LM3S9792

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:44:14; /db/ztree/library/trees/platform/platform-l29x/src/
    25     */
    26


module ti.catalog.arm.cortexm3.OMAP4430

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:44:15; /db/ztree/library/trees/platform/platform-l29x/src/
    67     */
    68


package ti.catalog.arm.cortexm3

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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    }
    42    /*
    43     *  @(#) ti.catalog.arm.cortexm3; 1, 0, 0,53; 12-3-2010 11:44:15; /db/ztree/library/trees/platform/platform-l29x/src/
    44     */
    45


module ti.catalog.arm.cortexm3.TMS320C6A8168

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:44:15; /db/ztree/library/trees/platform/platform-l29x/src/
    31     */
    32


module ti.catalog.arm.cortexm3.TMS320DM8148

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:44:15; /db/ztree/library/trees/platform/platform-l29x/src/
    31     */
    32


module ti.catalog.arm.cortexm3.TMS320DM8168

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:44:15; /db/ztree/library/trees/platform/platform-l29x/src/
    31     */
    32


module ti.catalog.arm.cortexm3.TMS320TI814X

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:44:15; /db/ztree/library/trees/platform/platform-l29x/src/
    31     */
    32


module ti.catalog.arm.cortexm3.TMS320TI816X

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:44:15; /db/ztree/library/trees/platform/platform-l29x/src/
    31     */
    32


module ti.catalog.arm.cortexm3.lm3init.Boot

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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    @Template("./Boot.xdt")
    23
    24    metaonly module Boot
    25    {
    26        metaonly struct ModuleView {
    27            Bool    configureClock;
    28            Bool    sysClockDivEnable;
    29            String  sysClockDiv;
    30            Bool    pwmClockDivEnable;
    31            String  pwmClockDiv;
    32            String  xtal;
    33            String  oscSrc;
    34            Bool    pllBypass;
    35            Bool    pllOutEnable;
    36            Bool    ioscDisable;
    37            Bool    moscDisable;
    38            Bool    configureLdo;
    39            String  ldoOut;
    40        }
    41
    42        @Facet
    43        metaonly config ViewInfo.Instance rovViewInfo =
    44            ViewInfo.create({
    45                viewMap: [
    46                [
    47                    'Module',
    48                    {
    49                        type: ViewInfo.MODULE,
    50                        viewInitFxn: 'viewInitModule',
    51                        structName: 'ModuleView'
    52                    }
    53                ],
    54                ]
    55            });
    56
    57
    58        enum SysDiv {
    59            SYSDIV_1     = 0x07800000,  /* Processor clock is osc/pll /1 */
    60            SYSDIV_2     = 0x00C00000,  /* Processor clock is osc/pll /2 */
    61            SYSDIV_3     = 0x01400000,  /* Processor clock is osc/pll /3 */
    62            SYSDIV_4     = 0x01C00000,  /* Processor clock is osc/pll /4 */
    63            SYSDIV_5     = 0x02400000,  /* Processor clock is osc/pll /5 */
    64            SYSDIV_6     = 0x02C00000,  /* Processor clock is osc/pll /6 */
    65            SYSDIV_7     = 0x03400000,  /* Processor clock is osc/pll /7 */
    66            SYSDIV_8     = 0x03C00000,  /* Processor clock is osc/pll /8 */
    67            SYSDIV_9     = 0x04400000,  /* Processor clock is osc/pll /9 */
    68            SYSDIV_10    = 0x04C00000,  /* Processor clock is osc/pll /10 */
    69            SYSDIV_11    = 0x05400000,  /* Processor clock is osc/pll /11 */
    70            SYSDIV_12    = 0x05C00000,  /* Processor clock is osc/pll /12 */
    71            SYSDIV_13    = 0x06400000,  /* Processor clock is osc/pll /13 */
    72            SYSDIV_14    = 0x06C00000,  /* Processor clock is osc/pll /14 */
    73            SYSDIV_15    = 0x07400000,  /* Processor clock is osc/pll /15 */
    74            SYSDIV_16    = 0x07C00000,  /* Processor clock is osc/pll /16 */
    75            SYSDIV_17    = 0x88400000,  /* Processor clock is osc/pll /17 */
    76            SYSDIV_18    = 0x88C00000,  /* Processor clock is osc/pll /18 */
    77            SYSDIV_19    = 0x89400000,  /* Processor clock is osc/pll /19 */
    78            SYSDIV_20    = 0x89C00000,  /* Processor clock is osc/pll /20 */
    79            SYSDIV_21    = 0x8A400000,  /* Processor clock is osc/pll /21 */
    80            SYSDIV_22    = 0x8AC00000,  /* Processor clock is osc/pll /22 */
    81            SYSDIV_23    = 0x8B400000,  /* Processor clock is osc/pll /23 */
    82            SYSDIV_24    = 0x8BC00000,  /* Processor clock is osc/pll /24 */
    83            SYSDIV_25    = 0x8C400000,  /* Processor clock is osc/pll /25 */
    84            SYSDIV_26    = 0x8CC00000,  /* Processor clock is osc/pll /26 */
    85            SYSDIV_27    = 0x8D400000,  /* Processor clock is osc/pll /27 */
    86            SYSDIV_28    = 0x8DC00000,  /* Processor clock is osc/pll /28 */
    87            SYSDIV_29    = 0x8E400000,  /* Processor clock is osc/pll /29 */
    88            SYSDIV_30    = 0x8EC00000,  /* Processor clock is osc/pll /30 */
    89            SYSDIV_31    = 0x8F400000,  /* Processor clock is osc/pll /31 */
    90            SYSDIV_32    = 0x8FC00000,  /* Processor clock is osc/pll /32 */
    91            SYSDIV_33    = 0x90400000,  /* Processor clock is osc/pll /33 */
    92            SYSDIV_34    = 0x90C00000,  /* Processor clock is osc/pll /34 */
    93            SYSDIV_35    = 0x91400000,  /* Processor clock is osc/pll /35 */
    94            SYSDIV_36    = 0x91C00000,  /* Processor clock is osc/pll /36 */
    95            SYSDIV_37    = 0x92400000,  /* Processor clock is osc/pll /37 */
    96            SYSDIV_38    = 0x92C00000,  /* Processor clock is osc/pll /38 */
    97            SYSDIV_39    = 0x93400000,  /* Processor clock is osc/pll /39 */
    98            SYSDIV_40    = 0x93C00000,  /* Processor clock is osc/pll /40 */
    99            SYSDIV_41    = 0x94400000,  /* Processor clock is osc/pll /41 */
   100            SYSDIV_42    = 0x94C00000,  /* Processor clock is osc/pll /42 */
   101            SYSDIV_43    = 0x95400000,  /* Processor clock is osc/pll /43 */
   102            SYSDIV_44    = 0x95C00000,  /* Processor clock is osc/pll /44 */
   103            SYSDIV_45    = 0x96400000,  /* Processor clock is osc/pll /45 */
   104            SYSDIV_46    = 0x96C00000,  /* Processor clock is osc/pll /46 */
   105            SYSDIV_47    = 0x97400000,  /* Processor clock is osc/pll /47 */
   106            SYSDIV_48    = 0x97C00000,  /* Processor clock is osc/pll /48 */
   107            SYSDIV_49    = 0x98400000,  /* Processor clock is osc/pll /49 */
   108            SYSDIV_50    = 0x98C00000,  /* Processor clock is osc/pll /50 */
   109            SYSDIV_51    = 0x99400000,  /* Processor clock is osc/pll /51 */
   110            SYSDIV_52    = 0x99C00000,  /* Processor clock is osc/pll /52 */
   111            SYSDIV_53    = 0x9A400000,  /* Processor clock is osc/pll /53 */
   112            SYSDIV_54    = 0x9AC00000,  /* Processor clock is osc/pll /54 */
   113            SYSDIV_55    = 0x9B400000,  /* Processor clock is osc/pll /55 */
   114            SYSDIV_56    = 0x9BC00000,  /* Processor clock is osc/pll /56 */
   115            SYSDIV_57    = 0x9C400000,  /* Processor clock is osc/pll /57 */
   116            SYSDIV_58    = 0x9CC00000,  /* Processor clock is osc/pll /58 */
   117            SYSDIV_59    = 0x9D400000,  /* Processor clock is osc/pll /59 */
   118            SYSDIV_60    = 0x9DC00000,  /* Processor clock is osc/pll /60 */
   119            SYSDIV_61    = 0x9E400000,  /* Processor clock is osc/pll /61 */
   120            SYSDIV_62    = 0x9EC00000,  /* Processor clock is osc/pll /62 */
   121            SYSDIV_63    = 0x9F400000,  /* Processor clock is osc/pll /63 */
   122            SYSDIV_64    = 0x9FC00000,  /* Processor clock is osc/pll /64 */
   123            SYSDIV_2_5   = 0xC1000000,  /* Processor clock is pll / 2.5 */
   124            SYSDIV_3_5   = 0xC1800000,  /* Processor clock is pll / 3.5 */
   125            SYSDIV_4_5   = 0xC2000000,  /* Processor clock is pll / 4.5 */
   126            SYSDIV_5_5   = 0xC2800000,  /* Processor clock is pll / 5.5 */
   127            SYSDIV_6_5   = 0xC3000000,  /* Processor clock is pll / 6.5 */
   128            SYSDIV_7_5   = 0xC3800000,  /* Processor clock is pll / 7.5 */
   129            SYSDIV_8_5   = 0xC4000000,  /* Processor clock is pll / 8.5 */
   130            SYSDIV_9_5   = 0xC4800000,  /* Processor clock is pll / 9.5 */
   131            SYSDIV_10_5  = 0xC5000000,  /* Processor clock is pll / 10.5 */
   132            SYSDIV_11_5  = 0xC5800000,  /* Processor clock is pll / 11.5 */
   133            SYSDIV_12_5  = 0xC6000000,  /* Processor clock is pll / 12.5 */
   134            SYSDIV_13_5  = 0xC6800000,  /* Processor clock is pll / 13.5 */
   135            SYSDIV_14_5  = 0xC7000000,  /* Processor clock is pll / 14.5 */
   136            SYSDIV_15_5  = 0xC7800000,  /* Processor clock is pll / 15.5 */
   137            SYSDIV_16_5  = 0xC8000000,  /* Processor clock is pll / 16.5 */
   138            SYSDIV_17_5  = 0xC8800000,  /* Processor clock is pll / 17.5 */
   139            SYSDIV_18_5  = 0xC9000000,  /* Processor clock is pll / 18.5 */
   140            SYSDIV_19_5  = 0xC9800000,  /* Processor clock is pll / 19.5 */
   141            SYSDIV_20_5  = 0xCA000000,  /* Processor clock is pll / 20.5 */
   142            SYSDIV_21_5  = 0xCA800000,  /* Processor clock is pll / 21.5 */
   143            SYSDIV_22_5  = 0xCB000000,  /* Processor clock is pll / 22.5 */
   144            SYSDIV_23_5  = 0xCB800000,  /* Processor clock is pll / 23.5 */
   145            SYSDIV_24_5  = 0xCC000000,  /* Processor clock is pll / 24.5 */
   146            SYSDIV_25_5  = 0xCC800000,  /* Processor clock is pll / 25.5 */
   147            SYSDIV_26_5  = 0xCD000000,  /* Processor clock is pll / 26.5 */
   148            SYSDIV_27_5  = 0xCD800000,  /* Processor clock is pll / 27.5 */
   149            SYSDIV_28_5  = 0xCE000000,  /* Processor clock is pll / 28.5 */
   150            SYSDIV_29_5  = 0xCE800000,  /* Processor clock is pll / 29.5 */
   151            SYSDIV_30_5  = 0xCF000000,  /* Processor clock is pll / 30.5 */
   152            SYSDIV_31_5  = 0xCF800000,  /* Processor clock is pll / 31.5 */
   153            SYSDIV_32_5  = 0xD0000000,  /* Processor clock is pll / 32.5 */
   154            SYSDIV_33_5  = 0xD0800000,  /* Processor clock is pll / 33.5 */
   155            SYSDIV_34_5  = 0xD1000000,  /* Processor clock is pll / 34.5 */
   156            SYSDIV_35_5  = 0xD1800000,  /* Processor clock is pll / 35.5 */
   157            SYSDIV_36_5  = 0xD2000000,  /* Processor clock is pll / 36.5 */
   158            SYSDIV_37_5  = 0xD2800000,  /* Processor clock is pll / 37.5 */
   159            SYSDIV_38_5  = 0xD3000000,  /* Processor clock is pll / 38.5 */
   160            SYSDIV_39_5  = 0xD3800000,  /* Processor clock is pll / 39.5 */
   161            SYSDIV_40_5  = 0xD4000000,  /* Processor clock is pll / 40.5 */
   162            SYSDIV_41_5  = 0xD4800000,  /* Processor clock is pll / 41.5 */
   163            SYSDIV_42_5  = 0xD5000000,  /* Processor clock is pll / 42.5 */
   164            SYSDIV_43_5  = 0xD5800000,  /* Processor clock is pll / 43.5 */
   165            SYSDIV_44_5  = 0xD6000000,  /* Processor clock is pll / 44.5 */
   166            SYSDIV_45_5  = 0xD6800000,  /* Processor clock is pll / 45.5 */
   167            SYSDIV_46_5  = 0xD7000000,  /* Processor clock is pll / 46.5 */
   168            SYSDIV_47_5  = 0xD7800000,  /* Processor clock is pll / 47.5 */
   169            SYSDIV_48_5  = 0xD8000000,  /* Processor clock is pll / 48.5 */
   170            SYSDIV_49_5  = 0xD8800000,  /* Processor clock is pll / 49.5 */
   171            SYSDIV_50_5  = 0xD9000000,  /* Processor clock is pll / 50.5 */
   172            SYSDIV_51_5  = 0xD9800000,  /* Processor clock is pll / 51.5 */
   173            SYSDIV_52_5  = 0xDA000000,  /* Processor clock is pll / 52.5 */
   174            SYSDIV_53_5  = 0xDA800000,  /* Processor clock is pll / 53.5 */
   175            SYSDIV_54_5  = 0xDB000000,  /* Processor clock is pll / 54.5 */
   176            SYSDIV_55_5  = 0xDB800000,  /* Processor clock is pll / 55.5 */
   177            SYSDIV_56_5  = 0xDC000000,  /* Processor clock is pll / 56.5 */
   178            SYSDIV_57_5  = 0xDC800000,  /* Processor clock is pll / 57.5 */
   179            SYSDIV_58_5  = 0xDD000000,  /* Processor clock is pll / 58.5 */
   180            SYSDIV_59_5  = 0xDD800000,  /* Processor clock is pll / 59.5 */
   181            SYSDIV_60_5  = 0xDE000000,  /* Processor clock is pll / 60.5 */
   182            SYSDIV_61_5  = 0xDE800000,  /* Processor clock is pll / 61.5 */
   183            SYSDIV_62_5  = 0xDF000000,  /* Processor clock is pll / 62.5 */
   184            SYSDIV_63_5  = 0xDF800000   /* Processor clock is pll / 63.5 */
   185        }
   186
   187        enum PwmDiv {
   188            PWMDIV_1     = 0x00000000,  /* PWM clock /1 */
   189            PWMDIV_2     = 0x00100000,  /* PWM clock /2 */
   190            PWMDIV_4     = 0x00120000,  /* PWM clock /4 */
   191            PWMDIV_8     = 0x00140000,  /* PWM clock /8 */
   192            PWMDIV_16    = 0x00160000,  /* PWM clock /16 */
   193            PWMDIV_32    = 0x00180000,  /* PWM clock /32 */
   194            PWMDIV_64    = 0x001A0000   /* PWM clock /64 */
   195        }
   196
   197        enum XtalFreq {
   198            XTAL_1MHZ    = 0x00000000,  /* Using a 1MHz crystal */
   199            XTAL_1_84MHZ = 0x00000040,  /* Using a 1.8432MHz crystal */
   200            XTAL_2MHZ    = 0x00000080,  /* Using a 2MHz crystal */
   201            XTAL_2_45MHZ = 0x000000C0,  /* Using a 2.4576MHz crystal */
   202            XTAL_3_57MHZ = 0x00000100,  /* Using a 3.579545MHz crystal */
   203            XTAL_3_68MHZ = 0x00000140,  /* Using a 3.6864MHz crystal */
   204            XTAL_4MHZ    = 0x00000180,  /* Using a 4MHz crystal */
   205            XTAL_4_09MHZ = 0x000001C0,  /* Using a 4.096MHz crystal */
   206            XTAL_4_91MHZ = 0x00000200,  /* Using a 4.9152MHz crystal */
   207            XTAL_5MHZ    = 0x00000240,  /* Using a 5MHz crystal */
   208            XTAL_5_12MHZ = 0x00000280,  /* Using a 5.12MHz crystal */
   209            XTAL_6MHZ    = 0x000002C0,  /* Using a 6MHz crystal */
   210            XTAL_6_14MHZ = 0x00000300,  /* Using a 6.144MHz crystal */
   211            XTAL_7_37MHZ = 0x00000340,  /* Using a 7.3728MHz crystal */
   212            XTAL_8MHZ    = 0x00000380,  /* Using a 8MHz crystal */
   213            XTAL_8_19MHZ = 0x000003C0,  /* Using a 8.192MHz crystal */
   214            XTAL_10MHZ   = 0x00000400,  /* 10.0 MHz (USB) */
   215            XTAL_12MHZ   = 0x00000440,  /* 12.0 MHz (USB) */
   216            XTAL_12_2MHZ = 0x00000480,  /* 12.288 MHz */
   217            XTAL_13_5MHZ = 0x000004C0,  /* 13.56 MHz */
   218            XTAL_14_3MHZ = 0x00000500,  /* 14.31818 MHz */
   219            XTAL_16MHZ   = 0x00000540,  /* 16.0 MHz (USB) */
   220            XTAL_16_3MHZ = 0x00000580   /* 16.384 MHz */
   221        }
   222
   223        enum OscSrc {
   224            OSCSRC_MAIN  = 0x00000000,  /* Use the main oscillator */
   225            OSCSRC_INT   = 0x00000010,  /* Use the internal oscillator */
   226            OSCSRC_INT4  = 0x00000020,  /* Use the internal oscillator / 4 */
   227            OSCSRC_30    = 0x00000030   /* 30 KHz internal oscillator */
   228        }
   229
   230        enum LdoOut {
   231            LDOPCTL_2_55V    = 0x0000001F,  /* LDO output of 2.55V */
   232            LDOPCTL_2_60V    = 0x0000001E,  /* LDO output of 2.60V */
   233            LDOPCTL_2_65V    = 0x0000001D,  /* LDO output of 2.65V */
   234            LDOPCTL_2_70V    = 0x0000001C,  /* LDO output of 2.70V */
   235            LDOPCTL_2_75V    = 0x0000001B,  /* LDO output of 2.75V */
   236            LDOPCTL_2_25V    = 0x00000005,  /* LDO output of 2.25V */
   237            LDOPCTL_2_30V    = 0x00000004,  /* LDO output of 2.30V */
   238            LDOPCTL_2_35V    = 0x00000003,  /* LDO output of 2.35V */
   239            LDOPCTL_2_40V    = 0x00000002,  /* LDO output of 2.40V */
   240            LDOPCTL_2_45V    = 0x00000001,  /* LDO output of 2.45V */
   241            LDOPCTL_2_50V    = 0x00000000   /* LDO output of 2.50V */
   242        }
   243
   244        /*!
   245         *  Clock configuration flag, default is false.
   246         *
   247         *  Set to true to automatically configure the Clock.
   248         */
   249        config Bool configureClock = false;
   250
   251        /*! SYS Clock Divisor */
   252        config SysDiv sysClockDiv = SYSDIV_1;
   253
   254        /*! PWM Clock Divisor */
   255        config PwmDiv pwmClockDiv = PWMDIV_1;
   256
   257        /*! Crystal Value */
   258        config XtalFreq xtal = XTAL_1MHZ;
   259
   260        /*! Oscillator Source */
   261        config OscSrc oscSrc = OSCSRC_MAIN;
   262
   263        /*! PLL Bypass flag */
   264        config Bool pllBypass = false;
   265
   266        /*! PLL Output Enable flag */
   267        config Bool pllOutEnable = false;
   268
   269        /*! Internal Oscillator Disable flag */
   270        config Bool ioscDisable = false;
   271
   272        /*! Main Oscillator Disable flag */
   273        config Bool moscDisable = false;
   274
   275        /*!
   276         *  LDO configuration flag, default is false.
   277         *
   278         *  Set to true to automatically configure the LDO.
   279         */
   280        config Bool configureLdo = false;
   281
   282        /*!
   283         *  LDO VADJ setting, default is 2.5V
   284         */
   285        config LdoOut ldoOut = LDOPCTL_2_50V;
   286
   287        /*!
   288         *  Code section that Boot module code is in.
   289         *
   290         *  To place this section into a memory segment yourself, add the
   291         *  following to you configuration file:
   292         *
   293         *  @p(code)
   294         *  Program.sectMap[Boot.bootCodeSection] = new Program.SectionSpec();
   295         *  Program.sectMap[Boot.bootCodeSection].loadSegment = "yourBootCodeMemorySegment";
   296         *  @p
   297         *
   298         *  or to place the code at a specific address:
   299         *
   300         *  @p(code)
   301         *  Program.sectMap[Boot.bootCodeSection] = new Program.SectionSpec();
   302         *  Program.sectMap[Boot.bootCodeSection].loadAdress = yourBootCodeAddress;
   303         *  @p
   304         *
   305         */
   306        readonly config String bootCodeSection = ".bootCodeSection";
   307
   308        /*!
   309         *  @_nodoc
   310         *  computed RCC value based on settings
   311         */
   312        config UInt ulConfig;
   313    };
   314    /*
   315     *  @(#) ti.catalog.arm.cortexm3.lm3init; 1, 0, 0,53; 12-3-2010 11:43:08; /db/ztree/library/trees/platform/platform-l29x/src/
   316     */
   317


package ti.catalog.arm.cortexm3.lm3init

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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     */
    21    package ti.catalog.arm.cortexm3.lm3init[1,0,0] {
    22        module Boot;
    23    }
    24    /*
    25     *  @(#) ti.catalog.arm.cortexm3.lm3init; 1, 0, 0,53; 12-3-2010 11:43:12; /db/ztree/library/trees/platform/platform-l29x/src/
    26     */
    27


package ti.catalog.arm.cortexr4

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,53; 12-3-2010 11:43:15; /db/ztree/library/trees/platform/platform-l29x/src/
    28     */
    29


module ti.catalog.arm.cortexr4.TMS570LS20216

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:43:14; /db/ztree/library/trees/platform/platform-l29x/src/
    77     */
    78


module ti.catalog.arm.cortexr4.TMS570PSF762

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,53; 12-3-2010 11:43:14; /db/ztree/library/trees/platform/platform-l29x/src/
    78     */
    79


module ti.catalog.arm.nda.Ducati

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,81; 12-3-2010 12:36:12; /db/ztree/library/trees/platform/platform-l29x/src/
    64     */
    65


package ti.catalog.arm.nda

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,81; 12-3-2010 12:36:12; /db/ztree/library/trees/platform/platform-l29x/src/
    28     */
    29


package ti.catalog.arm.peripherals.timers

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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 ti.catalog.arm.peripherals.timers {
    14        module Timer;
    15    }
    16    /*
    17     *  @(#) ti.catalog.arm.peripherals.timers; 1,0,0,80; 12-3-2010 11:42:44; /db/ztree/library/trees/platform/platform-l29x/src/
    18     */
    19


module ti.catalog.arm.peripherals.timers.Timer

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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 Timer inherits xdc.platform.IPeripheral {
    14
    15    instance:
    16        /*!
    17         *  ======== baseAddr ========
    18         *  Address of the peripheral's control register.
    19         *
    20         *  A peripheral's registers are commonly accessed through a structure
    21         *  that defines the offsets of a particular register from the lowest
    22         *  address mapped to a peripheral. That lowest address is specified by
    23         *  this parameter.
    24         */
    25        config UInt baseAddr;
    26
    27        /*!
    28         *  ======== intNum ========
    29         *  Interrupt source number
    30         *
    31         */
    32        config UInt intNum;
    33    }
    34    /*
    35     *  @(#) ti.catalog.arm.peripherals.timers; 1,0,0,80; 12-3-2010 11:42:43; /db/ztree/library/trees/platform/platform-l29x/src/
    36     */
    37


interface ti.catalog.c2800.ITMS320C28xx

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,297; 12-3-2010 11:42:48; /db/ztree/library/trees/platform/platform-l29x/src/
    37     */
    38


interface ti.catalog.c2800.ITMS320C283xx

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,297; 12-3-2010 11:42:48; /db/ztree/library/trees/platform/platform-l29x/src/
    32     */
    33


interface ti.catalog.c2800.ITMS320C28026

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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:  0x004000,
    67                page: 0,
    68                space: "code"
    69            }],
    70
    71            ["BOOTROM", {
    72                comment: "On-Chip Boot ROM",
    73                name: "BOOTROM",
    74                base: 0x3fe000,
    75                len:  0x001fc0,
    76                page: 0,
    77                space: "code"
    78            }],
    79        ];
    80    }
    81    /*
    82     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,297; 12-3-2010 11:42:47; /db/ztree/library/trees/platform/platform-l29x/src/
    83     */
    84


interface ti.catalog.c2800.ITMS320C28027

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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:  0x008000,
    67                page: 0,
    68                space: "code"
    69            }],
    70
    71            ["BOOTROM", {
    72                comment: "On-Chip Boot ROM",
    73                name: "BOOTROM",
    74                base: 0x3fe000,
    75                len:  0x001fc0,
    76                page: 0,
    77                space: "code"
    78            }],
    79        ];
    80    }
    81    /*
    82     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,297; 12-3-2010 11:42:48; /db/ztree/library/trees/platform/platform-l29x/src/
    83     */
    84


interface ti.catalog.c2800.ITMS320C28032

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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:  0x008000,
    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,297; 12-3-2010 11:42:48; /db/ztree/library/trees/platform/platform-l29x/src/
    92     */
    93


interface ti.catalog.c2800.ITMS320C28034

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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:  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: "64K X 16 Flash memory",
    73                name: "FLASH",
    74                base: 0x3e8000,
    75                len:  0x010000,
    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,297; 12-3-2010 11:42:48; /db/ztree/library/trees/platform/platform-l29x/src/
    92     */
    93


interface ti.catalog.c2800.ITMS320C28342

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,297; 12-3-2010 11:42:48; /db/ztree/library/trees/platform/platform-l29x/src/
    84     */
    85


interface ti.catalog.c2800.ITMS320C28344

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,297; 12-3-2010 11:42:48; /db/ztree/library/trees/platform/platform-l29x/src/
    92     */
    93


interface ti.catalog.c2800.ITMS320C28346

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,297; 12-3-2010 11:42:48; /db/ztree/library/trees/platform/platform-l29x/src/
    92     */
    93


package ti.catalog.c2800

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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    /*
    56     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,297; 12-3-2010 11:42:51; /db/ztree/library/trees/platform/platform-l29x/src/
    57     */
    58


module ti.catalog.c2800.TMS320C2801

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,297; 12-3-2010 11:42:48; /db/ztree/library/trees/platform/platform-l29x/src/
    93     */
    94


module ti.catalog.c2800.TMS320C2802

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,297; 12-3-2010 11:42:49; /db/ztree/library/trees/platform/platform-l29x/src/
    93     */
    94


module ti.catalog.c2800.TMS320C2806

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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:  0x008000,
    88                page: 0,
    89                space: "code/data"
    90            }],
    91
    92            ["BOOTROM", {
    93                comment: "On-Chip Boot ROM",
    94                name: "BOOTROM",
    95                base: 0x3FC000,
    96                len:  0x003FC0,
    97                page: 0,
    98                space: "code/data"
    99            }],
   100        ];
   101    };
   102    /*
   103     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,297; 12-3-2010 11:42:50; /db/ztree/library/trees/platform/platform-l29x/src/
   104     */
   105


module ti.catalog.c2800.TMS320C2808

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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:  0x010000,
    79                page: 0,
    80                space: "code/data"
    81            }],
    82
    83            ["H0SARAM", {
    84                comment: "On-Chip RAM Memory",
    85                name: "H0SARAM",
    86                base: 0xA000,
    87                len:  0x2000,
    88                page: 0,
    89                space: "code/data"
    90            }],
    91
    92            ["BOOTROM", {
    93                comment: "On-Chip Boot ROM",
    94                name: "BOOTROM",
    95                base: 0x3FF000,
    96                len:  0x000FC0,
    97                page: 0,
    98                space: "code/data"
    99            }],
   100        ];
   101    };
   102    /*
   103     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,297; 12-3-2010 11:42:50; /db/ztree/library/trees/platform/platform-l29x/src/
   104     */
   105


module ti.catalog.c2800.TMS320C2809

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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:  0x020000,
    77                page: 0,
    78                space: "code/data"
    79            }],
    80
    81            ["H0SARAM", {
    82                comment: "On-Chip RAM Memory",
    83                name: "H0SARAM",
    84                base: 0xA000,
    85                len:  0x2000,
    86                page: 0,
    87                space: "code/data"
    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,297; 12-3-2010 11:42:50; /db/ztree/library/trees/platform/platform-l29x/src/
   102     */
   103


module ti.catalog.c2800.TMS320C2810

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,297; 12-3-2010 11:42:50; /db/ztree/library/trees/platform/platform-l29x/src/
    40     */
    41


module ti.catalog.c2800.TMS320C2811

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,297; 12-3-2010 11:42:50; /db/ztree/library/trees/platform/platform-l29x/src/
    40     */
    41


module ti.catalog.c2800.TMS320C2812

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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:  0x20000,
    76                page: 0,
    77                space: "code/data"
    78            }],
    79
    80            ["H0SARAM", {
    81                comment: "On-Chip RAM Memory",
    82                name: "H0SARAM",
    83                base: 0x3f8000,
    84                len:  0x2000,
    85                page: 0,
    86                space: "code/data"
    87            }],
    88
    89            ["BOOTROM", {
    90                comment: "On-Chip Boot ROM",
    91                name: "BOOTROM",
    92                base: 0x3ff000,
    93                len:  0xfc0,
    94                page: 0,
    95                space: "code/data"
    96            }],
    97        ];
    98    };
    99    /*
   100     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,297; 12-3-2010 11:42:50; /db/ztree/library/trees/platform/platform-l29x/src/
   101     */
   102


module ti.catalog.c2800.TMS320C28015

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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:  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,297; 12-3-2010 11:42:49; /db/ztree/library/trees/platform/platform-l29x/src/
    93     */
    94


module ti.catalog.c2800.TMS320C28016

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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:  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,297; 12-3-2010 11:42:49; /db/ztree/library/trees/platform/platform-l29x/src/
    93     */
    94


module ti.catalog.c2800.TMS320C28020

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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:  0x004000,
    67                page: 0,
    68                space: "code"
    69            }],
    70
    71            ["BOOTROM", {
    72                comment: "On-Chip Boot ROM",
    73                name: "BOOTROM",
    74                base: 0x3fe000,
    75                len:  0x001fc0,
    76                page: 0,
    77                space: "code"
    78            }],
    79        ];
    80    }
    81    /*
    82     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,297; 12-3-2010 11:42:49; /db/ztree/library/trees/platform/platform-l29x/src/
    83     */
    84


module ti.catalog.c2800.TMS320C28021

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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:  0x008000,
    67                page: 0,
    68                space: "code"
    69            }],
    70
    71            ["BOOTROM", {
    72                comment: "On-Chip Boot ROM",
    73                name: "BOOTROM",
    74                base: 0x3fe000,
    75                len:  0x001fc0,
    76                page: 0,
    77                space: "code"
    78            }],
    79        ];
    80    }
    81    /*
    82     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,297; 12-3-2010 11:42:49; /db/ztree/library/trees/platform/platform-l29x/src/
    83     */
    84


module ti.catalog.c2800.TMS320C28022

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,297; 12-3-2010 11:42:49; /db/ztree/library/trees/platform/platform-l29x/src/
    18     */
    19


module ti.catalog.c2800.TMS320C28023

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,297; 12-3-2010 11:42:49; /db/ztree/library/trees/platform/platform-l29x/src/
    18     */
    19


module ti.catalog.c2800.TMS320C28026

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,297; 12-3-2010 11:42:49; /db/ztree/library/trees/platform/platform-l29x/src/
    18     */
    19


module ti.catalog.c2800.TMS320C28027

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,297; 12-3-2010 11:42:49; /db/ztree/library/trees/platform/platform-l29x/src/
    18     */
    19


module ti.catalog.c2800.TMS320C28030

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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:  0x004000,
    76                page: 0,
    77                space: "code/data"
    78            }],
    79
    80            ["L0SARAM", {
    81                comment: "On-Chip L0 SARAM Memory",
    82                name: "L0SARAM",
    83                base: 0x3F8000,
    84                len:  0x000800,
    85                page: 0,
    86                space: "code/data"
    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/data"
    96            }],
    97        ];
    98    };
    99    /*
   100     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,297; 12-3-2010 11:42:49; /db/ztree/library/trees/platform/platform-l29x/src/
   101     */
   102


module ti.catalog.c2800.TMS320C28031

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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:  0x008000,
    76                page: 0,
    77                space: "code/data"
    78            }],
    79
    80            ["L0SARAM", {
    81                comment: "On-Chip L0 SARAM Memory",
    82                name: "L0SARAM",
    83                base: 0x3F8000,
    84                len:  0x000800,
    85                page: 0,
    86                space: "code/data"
    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/data"
    96            }],
    97        ];
    98    };
    99    /*
   100     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,297; 12-3-2010 11:42:49; /db/ztree/library/trees/platform/platform-l29x/src/
   101     */
   102


module ti.catalog.c2800.TMS320C28032

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,297; 12-3-2010 11:42:49; /db/ztree/library/trees/platform/platform-l29x/src/
    18     */
    19


module ti.catalog.c2800.TMS320C28033

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,297; 12-3-2010 11:42:49; /db/ztree/library/trees/platform/platform-l29x/src/
    18     */
    19


module ti.catalog.c2800.TMS320C28034

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,297; 12-3-2010 11:42:49; /db/ztree/library/trees/platform/platform-l29x/src/
    18     */
    19


module ti.catalog.c2800.TMS320C28035

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,297; 12-3-2010 11:42:49; /db/ztree/library/trees/platform/platform-l29x/src/
    18     */
    19


module ti.catalog.c2800.TMS320C28044

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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:  0x010000,
    86                page: 0,
    87                space: "code/data"
    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,297; 12-3-2010 11:42:50; /db/ztree/library/trees/platform/platform-l29x/src/
   102     */
   103


module ti.catalog.c2800.TMS320C28232

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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:  0x10000,
    86                page: 0,
    87                space: "code"
    88            }],
    89
    90            ["BOOTROM", {
    91                comment: "On-Chip Boot ROM",
    92                name: "BOOTROM",
    93                base: 0x3fe000,
    94                len:  0x1fc0,
    95                page: 0,
    96                space: "code"
    97            }],
    98        ];
    99    };
   100
   101    /*
   102     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,297; 12-3-2010 11:42:50; /db/ztree/library/trees/platform/platform-l29x/src/
   103     */
   104


module ti.catalog.c2800.TMS320C28234

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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:  0x20000,
    86                page: 0,
    87                space: "code"
    88            }],
    89
    90            ["BOOTROM", {
    91                comment: "On-Chip Boot ROM",
    92                name: "BOOTROM",
    93                base: 0x3fe000,
    94                len:  0x1fc0,
    95                page: 0,
    96                space: "code"
    97            }],
    98        ];
    99    };
   100
   101    /*
   102     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,297; 12-3-2010 11:42:50; /db/ztree/library/trees/platform/platform-l29x/src/
   103     */
   104


module ti.catalog.c2800.TMS320C28235

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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:  0x40000,
    86                page: 0,
    87                space: "code"
    88            }],
    89
    90            ["BOOTROM", {
    91                comment: "On-Chip Boot ROM",
    92                name: "BOOTROM",
    93                base: 0x3fe000,
    94                len:  0x1fc0,
    95                page: 0,
    96                space: "code"
    97            }],
    98        ];
    99    };
   100    /*
   101     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,297; 12-3-2010 11:42:51; /db/ztree/library/trees/platform/platform-l29x/src/
   102     */
   103


module ti.catalog.c2800.TMS320C28332

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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:  0x10000,
    86                page: 0,
    87                space: "code"
    88            }],
    89
    90            ["BOOTROM", {
    91                comment: "On-Chip Boot ROM",
    92                name: "BOOTROM",
    93                base: 0x3fe000,
    94                len:  0x1fc0,
    95                page: 0,
    96                space: "code"
    97            }],
    98        ];
    99    };
   100    /*
   101     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,297; 12-3-2010 11:42:51; /db/ztree/library/trees/platform/platform-l29x/src/
   102     */
   103


module ti.catalog.c2800.TMS320C28334

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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:  0x20000,
    86                page: 0,
    87                space: "code"
    88            }],
    89
    90            ["BOOTROM", {
    91                comment: "On-Chip Boot ROM",
    92                name: "BOOTROM",
    93                base: 0x3fe000,
    94                len:  0x1fc0,
    95                page: 0,
    96                space: "code"
    97            }],
    98        ];
    99    };
   100    /*
   101     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,297; 12-3-2010 11:42:51; /db/ztree/library/trees/platform/platform-l29x/src/
   102     */
   103


module ti.catalog.c2800.TMS320C28335

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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:  0x40000,
    86                page: 0,
    87                space: "code"
    88            }],
    89
    90            ["BOOTROM", {
    91                comment: "On-Chip Boot ROM",
    92                name: "BOOTROM",
    93                base: 0x3fe000,
    94                len:  0x1fc0,
    95                page: 0,
    96                space: "code"
    97            }],
    98        ];
    99    };
   100    /*
   101     *  @(#) ti.catalog.c2800; 1, 0, 0, 0,297; 12-3-2010 11:42:51; /db/ztree/library/trees/platform/platform-l29x/src/
   102     */
   103


module ti.catalog.c2800.TMS320C28341

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,297; 12-3-2010 11:42:51; /db/ztree/library/trees/platform/platform-l29x/src/
    18     */
    19


module ti.catalog.c2800.TMS320C28342

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,297; 12-3-2010 11:42:51; /db/ztree/library/trees/platform/platform-l29x/src/
    18     */
    19


module ti.catalog.c2800.TMS320C28343

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,297; 12-3-2010 11:42:51; /db/ztree/library/trees/platform/platform-l29x/src/
    18     */
    19


module ti.catalog.c2800.TMS320C28344

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,297; 12-3-2010 11:42:51; /db/ztree/library/trees/platform/platform-l29x/src/
    18     */
    19


module ti.catalog.c2800.TMS320C28345

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,297; 12-3-2010 11:42:51; /db/ztree/library/trees/platform/platform-l29x/src/
    18     */
    19


module ti.catalog.c2800.TMS320C28346

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,297; 12-3-2010 11:42:51; /db/ztree/library/trees/platform/platform-l29x/src/
    18     */
    19


module ti.catalog.c2800.init.Boot

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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    @Template("./Boot.xdt")
    23
    24    metaonly module Boot
    25    {
    26        metaonly struct ModuleView {
    27            Bool         disableWatchdog;
    28            Bool         configurePll;
    29            UInt         pllcrDIV;
    30            UInt         pllstsDIVSEL;
    31        }
    32
    33        @Facet
    34        metaonly config ViewInfo.Instance rovViewInfo =
    35            ViewInfo.create({
    36                viewMap: [
    37                [
    38                    'Module',
    39                    {
    40                        type: ViewInfo.MODULE,
    41                        viewInitFxn: 'viewInitModule',
    42                        structName: 'ModuleView'
    43                    }
    44                ],
    45                ]
    46            });
    47
    48        /*!
    49         *  Watchdog disable flag, default is false.
    50         *
    51         *  Set to true to automatically disabled the watchdog timer.
    52         */
    53        config Bool disableWatchdog = false;
    54
    55        /*!
    56         *  PLL configuration flag, default is false.
    57         *
    58         *  Set to true to automatically configure the PLL.
    59         */
    60        config Bool configurePll = false;
    61
    62        /*!
    63         *  PLLCR[DIV] value. Default is 10.
    64         *
    65         *  This is the actual value written to the DIV bits in
    66         *  the PLL Control Register (PLLCR)
    67         */
    68        config UInt pllcrDIV = 10;
    69
    70        /*!
    71         *  PLLSTS[DIVSEL] value. Default is 2.
    72         *
    73         *  This is the actual value written to the DIVSEL bits in
    74         *  the PLL Status Register (PLLSTS)
    75         */
    76        config UInt pllstsDIVSEL = 2;
    77
    78        /*!
    79         *  Code section that Boot module code is in.
    80         *
    81         *  To place this section into a memory segment yourself, add the
    82         *  following to you configuration file:
    83         *
    84         *  @p(code)
    85         *  Program.sectMap[Boot.bootCodeSection] = new Program.SectionSpec();
    86         *  Program.sectMap[Boot.bootCodeSection].loadSegment = "yourBootCodeMemorySegment";
    87         *  @p
    88         *
    89         *  or to place the code at a specific adress:
    90         *
    91         *  @p(code)
    92         *  Program.sectMap[Boot.bootCodeSection] = new Program.SectionSpec();
    93         *  Program.sectMap[Boot.bootCodeSection].loadAdress = yourBootCodeAddress;
    94         *  @p
    95         *
    96         */
    97        readonly config String bootCodeSection = ".bootCodeSection";
    98
    99        /*!
   100         * @_nodoc
   101         * Configure the external memory interface (XINTF) for the eZdsp283xx
   102         * devices.
   103         *
   104         * This will eventually be replaced by a more generic API for configuring
   105         * the XINTF on any 28x device.
   106         */
   107        config Bool enableEzdspXintfConfig = false;
   108    };
   109    /*
   110     *  @(#) ti.catalog.c2800.init; 1, 0, 0,148; 12-3-2010 11:42:32; /db/ztree/library/trees/platform/platform-l29x/src/
   111     */
   112


package ti.catalog.c2800.init

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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     */
    21    package ti.catalog.c2800.init[1,0,0] {
    22        module Boot;
    23    }
    24    /*
    25     *  @(#) ti.catalog.c2800.init; 1, 0, 0,148; 12-3-2010 11:42:35; /db/ztree/library/trees/platform/platform-l29x/src/
    26     */
    27


interface ti.catalog.c5400.ITMS320C54xx

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:23; /db/ztree/library/trees/platform/platform-l29x/src/
    36     */
    37


package ti.catalog.c5400

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,295; 12-3-2010 11:43:38; /db/ztree/library/trees/platform/platform-l29x/src/
    47     */
    48


module ti.catalog.c5400.TMS320C54CST

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:36; /db/ztree/library/trees/platform/platform-l29x/src/
    98     */
    99


module ti.catalog.c5400.TMS320C5401

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:23; /db/ztree/library/trees/platform/platform-l29x/src/
    88     */
    89


module ti.catalog.c5400.TMS320C5402

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:23; /db/ztree/library/trees/platform/platform-l29x/src/
    94     */
    95


module ti.catalog.c5400.TMS320C5402A

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:23; /db/ztree/library/trees/platform/platform-l29x/src/
    81     */
    82


module ti.catalog.c5400.TMS320C5404

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:24; /db/ztree/library/trees/platform/platform-l29x/src/
    96     */
    97


module ti.catalog.c5400.TMS320C5405

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:26; /db/ztree/library/trees/platform/platform-l29x/src/
    89     */
    90


module ti.catalog.c5400.TMS320C5407

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:28; /db/ztree/library/trees/platform/platform-l29x/src/
   122     */
   123


module ti.catalog.c5400.TMS320C5409

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:28; /db/ztree/library/trees/platform/platform-l29x/src/
    90     */
    91


module ti.catalog.c5400.TMS320C5409A

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:29; /db/ztree/library/trees/platform/platform-l29x/src/
    82     */
    83


module ti.catalog.c5400.TMS320C5410

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:29; /db/ztree/library/trees/platform/platform-l29x/src/
   114     */
   115


module ti.catalog.c5400.TMS320C5410A

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:30; /db/ztree/library/trees/platform/platform-l29x/src/
    98     */
    99


module ti.catalog.c5400.TMS320C5416

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:31; /db/ztree/library/trees/platform/platform-l29x/src/
   121     */
   122


module ti.catalog.c5400.TMS320C5420

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:32; /db/ztree/library/trees/platform/platform-l29x/src/
   114     */
   115


module ti.catalog.c5400.TMS320C5470

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:33; /db/ztree/library/trees/platform/platform-l29x/src/
   130     */
   131


module ti.catalog.c5400.TMS320C5471

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:35; /db/ztree/library/trees/platform/platform-l29x/src/
   130     */
   131


module ti.catalog.c5400.TMS320CDM270

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:37; /db/ztree/library/trees/platform/platform-l29x/src/
   121     */
   122


module ti.catalog.c5400.TMS320CDM310

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:37; /db/ztree/library/trees/platform/platform-l29x/src/
   121     */
   122


module ti.catalog.c5400.TMS320CDM320

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:38; /db/ztree/library/trees/platform/platform-l29x/src/
   113     */
   114


interface ti.catalog.c5500.IOMAP

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:34; /db/ztree/library/trees/platform/platform-l29x/src/
    73     */
    74


interface ti.catalog.c5500.ITMS320C55xx

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:34; /db/ztree/library/trees/platform/platform-l29x/src/
    36     */
    37


package ti.catalog.c5500

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,295; 12-3-2010 11:43:36; /db/ztree/library/trees/platform/platform-l29x/src/
    60     */
    61


module ti.catalog.c5500.TMS320C1035

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:34; /db/ztree/library/trees/platform/platform-l29x/src/
    66     */
    67


module ti.catalog.c5500.TMS320C1510

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:34; /db/ztree/library/trees/platform/platform-l29x/src/
    33     */
    34


module ti.catalog.c5500.TMS320C1610

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:34; /db/ztree/library/trees/platform/platform-l29x/src/
    33     */
    34


module ti.catalog.c5500.TMS320C1710

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:34; /db/ztree/library/trees/platform/platform-l29x/src/
    66     */
    67


module ti.catalog.c5500.TMS320C2320

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:34; /db/ztree/library/trees/platform/platform-l29x/src/
    66     */
    67


module ti.catalog.c5500.TMS320C2420

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:34; /db/ztree/library/trees/platform/platform-l29x/src/
    66     */
    67


module ti.catalog.c5500.TMS320C5501

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:34; /db/ztree/library/trees/platform/platform-l29x/src/
    57     */
    58


module ti.catalog.c5500.TMS320C5502

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:35; /db/ztree/library/trees/platform/platform-l29x/src/
    57     */
    58


module ti.catalog.c5500.TMS320C5503

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:35; /db/ztree/library/trees/platform/platform-l29x/src/
    57     */
    58


module ti.catalog.c5500.TMS320C5504

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:35; /db/ztree/library/trees/platform/platform-l29x/src/
    77     */
    78


module ti.catalog.c5500.TMS320C5505

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:35; /db/ztree/library/trees/platform/platform-l29x/src/
    77     */
    78


module ti.catalog.c5500.TMS320C5507

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:35; /db/ztree/library/trees/platform/platform-l29x/src/
    66     */
    67


module ti.catalog.c5500.TMS320C5509

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:35; /db/ztree/library/trees/platform/platform-l29x/src/
    66     */
    67


module ti.catalog.c5500.TMS320C5509A

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:35; /db/ztree/library/trees/platform/platform-l29x/src/
    66     */
    67


module ti.catalog.c5500.TMS320C5510

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:35; /db/ztree/library/trees/platform/platform-l29x/src/
    65     */
    66


module ti.catalog.c5500.TMS320C5510A

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:35; /db/ztree/library/trees/platform/platform-l29x/src/
    57     */
    58


module ti.catalog.c5500.TMS320C5514

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:35; /db/ztree/library/trees/platform/platform-l29x/src/
    77     */
    78


module ti.catalog.c5500.TMS320C5515

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:35; /db/ztree/library/trees/platform/platform-l29x/src/
    77     */
    78


module ti.catalog.c5500.TMS320C5561

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:35; /db/ztree/library/trees/platform/platform-l29x/src/
    85     */
    86


module ti.catalog.c5500.TMS320C5903

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:35; /db/ztree/library/trees/platform/platform-l29x/src/
    33     */
    34


module ti.catalog.c5500.TMS320C5905

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:35; /db/ztree/library/trees/platform/platform-l29x/src/
    33     */
    34


module ti.catalog.c5500.TMS320C5910

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:35; /db/ztree/library/trees/platform/platform-l29x/src/
    33     */
    34


module ti.catalog.c5500.TMS320C5912

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:35; /db/ztree/library/trees/platform/platform-l29x/src/
    33     */
    34


module ti.catalog.c5500.TMS320C5944

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:35; /db/ztree/library/trees/platform/platform-l29x/src/
    33     */
    34


module ti.catalog.c5500.TMS320C5946

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:36; /db/ztree/library/trees/platform/platform-l29x/src/
    33     */
    34


module ti.catalog.c5500.TMS320C5948

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:36; /db/ztree/library/trees/platform/platform-l29x/src/
    33     */
    34


module ti.catalog.c5500.TMS320CDA255

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:36; /db/ztree/library/trees/platform/platform-l29x/src/
    66     */
    67


module ti.catalog.c5500.TMS320CDA295

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:36; /db/ztree/library/trees/platform/platform-l29x/src/
    57     */
    58


module ti.catalog.c5500.TMS320CDA300

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:36; /db/ztree/library/trees/platform/platform-l29x/src/
    57     */
    58


module ti.catalog.c5500.TMS320CRYUJIN

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:36; /db/ztree/library/trees/platform/platform-l29x/src/
    66     */
    67


module ti.catalog.c5500.TNETV1050

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:36; /db/ztree/library/trees/platform/platform-l29x/src/
    76     */
    77


module ti.catalog.c5500.TNETV1055

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:36; /db/ztree/library/trees/platform/platform-l29x/src/
    40     */
    41


module ti.catalog.c6000.Arctic

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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:       0x7FF00000,
   123                len:        0x00100000,
   124                space:      "code/data",
   125                access:     "RWX"
   126            }],
   127
   128            /*
   129             *  This memory needs to be defined here as a workaround because
   130             *  IPC generates a section that needs to be placed here. Once
   131             *  we fix the enhancement SDOCM00077090 in IPC, this can be removed.
   132             */
   133            ["DMEM", {
   134                comment:    "T16 Internal data memory",
   135                name:       "DMEM",
   136                base:       0x20020000,
   137                len:        0x8000,
   138                space:      "data",
   139                access:     "RW"
   140            }],
   141        ];
   142    };
   143    /*
   144     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,295; 12-3-2010 11:43:47; /db/ztree/library/trees/platform/platform-l29x/src/
   145     */
   146


interface ti.catalog.c6000.IAntara

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:57; /db/ztree/library/trees/platform/platform-l29x/src/
    50     */
    51


interface ti.catalog.c6000.ICacheInfo

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:57; /db/ztree/library/trees/platform/platform-l29x/src/
    75     */
    76


interface ti.catalog.c6000.IDaVinci

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:57; /db/ztree/library/trees/platform/platform-l29x/src/
   128     */
   129


interface ti.catalog.c6000.IHimalaya

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:58; /db/ztree/library/trees/platform/platform-l29x/src/
   125     */
   126


interface ti.catalog.c6000.IOMAP2x3x

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:58; /db/ztree/library/trees/platform/platform-l29x/src/
   113     */
   114


interface ti.catalog.c6000.IOMAP3xxx

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:59; /db/ztree/library/trees/platform/platform-l29x/src/
   113     */
   114


interface ti.catalog.c6000.ITI8148

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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
    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",0x0000],
    69                                    ["32k",0x8000],
    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
    81        override config int     minProgUnitSize = 1;
    82        override config int     minDataUnitSize = 1;
    83        override config int     dataWordSize    = 4;
    84
    85        override config string   cpuCore        = "674";
    86        override config string   isa            = "674";
    87        override config string   cpuCoreRevision = "1.0";
    88
    89        config xdc.platform.IPlatform.Memory memMap[string]  = [
    90
    91            ["IRAM", {
    92                comment:    "Internal 256KB L2 memory",
    93                name:       "IRAM",
    94                base:       0x10800000,
    95                len:        0x00040000,
    96                space:      "code/data",
    97                access:     "RWX"
    98            }],
    99
   100            ["L1PSRAM", {
   101                comment:    "Internal 32KB L1 program memory",
   102                name:       "L1PSRAM",
   103                base:       0x10E00000,
   104                len:        0x00008000,
   105                space:      "code",
   106                access:     "RWX"
   107            }],
   108
   109            ["L1DSRAM", {
   110                comment:    "Internal 32KB L1 data memory",
   111                name:       "L1DSRAM",
   112                base:       0x10F00000,
   113                len:        0x00008000,
   114                space:      "data",
   115                access:     "RW"
   116            }],
   117
   118            ["OCMC_0", {
   119                comment:    "OCMC (On-chip RAM) Bank 0 (128KB)",
   120                name:       "OCMC_0",
   121                base:       0x40300000,
   122                len:        0x00020000,
   123                space:      "code/data",
   124                access:     "RWX"
   125            }],
   126
   127            ["OCMC_1", {
   128                comment:    "OCMC (On-chip RAM) Bank 1 (128KB)",
   129                name:       "OCMC_1",
   130                base:       0x40400000,
   131                len:        0x00020000,
   132                space:      "code/data",
   133                access:     "RWX"
   134            }],
   135        ];
   136    };
   137    /*
   138     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,295; 12-3-2010 11:43:59; /db/ztree/library/trees/platform/platform-l29x/src/
   139     */
   140


interface ti.catalog.c6000.ITI8168

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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",0x0000],
    69                                    ["32k",0x8000],
    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:        0x00040000,
    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:        0x00008000,
   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:        0x00008000,
   116                space:      "data",
   117                access:     "RW"
   118            }],
   119
   120            ["OCMC_0", {
   121                comment:    "OCMC (On-chip RAM) Bank 0 (128KB)",
   122                name:       "OCMC_0",
   123                base:       0x40300000,
   124                len:        0x00020000,
   125                space:      "code/data",
   126                access:     "RWX"
   127            }],
   128
   129            ["OCMC_1", {
   130                comment:    "OCMC (On-chip RAM) Bank 1 (128KB)",
   131                name:       "OCMC_1",
   132                base:       0x40400000,
   133                len:        0x00020000,
   134                space:      "code/data",
   135                access:     "RWX"
   136            }],
   137        ];
   138    };
   139    /*
   140     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,295; 12-3-2010 11:43:59; /db/ztree/library/trees/platform/platform-l29x/src/
   141     */
   142


interface ti.catalog.c6000.ITMS320C6x0x

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:00; /db/ztree/library/trees/platform/platform-l29x/src/
    70     */
    71


interface ti.catalog.c6000.ITMS320C6x1x

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:00; /db/ztree/library/trees/platform/platform-l29x/src/
    67     */
    68


interface ti.catalog.c6000.ITMS320C64_1M

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:00; /db/ztree/library/trees/platform/platform-l29x/src/
    82     */
    83


interface ti.catalog.c6000.ITMS320C64_128K

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:00; /db/ztree/library/trees/platform/platform-l29x/src/
    78     */
    79


interface ti.catalog.c6000.ITMS320C64_256K

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:00; /db/ztree/library/trees/platform/platform-l29x/src/
    81     */
    82


interface ti.catalog.c6000.ITMS320C64_512K

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:00; /db/ztree/library/trees/platform/platform-l29x/src/
    81     */
    82


interface ti.catalog.c6000.ITMS320C642x

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:59; /db/ztree/library/trees/platform/platform-l29x/src/
   119     */
   120


interface ti.catalog.c6000.ITMS320C6452

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:43:59; /db/ztree/library/trees/platform/platform-l29x/src/
   123     */
   124


interface ti.catalog.c6000.ITMS320CDM6467

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:00; /db/ztree/library/trees/platform/platform-l29x/src/
   130     */
   131


interface ti.catalog.c6000.ITMS320CDRA44x

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:01; /db/ztree/library/trees/platform/platform-l29x/src/
   127     */
   128


interface ti.catalog.c6000.ITMS320CDRA45x

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:01; /db/ztree/library/trees/platform/platform-l29x/src/
   129     */
   130


interface ti.catalog.c6000.ITMS320CDRx40x

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:01; /db/ztree/library/trees/platform/platform-l29x/src/
   128     */
   129


interface ti.catalog.c6000.ITMS320CTCI648x

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:01; /db/ztree/library/trees/platform/platform-l29x/src/
   155     */
   156


interface ti.catalog.c6000.ITMS320CTCI6484

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:01; /db/ztree/library/trees/platform/platform-l29x/src/
   124     */
   125


interface ti.catalog.c6000.ITMS320CTCI6486

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:01; /db/ztree/library/trees/platform/platform-l29x/src/
   130     */
   131


interface ti.catalog.c6000.ITMS320CTCI6497

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:02; /db/ztree/library/trees/platform/platform-l29x/src/
   130     */
   131


interface ti.catalog.c6000.ITMS320DA8xx

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:02; /db/ztree/library/trees/platform/platform-l29x/src/
   134     */
   135


interface ti.catalog.c6000.ITMS320TCI6608

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:02; /db/ztree/library/trees/platform/platform-l29x/src/
   128     */
   129


interface ti.catalog.c6000.ITMS320TCI6616

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:02; /db/ztree/library/trees/platform/platform-l29x/src/
   130     */
   131


module ti.catalog.c6000.OMAP2431

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:03; /db/ztree/library/trees/platform/platform-l29x/src/
    35     */
    36


module ti.catalog.c6000.OMAP2530

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:03; /db/ztree/library/trees/platform/platform-l29x/src/
    36     */
    37


module ti.catalog.c6000.OMAP2531

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:03; /db/ztree/library/trees/platform/platform-l29x/src/
    36     */
    37


module ti.catalog.c6000.OMAP3425

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:03; /db/ztree/library/trees/platform/platform-l29x/src/
    34     */
    35


module ti.catalog.c6000.OMAP3525

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:03; /db/ztree/library/trees/platform/platform-l29x/src/
    34     */
    35


module ti.catalog.c6000.OMAP3530

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:03; /db/ztree/library/trees/platform/platform-l29x/src/
    34     */
    35


module ti.catalog.c6000.OMAP4430

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:03; /db/ztree/library/trees/platform/platform-l29x/src/
    51     */
    52


module ti.catalog.c6000.OMAPL137

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:03; /db/ztree/library/trees/platform/platform-l29x/src/
    28     */
    29


module ti.catalog.c6000.OMAPL138

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:03; /db/ztree/library/trees/platform/platform-l29x/src/
    28     */
    29


package ti.catalog.c6000

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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, TMS320TCI6616, TMS320TCI6618;
    78        module TMS320C6670, TMS320C6672, TMS320C6674, TMS320C6678;
    79        module TMS320C6454, TMS320C6455;
    80        module TMS320C2430;
    81        module TMS320C3430;
    82        module TMS320C6701, TMS320C6201, TMS320C6202, TMS320C6203, TMS320C6203B;
    83        module TMS320C6204;
    84        module TMS320C6205;
    85        module TMS320CDRA406, TMS320CDRA402, TMS320CDRA404;
    86        module TMS320CDRA414, TMS320CDRA416;
    87        module TMS320CF761990;
    88        interface IOMAP2x3x, IOMAP3xxx;
    89        module OMAP2431, OMAP2530, OMAP2531, OMAP3425, OMAP3525, OMAP3530, OMAP4430;
    90        module TMS320DA802, TMS320DA803, TMS320DA804;
    91        module TMS320DA805, TMS320DA807, TMS320DA808, TMS320DA810;
    92        module TMS320DA828, TMS320DA830;
    93        module TMS320C6472, TMS320C6474;
    94        module TMS320C6747, TMS320C6745, TMS320C6743;
    95        module OMAPL137, OMAPL138;
    96        module TMS320C6457;
    97        module TMS320DA840, TMS320DA850;
    98        module TMS320C6742, TMS320C6746, TMS320C6748;
    99        module TNETV107X;
   100
   101        interface ITI8168;
   102        module TMS320TI816X;
   103        module TMS320CDM740, TMS320CDM730, TMS320DM8168;
   104        module TMS320C6A8168;
   105
   106        interface ITI8148;
   107        module TMS320TI814X;
   108        module TMS320DM8148;
   109        module Arctic;
   110    }
   111    /*
   112     *  @(#) ti.catalog.c6000; 1, 0, 0, 0,295; 12-3-2010 11:44:09; /db/ztree/library/trees/platform/platform-l29x/src/
   113     */
   114


module ti.catalog.c6000.TMS320C6A8168

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:06; /db/ztree/library/trees/platform/platform-l29x/src/
    31     */
    32


module ti.catalog.c6000.TMS320C2430

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:03; /db/ztree/library/trees/platform/platform-l29x/src/
    35     */
    36


module ti.catalog.c6000.TMS320C3430

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:03; /db/ztree/library/trees/platform/platform-l29x/src/
    34     */
    35


module ti.catalog.c6000.TMS320C6201

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:03; /db/ztree/library/trees/platform/platform-l29x/src/
    34     */
    35


module ti.catalog.c6000.TMS320C6202

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:04; /db/ztree/library/trees/platform/platform-l29x/src/
    60     */
    61


module ti.catalog.c6000.TMS320C6203

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:04; /db/ztree/library/trees/platform/platform-l29x/src/
    61     */
    62


module ti.catalog.c6000.TMS320C6203B

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:04; /db/ztree/library/trees/platform/platform-l29x/src/
    37     */
    38


module ti.catalog.c6000.TMS320C6204

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:04; /db/ztree/library/trees/platform/platform-l29x/src/
    34     */
    35


module ti.catalog.c6000.TMS320C6205

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:04; /db/ztree/library/trees/platform/platform-l29x/src/
    34     */
    35


module ti.catalog.c6000.TMS320C6211

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:04; /db/ztree/library/trees/platform/platform-l29x/src/
    46     */
    47


module ti.catalog.c6000.TMS320C6211B

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:04; /db/ztree/library/trees/platform/platform-l29x/src/
    43     */
    44


module ti.catalog.c6000.TMS320C6410

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:04; /db/ztree/library/trees/platform/platform-l29x/src/
    31     */
    32


module ti.catalog.c6000.TMS320C6411

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:04; /db/ztree/library/trees/platform/platform-l29x/src/
    31     */
    32


module ti.catalog.c6000.TMS320C6412

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:04; /db/ztree/library/trees/platform/platform-l29x/src/
    31     */
    32


module ti.catalog.c6000.TMS320C6413

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:04; /db/ztree/library/trees/platform/platform-l29x/src/
    31     */
    32


module ti.catalog.c6000.TMS320C6414

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:04; /db/ztree/library/trees/platform/platform-l29x/src/
    32     */
    33


module ti.catalog.c6000.TMS320C6415

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:04; /db/ztree/library/trees/platform/platform-l29x/src/
    32     */
    33


module ti.catalog.c6000.TMS320C6416

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:04; /db/ztree/library/trees/platform/platform-l29x/src/
    32     */
    33


module ti.catalog.c6000.TMS320C6418

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:04; /db/ztree/library/trees/platform/platform-l29x/src/
    32     */
    33


module ti.catalog.c6000.TMS320C6421

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:04; /db/ztree/library/trees/platform/platform-l29x/src/
   119     */
   120


module ti.catalog.c6000.TMS320C6424

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:04; /db/ztree/library/trees/platform/platform-l29x/src/
    32     */
    33


module ti.catalog.c6000.TMS320C6428

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:04; /db/ztree/library/trees/platform/platform-l29x/src/
    66     */
    67


module ti.catalog.c6000.TMS320C6452

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:04; /db/ztree/library/trees/platform/platform-l29x/src/
    31     */
    32


module ti.catalog.c6000.TMS320C6454

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:05; /db/ztree/library/trees/platform/platform-l29x/src/
   121     */
   122


module ti.catalog.c6000.TMS320C6455

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:05; /db/ztree/library/trees/platform/platform-l29x/src/
    31     */
    32


module ti.catalog.c6000.TMS320C6457

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:05; /db/ztree/library/trees/platform/platform-l29x/src/
    30     */
    31


module ti.catalog.c6000.TMS320C6472

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:05; /db/ztree/library/trees/platform/platform-l29x/src/
    28     */
    29


module ti.catalog.c6000.TMS320C6474

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:05; /db/ztree/library/trees/platform/platform-l29x/src/
    30     */
    31


module ti.catalog.c6000.TMS320C6670

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:05; /db/ztree/library/trees/platform/platform-l29x/src/
    22     */
    23


module ti.catalog.c6000.TMS320C6672

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:05; /db/ztree/library/trees/platform/platform-l29x/src/
    22     */
    23


module ti.catalog.c6000.TMS320C6674

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:05; /db/ztree/library/trees/platform/platform-l29x/src/
    22     */
    23


module ti.catalog.c6000.TMS320C6678

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:05; /db/ztree/library/trees/platform/platform-l29x/src/
    22     */
    23


module ti.catalog.c6000.TMS320C6701

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:05; /db/ztree/library/trees/platform/platform-l29x/src/
    34     */
    35


module ti.catalog.c6000.TMS320C6711

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:05; /db/ztree/library/trees/platform/platform-l29x/src/
    42     */
    43


module ti.catalog.c6000.TMS320C6711B

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:05; /db/ztree/library/trees/platform/platform-l29x/src/
    42     */
    43


module ti.catalog.c6000.TMS320C6712

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:05; /db/ztree/library/trees/platform/platform-l29x/src/
    39     */
    40


module ti.catalog.c6000.TMS320C6713

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:05; /db/ztree/library/trees/platform/platform-l29x/src/
    46     */
    47


module ti.catalog.c6000.TMS320C6722

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:05; /db/ztree/library/trees/platform/platform-l29x/src/
    43     */
    44


module ti.catalog.c6000.TMS320C6726

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:05; /db/ztree/library/trees/platform/platform-l29x/src/
    31     */
    32


module ti.catalog.c6000.TMS320C6727

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:06; /db/ztree/library/trees/platform/platform-l29x/src/
    31     */
    32


module ti.catalog.c6000.TMS320C6742

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:06; /db/ztree/library/trees/platform/platform-l29x/src/
    66     */
    67


module ti.catalog.c6000.TMS320C6743

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:06; /db/ztree/library/trees/platform/platform-l29x/src/
    65     */
    66


module ti.catalog.c6000.TMS320C6745

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:06; /db/ztree/library/trees/platform/platform-l29x/src/
    65     */
    66


module ti.catalog.c6000.TMS320C6746

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:06; /db/ztree/library/trees/platform/platform-l29x/src/
    28     */
    29


module ti.catalog.c6000.TMS320C6747

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:06; /db/ztree/library/trees/platform/platform-l29x/src/
    28     */
    29


module ti.catalog.c6000.TMS320C6748

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:06; /db/ztree/library/trees/platform/platform-l29x/src/
    28     */
    29


module ti.catalog.c6000.TMS320CDA700

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:06; /db/ztree/library/trees/platform/platform-l29x/src/
    32     */
    33


module ti.catalog.c6000.TMS320CDA700SIM

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:06; /db/ztree/library/trees/platform/platform-l29x/src/
    33     */
    34


module ti.catalog.c6000.TMS320CDA705

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:06; /db/ztree/library/trees/platform/platform-l29x/src/
    32     */
    33


module ti.catalog.c6000.TMS320CDA707

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:06; /db/ztree/library/trees/platform/platform-l29x/src/
    32     */
    33


module ti.catalog.c6000.TMS320CDA710

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:06; /db/ztree/library/trees/platform/platform-l29x/src/
    32     */
    33


module ti.catalog.c6000.TMS320CDM415

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:06; /db/ztree/library/trees/platform/platform-l29x/src/
    31     */
    32


module ti.catalog.c6000.TMS320CDM420

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:06; /db/ztree/library/trees/platform/platform-l29x/src/
    31     */
    32


module ti.catalog.c6000.TMS320CDM421

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:06; /db/ztree/library/trees/platform/platform-l29x/src/
    31     */
    32


module ti.catalog.c6000.TMS320CDM425

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:06; /db/ztree/library/trees/platform/platform-l29x/src/
    31     */
    32


module ti.catalog.c6000.TMS320CDM426

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:06; /db/ztree/library/trees/platform/platform-l29x/src/
    31     */
    32


module ti.catalog.c6000.TMS320CDM640

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:06; /db/ztree/library/trees/platform/platform-l29x/src/
    31     */
    32


module ti.catalog.c6000.TMS320CDM641

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:06; /db/ztree/library/trees/platform/platform-l29x/src/
    31     */
    32


module ti.catalog.c6000.TMS320CDM642

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:06; /db/ztree/library/trees/platform/platform-l29x/src/
    31     */
    32


module ti.catalog.c6000.TMS320CDM647

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:07; /db/ztree/library/trees/platform/platform-l29x/src/
    66     */
    67


module ti.catalog.c6000.TMS320CDM648

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:07; /db/ztree/library/trees/platform/platform-l29x/src/
    66     */
    67


module ti.catalog.c6000.TMS320CDM730

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:07; /db/ztree/library/trees/platform/platform-l29x/src/
    31     */
    32


module ti.catalog.c6000.TMS320CDM740

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:07; /db/ztree/library/trees/platform/platform-l29x/src/
    31     */
    32


module ti.catalog.c6000.TMS320CDM6431

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:07; /db/ztree/library/trees/platform/platform-l29x/src/
   118     */
   119


module ti.catalog.c6000.TMS320CDM6433

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:07; /db/ztree/library/trees/platform/platform-l29x/src/
    32     */
    33


module ti.catalog.c6000.TMS320CDM6435

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:07; /db/ztree/library/trees/platform/platform-l29x/src/
    32     */
    33


module ti.catalog.c6000.TMS320CDM6437

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:07; /db/ztree/library/trees/platform/platform-l29x/src/
    32     */
    33


module ti.catalog.c6000.TMS320CDM6441

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:07; /db/ztree/library/trees/platform/platform-l29x/src/
    31     */
    32


module ti.catalog.c6000.TMS320CDM6443

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:07; /db/ztree/library/trees/platform/platform-l29x/src/
    31     */
    32


module ti.catalog.c6000.TMS320CDM6446

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:07; /db/ztree/library/trees/platform/platform-l29x/src/
    31     */
    32


module ti.catalog.c6000.TMS320CDM6467

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:07; /db/ztree/library/trees/platform/platform-l29x/src/
    31     */
    32


module ti.catalog.c6000.TMS320CDRA402

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:07; /db/ztree/library/trees/platform/platform-l29x/src/
    30     */
    31


module ti.catalog.c6000.TMS320CDRA404

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:07; /db/ztree/library/trees/platform/platform-l29x/src/
    30     */
    31


module ti.catalog.c6000.TMS320CDRA406

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:07; /db/ztree/library/trees/platform/platform-l29x/src/
    30     */
    31


module ti.catalog.c6000.TMS320CDRA414

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:07; /db/ztree/library/trees/platform/platform-l29x/src/
    30     */
    31


module ti.catalog.c6000.TMS320CDRA416

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:07; /db/ztree/library/trees/platform/platform-l29x/src/
    30     */
    31


module ti.catalog.c6000.TMS320CDRA442

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:07; /db/ztree/library/trees/platform/platform-l29x/src/
    30     */
    31


module ti.catalog.c6000.TMS320CDRA444

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:08; /db/ztree/library/trees/platform/platform-l29x/src/
    30     */
    31


module ti.catalog.c6000.TMS320CDRA446

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:08; /db/ztree/library/trees/platform/platform-l29x/src/
    30     */
    31


module ti.catalog.c6000.TMS320CDRA447

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:08; /db/ztree/library/trees/platform/platform-l29x/src/
   114     */
   115


module ti.catalog.c6000.TMS320CDRA457

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:08; /db/ztree/library/trees/platform/platform-l29x/src/
    30     */
    31


module ti.catalog.c6000.TMS320CDRA459

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:08; /db/ztree/library/trees/platform/platform-l29x/src/
    30     */
    31


module ti.catalog.c6000.TMS320CDRI300

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:08; /db/ztree/library/trees/platform/platform-l29x/src/
    32     */
    33


module ti.catalog.c6000.TMS320CF761990

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:08; /db/ztree/library/trees/platform/platform-l29x/src/
   132     */
   133


module ti.catalog.c6000.TMS320CTCI6482

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:08; /db/ztree/library/trees/platform/platform-l29x/src/
    31     */
    32


module ti.catalog.c6000.TMS320CTCI6484

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:08; /db/ztree/library/trees/platform/platform-l29x/src/
    27     */
    28


module ti.catalog.c6000.TMS320CTCI6486

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:08; /db/ztree/library/trees/platform/platform-l29x/src/
    28     */
    29


module ti.catalog.c6000.TMS320CTCI6487

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:08; /db/ztree/library/trees/platform/platform-l29x/src/
    30     */
    31


module ti.catalog.c6000.TMS320CTCI6488

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:08; /db/ztree/library/trees/platform/platform-l29x/src/
    30     */
    31


module ti.catalog.c6000.TMS320CTCI6498

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:08; /db/ztree/library/trees/platform/platform-l29x/src/
    22     */
    23


module ti.catalog.c6000.TMS320CTNETV2685

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:08; /db/ztree/library/trees/platform/platform-l29x/src/
    31     */
    32


module ti.catalog.c6000.TMS320DA802

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:08; /db/ztree/library/trees/platform/platform-l29x/src/
   111     */
   112


module ti.catalog.c6000.TMS320DA803

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:08; /db/ztree/library/trees/platform/platform-l29x/src/
    72     */
    73


module ti.catalog.c6000.TMS320DA804

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:08; /db/ztree/library/trees/platform/platform-l29x/src/
    28     */
    29


module ti.catalog.c6000.TMS320DA805

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:08; /db/ztree/library/trees/platform/platform-l29x/src/
    27     */
    28


module ti.catalog.c6000.TMS320DA807

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:08; /db/ztree/library/trees/platform/platform-l29x/src/
    65     */
    66


module ti.catalog.c6000.TMS320DA808

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:08; /db/ztree/library/trees/platform/platform-l29x/src/
    27     */
    28


module ti.catalog.c6000.TMS320DA810

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:08; /db/ztree/library/trees/platform/platform-l29x/src/
    27     */
    28


module ti.catalog.c6000.TMS320DA828

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:08; /db/ztree/library/trees/platform/platform-l29x/src/
    28     */
    29


module ti.catalog.c6000.TMS320DA830

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:09; /db/ztree/library/trees/platform/platform-l29x/src/
    28     */
    29


module ti.catalog.c6000.TMS320DA840

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:09; /db/ztree/library/trees/platform/platform-l29x/src/
    28     */
    29


module ti.catalog.c6000.TMS320DA850

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:09; /db/ztree/library/trees/platform/platform-l29x/src/
    28     */
    29


module ti.catalog.c6000.TMS320DM357

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:09; /db/ztree/library/trees/platform/platform-l29x/src/
    31     */
    32


module ti.catalog.c6000.TMS320DM8148

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:09; /db/ztree/library/trees/platform/platform-l29x/src/
    31     */
    32


module ti.catalog.c6000.TMS320DM8168

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:09; /db/ztree/library/trees/platform/platform-l29x/src/
    31     */
    32


module ti.catalog.c6000.TMS320TCI6485

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:09; /db/ztree/library/trees/platform/platform-l29x/src/
    30     */
    31


module ti.catalog.c6000.TMS320TCI6489

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:09; /db/ztree/library/trees/platform/platform-l29x/src/
    30     */
    31


module ti.catalog.c6000.TMS320TCI6608

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:09; /db/ztree/library/trees/platform/platform-l29x/src/
    22     */
    23


module ti.catalog.c6000.TMS320TCI6616

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:09; /db/ztree/library/trees/platform/platform-l29x/src/
    22     */
    23


module ti.catalog.c6000.TMS320TCI6618

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:09; /db/ztree/library/trees/platform/platform-l29x/src/
    22     */
    23


module ti.catalog.c6000.TMS320TI814X

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:09; /db/ztree/library/trees/platform/platform-l29x/src/
    32     */
    33


module ti.catalog.c6000.TMS320TI816X

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:09; /db/ztree/library/trees/platform/platform-l29x/src/
    31     */
    32


module ti.catalog.c6000.TNETV107X

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,295; 12-3-2010 11:44:09; /db/ztree/library/trees/platform/platform-l29x/src/
   117     */
   118


package ti.catalog.c6000.nda

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,133; 12-3-2010 12:36:31; /db/ztree/library/trees/platform/platform-l29x/src/
    28     */
    29


module ti.catalog.c6000.nda.Tesla

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,133; 12-3-2010 12:36:31; /db/ztree/library/trees/platform/platform-l29x/src/
    49     */
    50


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    };


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.Timer_A5.Instance TA0;
    37        config ti.catalog.msp430.peripherals.timer.Timer_A3.Instance TA1;
    38        config ti.catalog.msp430.peripherals.timer.Timer_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

     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.Timer_A5.Instance TA0;
    37        config ti.catalog.msp430.peripherals.timer.Timer_A3.Instance TA1;
    38        config ti.catalog.msp430.peripherals.timer.Timer_A3.Instance TA2;
    39        config ti.catalog.msp430.peripherals.timer.Timer_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

     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.Clock2xx.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_MSP430x22xx.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

     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    }


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

     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

     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

     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

     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

     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

     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

     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

     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

     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

     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    requires ti.catalog.msp430.peripherals.timer;
    16    requires ti.catalog.msp430.peripherals.adc;
    17    requires ti.catalog.msp430.peripherals.clock;
    18    requires ti.catalog.msp430.peripherals.communication;
    19    requires ti.catalog.msp430.peripherals.gpio;
    20    requires ti.catalog.msp430.peripherals.oa;
    21    requires ti.catalog.msp430.peripherals.special_function;
    22    requires ti.catalog.msp430.peripherals.watchdog;
    23    requires ti.catalog.msp430.peripherals.interrupt;
    24
    25    /*!
    26     *  ======== ti.catalog.msp430 ========
    27     *  Package of devices for the msp430 family.
    28     *
    29     *  Each module in this package implements the xdc.platform.ICpuDataSheet
    30     *  interface. This interface is used by platforms (modules that implement
    31     *  xdc.platform.IPlatform) to obtain the memory map supported by each CPU.
    32     */
    33    package ti.catalog.msp430 [1,0,0] {
    34        interface IMSP430;
    35        interface IMSP430x22xx;
    36        interface IMSP430F54xx;
    37        interface IMSP430F55xx;
    38        module MSP430;
    39        module MSP430F5418, MSP430F5419;
    40        module MSP430F5435, MSP430F5436;
    41        module MSP430F5437, MSP430F5438;
    42        module MSP430F5529;
    43        module MSP430F223x, MSP430F225x, MSP430F2274;
    44    }


module ti.catalog.msp430.init.Boot

     1    /*
     2     *  ======== Boot.xdc ========
     3     *
     4     *! Revision History
     5     *! ================
     6     *! 17-Nov-2009 sg     Added WDT address and configureDCO flag.
     7     *! 20-Oct-2009 sg     Initial.
     8     */
     9
    10    package ti.catalog.msp430.init;
    11
    12    import xdc.rov.ViewInfo;
    13
    14    @Template("./Boot.xdt")
    15
    16    metaonly module Boot
    17    {
    18        metaonly struct ModuleView {
    19            Bool         disableWatchdog;
    20            UInt         watchdogAddress;
    21            Bool         configureDCO;
    22        }
    23
    24        @Facet
    25        metaonly config ViewInfo.Instance rovViewInfo =
    26            ViewInfo.create({
    27                viewMap: [
    28                [
    29                    'Module',
    30                    {
    31                        type: ViewInfo.MODULE,
    32                        viewInitFxn: 'viewInitModule',
    33                        structName: 'ModuleView'
    34                    }
    35                ],
    36                ]
    37            });
    38
    39        /*!
    40         *  Watchdog disable flag; default is true.
    41         *
    42         *  Set to false to not automatically disable the watchdog timer.
    43         */
    44        config Bool disableWatchdog = true;
    45
    46        /*!
    47         *  Watchdog control register address; default for MSP430F54xx and
    48         *  MSP430F552x.
    49         *
    50         *  Change for other devices.
    51         */
    52        config UInt watchdogAddress = 0x15c;
    53
    54        /*!
    55         *  Configure DCO flag; default is false.
    56         *
    57         *  Set to true to initialize DCO at boot.
    58         */
    59        config Bool configureDCO = false;
    60
    61        /*!
    62         *  Code section that Boot module code is in.
    63         *
    64         *  To place this section into a memory segment yourself, add the
    65         *  following to your configuration file:
    66         *
    67         *  @p(code)
    68         *  Program.sectMap[Boot.bootCodeSection] = new Program.SectionSpec();
    69         *  Program.sectMap[Boot.bootCodeSection].loadSegment = "yourBootCodeMemorySegment";
    70         *  @p
    71         *
    72         *  or to place the code at a specific address:
    73         *
    74         *  @p(code)
    75         *  Program.sectMap[Boot.bootCodeSection] = new Program.SectionSpec();
    76         *  Program.sectMap[Boot.bootCodeSection].loadAdress = yourBootCodeAddress;
    77         *  @p
    78         *
    79         */
    80        readonly config String bootCodeSection = ".bootCodeSection";
    81
    82    };


package ti.catalog.msp430.init

     1    requires xdc.runtime;
     2
     3    /*
     4     *  ======== package.xdc ========
     5     *
     6     *! Revision History
     7     *! ================
     8     *! 20-Oct-2009 sg      Initial.
     9     */
    10
    11    /*!
    12     *  ======== ti.catalog.msp430.init ========
    13     */
    14    package ti.catalog.msp430.init[1,0,0] {
    15        module Boot;
    16    }


module ti.catalog.msp430.peripherals.adc.ADC10

     1    /*!
     2     *  ======== ADC10 ========
     3     *  MSP430 10-bit Analog to Digital Converter
     4     */
     5    metaonly module ADC10 inherits IADC {
     6
     7        /*! ADC10 Start Conversion */
     8        enum ADC10SC_t {
     9            ADC10SC_OFF     = 0x000,    /*! No conversion. */
    10            ADC10SC         = 0x001     /*! Start ADC conversion manually. */
    11        };
    12
    13        /*! ADC10 Enable Conversion */
    14        enum ENC_t {
    15            ENC_OFF         = 0x000,    /*! Disable ADC. */
    16            ENC             = 0x002     /*! Enable ADC. */
    17        };
    18
    19        /*! ADC10 Interrupt Flag */
    20        enum ADC10IFG_t {
    21            ADC10IFG_OFF    = 0x000,    /*! Clear ADC interrupt flag. */
    22            ADC10IFG        = 0x004     /*! Set ADC interrupt flag. */
    23        };
    24
    25        /*! ADC10 Interrupt Enable */
    26        enum ADC10IE_t {
    27            ADC10IE_OFF = 0x000,    /*! Disable ADC interrupt. */
    28            ADC10IE     = 0x008     /*! Enable ADC interrupt. */
    29        };
    30
    31        /*! ADC10 On/Enable */
    32        enum ADC10ON_t {
    33            ADC10ON_OFF = 0x000,    /*! Switch Off ADC10. */
    34            ADC10ON     = 0x010     /*! Switch On ADC10. */
    35        };
    36
    37        /*! ADC10 Reference on */
    38        enum REFON_t {
    39            REFON_OFF   = 0x000,    /*! Disable ADC reference generator. */
    40            REFON       = 0x020     /*! Enable ADC reference generator. */
    41        };
    42
    43        /*! ADC10 Ref 0:1.5V / 1:2.5V */
    44        enum REF2_5V_t {
    45            REF2_5V_OFF = 0x000,    /*! Set reference voltage generator = 1.5V. */
    46            REF2_5V     = 0x040     /*! Set reference voltage generator = 2.5V. */
    47        };
    48
    49        /*! ADC10 Multiple SampleConversion */
    50        enum MSC_t {
    51            MSC_OFF = 0x000,    /*! Disable multiple sample and conversion. */
    52            MSC     = 0x080     /*! Enable multiple sample and conversion. */
    53        };
    54
    55        /*! ADC10 Reference Burst Mode */
    56        enum REFBURST_t {
    57            REFBURST_OFF = 0x000,   /*! Reference buffer on continuously. */
    58            REFBURST     = 0x100    /*! Reference buffer on only during sample-and-conversion. */
    59        };
    60
    61        /*! ADC10 Enable output of Ref. */
    62        enum REFOUT_t {
    63            REFOUT_OFF      = 0x000,    /*! Reference output off. */
    64            REFOUT          = 0x200     /*! Reference output on. */
    65        };
    66
    67        /*! ADC10 Sampling Rate 0:200ksps / 1:50ksps */
    68        enum ADC10SR_t {
    69            ADC10SR_OFF = 0x000, /*! Reference buffer supports up to ~200 ksps. */
    70            ADC10SR     = 0x400  /*! Reference buffer supports up to ~50 ksps. */
    71        };
    72
    73        /*! ADC10 Sample Hold Select 0 */
    74        enum ADC10SHT_t {
    75            ADC10SHT_0      = (0*0x800u),   /*! 4 x ADC10CLKs. */
    76            ADC10SHT_1      = (1*0x800u),   /*! 8 x ADC10CLKs. */
    77            ADC10SHT_2      = (2*0x800u),   /*! 16 x ADC10CLKs. */
    78            ADC10SHT_3      = 3*0x800u      /*! 64 x ADC10CLKs. */
    79        };
    80
    81        /*! ADC10 Reference Select 0 */
    82        enum SREF_t {
    83            SREF_0 = (0*0x2000u),    /*! VR+ = VCC and VR- = VSS. */
    84            SREF_1 = (1*0x2000u),    /*! VR+ = VREF+ and VR- = VSS. */
    85            SREF_2 = (2*0x2000u),    /*! VR+ = VeREF+ and VR- = VSS. */
    86            SREF_3 = (3*0x2000u),    /*! VR+ = Buffered VeREF+ and VR- = VSS. */
    87            SREF_4 = (4*0x2000u),    /*! VR+ = VCC and VR- = VREF-/ VeREF-. */
    88            SREF_5 = (5*0x2000u),    /*! VR+ = VREF+ and VR- = VREF-/ VeREF-. */
    89            SREF_6 = (6*0x2000u),    /*! VR+ = VeREF+ and VR- = VREF-/ VeREF-. */
    90            SREF_7 = 7*0x2000u       /*! VR+ = Buffered VeREF+ and VR- = VREF-/ VeREF-. */
    91        };
    92
    93        enum ADC10BUSY_t {
    94            ADC10BUSY_OFF = 0x0000, /*! No operation is active. */
    95            ADC10BUSY     = 0x0001  /*! A sequence, sample, or conversion is active. */
    96        };
    97
    98        /*! Types of conversion */
    99        enum CONSEQ_t {
   100            CONSEQ_0 = (0*2u),      /*! Single channel single conversion. */
   101            CONSEQ_1 = (1*2u),      /*! Sequence of channels. */
   102            CONSEQ_2 = (2*2u),      /*! Repeat single channel. */
   103            CONSEQ_3 = 3*2u         /*! Repeat sequence of channels. */
   104        };
   105
   106        /*! ADC10 Clock Source */
   107        enum ADC10SSEL_t {
   108            ADC10SSEL_0 = (0*8u),       /*! ADC10OSC. */
   109            ADC10SSEL_1 = (1*8u),       /*! ACLK. */
   110            ADC10SSEL_2 = (2*8u),       /*! MCLK.*/
   111            ADC10SSEL_3 = 3*8u          /*! SMCLK. */
   112        };
   113
   114        /*! ADC10 Clock Divider */
   115        enum ADC10DIV_t {
   116            ADC10DIV_0 = (0*0x20u),     /*! Divide by 1. */
   117            ADC10DIV_1 = (1*0x20u),     /*! Divide by 2. */
   118            ADC10DIV_2 = (2*0x20u),     /*! Divide by 3. */
   119            ADC10DIV_3 = (3*0x20u),     /*! Divide by 4. */
   120            ADC10DIV_4 = (4*0x20u),     /*! Divide by 5. */
   121            ADC10DIV_5 = (5*0x20u),     /*! Divide by 6. */
   122            ADC10DIV_6 = (6*0x20u),     /*! Divide by 7. */
   123            ADC10DIV_7 = 7*0x20u        /*! Divide by 8. */
   124        };
   125
   126        /*! ADC10 input signal inversion */
   127        enum ISSH_t {
   128            ISSH_OFF = 0x0000,          /*! Input signal not inverted. */
   129            ISSH     = 0x0100           /*! Input signal inverted. */
   130        };
   131
   132        /*! ADC10 output as 2's complement */
   133        enum ADC10DF_t {
   134            ADC10DF_OFF = 0x0000,   /*! ADC10 Data Format as binary. */
   135            ADC10DF     = 0x0200    /*! ADC10 Data Format as 2's complement */
   136        };
   137
   138        /*! ADC10 trigger */
   139        enum SHS_t {
   140            SHS_0 = (0*0x400u),     /*! ADC10SC. */
   141            SHS_1 = (1*0x400u),     /*! Timer A3 OUT1. */
   142            SHS_2 = (2*0x400u),     /*! Timer A3 OUT0. */
   143            SHS_3 = 3*0x400u        /*! Timer A3 OUT2. */
   144        };
   145
   146        /*! ADC10 Channel Selection */
   147        enum INCH_t {
   148            INCH_0 = (0*0x1000u),   /*! ADC Channel 0. */
   149            INCH_1 = (1*0x1000u),   /*! ADC Channel 1. */
   150            INCH_2 = (2*0x1000u),   /*! ADC Channel 2. */
   151            INCH_3 = (3*0x1000u),   /*! ADC Channel 3. */
   152            INCH_4 = (4*0x1000u),   /*! ADC Channel 4. */
   153            INCH_5 = (5*0x1000u),   /*! ADC Channel 5. */
   154            INCH_6 = (6*0x1000u),   /*! ADC Channel 6. */
   155            INCH_7 = (7*0x1000u),   /*! ADC Channel 7. */
   156            INCH_8 = (8*0x1000u),   /*! ADC VeRef+. */
   157            INCH_9 = (9*0x1000u),   /*! ADC VeRef-. */
   158            INCH_10 = (10*0x1000u), /*! Temperature Sensor. */
   159            INCH_11 = (11*0x1000u), /*! ADC convert VCC. */
   160            INCH_12 = (12*0x1000u), /*! ADC Channel 12. */
   161            INCH_13 = (13*0x1000u), /*! ADC Channel 13. */
   162            INCH_14 = (14*0x1000u), /*! ADC Channel 14. */
   163            INCH_15 = 15*0x1000u    /*! ADC Channel 15. */
   164        };
   165
   166        /*!
   167         *  ======== ADC10CT_t ========
   168         *  Data transfer modes
   169         *
   170         *  @see #ADC10DTC0
   171         */
   172        enum ADC10CT_t {
   173            ADC10CT_OFF = 0x000,    /*! Data is transferred is stopped after every conversion. */
   174            ADC10CT     = 0x004     /*! Data is transferred continuously after every conversion. */
   175        }
   176
   177        /*!
   178         *  ======== ADC10TB_t ========
   179         *  Block data transfer modes
   180         *
   181         *  @see #ADC10DTC0
   182         */
   183        enum ADC10TB_t {
   184            ADC10TB_OFF = 0x000,    /*! One-block transfer mode. */
   185            ADC10TB     = 0x008     /*! Two-block transfer mode. */
   186        }
   187        /* End of ADC10DTC0 Register Definitions */
   188
   189        /*!
   190         *  ======== ADC10CTL0_t ========
   191         *  ADC10 Control Register 0
   192         *
   193         *  @see #ADC10CTL0
   194         */
   195        struct ADC10CTL0_t {
   196            ADC10SC_t   ADC10SC;        /*! Start conversion. Software-controlled sample-and-conversion start.
   197                                          * ADC10SC and ENC may be set together with one instruction. ADC10SC is
   198                                          * reset automatically.
   199                                          *  0  No sample-and-conversion start
   200                                          *  1  Start sample-and-conversion */
   201            ENC_t       ENC;            /*! Enable conversion
   202                                          *  0  ADC10 disabled
   203                                          *  1  ADC10 enabled */
   204            ADC10IFG_t  ADC10IFG;       /*! ADC10 interrupt flag. This bit is set if ADC10MEM is loaded with a conversion
   205                                          * result. It is automatically reset when the interrupt request is accepted, or it may
   206                                          * be reset by software. When using the DTC this flag is set when a block of
   207                                          * transfers is completed.
   208                                          *  0  No interrupt pending
   209                                          *  1  Interrupt pending */
   210            ADC10IE_t   ADC10IE;        /*! ADC10 interrupt enable
   211                                          *  0  Interrupt disabled
   212                                          *  1  Interrupt enabled */
   213            ADC10ON_t   ADC10ON;        /*! ADC10 on
   214                                          *  0  ADC10 off
   215                                          *  1  ADC10 on */
   216            REFON_t     REFON;          /*! Reference generator on
   217                                          *  0  Reference off
   218                                          *  1  Reference on */
   219            REF2_5V_t   REF2_5V;        /*! Reference-generator voltage. REFON must also be set.
   220                                          *  0  1.5 V
   221                                          *  1  2.5 V */
   222            MSC_t       MSC;            /*! Multiple sample and conversion. Valid only for sequence or repeated modes.
   223                                          *  0  The sampling requires a rising edge of the SHI signal to trigger each
   224                                          *     sample-and-conversion.
   225                                          *  1  The first rising edge of the SHI signal triggers the sampling timer, but
   226                                          *     further sample-and-conversions are performed automatically as soon
   227                                          *     as the prior conversion is completed */
   228            REFBURST_t  REFBURST;       /*! Reference burst.
   229                                          *  0  Reference buffer on continuously
   230                                          *  1  Reference buffer on only during sample-and-conversion */
   231            REFOUT_t    REFOUT;         /*! Reference output
   232                                          *  0  Reference output off
   233                                          *  1  Reference output on */
   234            ADC10SR_t   ADC10SR;        /*! ADC10 sampling rate. This bit selects the reference buffer drive capability for
   235                                          * the maximum sampling rate. Setting ADC10SR reduces the current
   236                                          * consumption of the reference buffer.
   237                                          *  0  Reference buffer supports up to ~200 ksps
   238                                          *  1  Reference buffer supports up to ~50 ksps */
   239            ADC10SHT_t  ADC10SHT;       /*! ADC10 sample-and-hold time
   240                                          *  00  4 x ADC10CLKs
   241                                          *  01  8 x ADC10CLKs
   242                                          *  10  16 x ADC10CLKs
   243                                          *  11  64 x ADC10CLKs */
   244            SREF_t      SREF;           /*! Select reference
   245                                          *  000  VR+ = VCC and VR- = VSS
   246                                          *  001  VR+ = VREF+ and VR- = VSS
   247                                          *  010  VR+ = VeREF+ and VR- = VSS
   248                                          *  011  VR+ = Buffered VeREF+ and VR- = VSS
   249                                          *  100  VR+ = VCC and VR- = VREF-/ VeREF-
   250                                          *  101  VR+ = VREF+ and VR- = VREF-/ VeREF-
   251                                          *  110  VR+ = VeREF+ and VR- = VREF-/ VeREF-
   252                                          *  111  VR+ = Buffered VeREF+ and VR- = VREF-/ VeREF- */
   253        }
   254
   255        /*!
   256         *  ======== ADC10CTL1_t ========
   257         *  ADC10 Control Register 1
   258         *
   259         *  @see #ADC10CTL1
   260         */
   261        struct ADC10CTL1_t {
   262            ADC10BUSY_t ADC10BUSY;      /*! ADC10 busy. This bit indicates an active sample or conversion operation
   263                                          *  0  No operation is active.
   264                                          *  1  A sequence, sample, or conversion is active. */
   265            CONSEQ_t    CONSEQ;         /*! Conversion sequence mode select
   266                                          *  00  Single-channel-single-conversion
   267                                          *  01  Sequence-of-channels
   268                                          *  10  Repeat-single-channel
   269                                          *  11  Repeat-sequence-of-channels */
   270            ADC10SSEL_t ADC10SSEL;      /*! ADC10 clock source select
   271                                          *  00  ADC10OSC
   272                                          *  01  ACLK
   273                                          *  10  MCLK
   274                                          *  11  SMCLK */
   275            ADC10DIV_t  ADC10DIV;       /*! ADC10 clock divider
   276                                          *  000  /1
   277                                          *  001  /2
   278                                          *  010  /3
   279                                          *  011  /4
   280                                          *  100  /5
   281                                          *  101  /6
   282                                          *  110  /7
   283                                          *  111  /8 */
   284            ISSH_t      ISSH;           /*! Invert signal sample-and-hold
   285                                          *  0  The sample-input signal is not inverted.
   286                                          *  1  The sample-input signal is inverted. */
   287            ADC10DF_t   ADC10DF;        /*! ADC10 data format
   288                                          *  0  Straight binary
   289                                          *  1  2s complement */
   290            SHS_t       SHS;            /*! Sample-and-hold source select
   291                                          *  00  ADC10SC bit
   292                                          *  01  Timer_A.OUT1
   293                                          *  10  Timer_A.OUT0
   294                                          *  11  Timer_A.OUT2 (Timer_A.OUT1 on MSP430x20x2 devices) */
   295            INCH_t      INCH;           /*! Input channel select. These bits select the channel for a single-conversion or
   296                                          * the highest channel for a sequence of conversions.
   297                                          *  0000  A0
   298                                          *  0001  A1
   299                                          *  0010  A2
   300                                          *  0011  A3
   301                                          *  0100  A4
   302                                          *  0101  A5
   303                                          *  0110  A6
   304                                          *  0111  A7
   305                                          *  1000  VeREF+
   306                                          *  1001  VREF-/VeREF-
   307                                          *  1010  Temperature sensor
   308                                          *  1011  (VCC ? VSS) / 2
   309                                          *  1100  A12
   310                                          *  1101  A13
   311                                          *  1110  A14
   312                                          *  1111  A15 */
   313        }
   314
   315        /*!
   316         *  ======== ADC10DTC0_t ========
   317         *  Data Transfer Control Register 0
   318         *
   319         *  @see #ADC10DTC0
   320         */
   321        struct ADC10DTC0_t {
   322            ADC10TB_t   ADC10TB;        /*! ADC10 two-block mode
   323                                          *  0  One-block transfer mode
   324                                          *  1  Two-block transfer mode */
   325            ADC10CT_t   ADC10CT;        /*! ADC10 continuous transfer
   326                                          *  0  Data transfer stops when one block (one-block mode) or two blocks
   327                                          *     (two-block mode) have completed.
   328                                          *  1  Data is transferred continuously. DTC operation is stopped only if
   329                                          *     ADC10CT cleared, or ADC10SA is written to. */
   330        }
   331
   332    instance:
   333        /*! Control Register 0 */
   334        config ADC10CTL0_t  ADC10CTL0 = {
   335            ADC10SC :   ADC10SC_OFF,
   336            ENC     :   ENC_OFF,
   337            ADC10IFG:   ADC10IFG_OFF,
   338            ADC10IE :   ADC10IE_OFF,
   339            ADC10ON :   ADC10ON_OFF,
   340            REFON   :   REFON_OFF,
   341            REF2_5V :   REF2_5V_OFF,
   342            MSC     :   MSC_OFF,
   343            REFBURST:   REFBURST_OFF,
   344            REFOUT  :   REFOUT_OFF,
   345            ADC10SR :   ADC10SR_OFF,
   346            ADC10SHT:   ADC10SHT_0,
   347            SREF    :   SREF_0
   348        };
   349
   350        /*! Control Register 1 */
   351        config ADC10CTL1_t  ADC10CTL1 = {
   352            ADC10BUSY   :   ADC10BUSY_OFF,
   353            CONSEQ      :   CONSEQ_0,
   354            ADC10SSEL   :   ADC10SSEL_0,
   355            ADC10DIV    :   ADC10DIV_0,
   356            ISSH        :   ISSH_OFF,
   357            ADC10DF     :   ADC10DF_OFF,
   358            SHS         :   SHS_0,
   359            INCH        :   INCH_0
   360        };
   361
   362        /*!
   363         *  Analog (Input) Enable Control Register 0
   364         *
   365         *  Bit n enables the corresponding pin for analog
   366         *  input. Bit 0 corresponds to A0, bit 1 corresponds to A1, ...
   367         */
   368        config Bits16 ADC10AE0 = 0;
   369
   370        /*!
   371         *  Analog (Input) Enable Control Register 1
   372         *
   373         *  Bits 0, 1, 2, and 3 are reserved.
   374         *
   375         *  Starting with bit 4, bit n enables pin n+8 for analog
   376         *  input: Bit 4 corresponds to A12, bit 5 corresponds to A13, ...
   377         */
   378        config Bits16 ADC10AE1 = 0;
   379
   380        /*! Data Transfer Control Register 0 */
   381        config ADC10DTC0_t ADC10DTC0 = {
   382            ADC10TB : ADC10TB_OFF,
   383            ADC10CT : ADC10CT_OFF
   384        };
   385
   386        /*!
   387         *  Data Transfer Control Register 1
   388         *
   389         *  This register defines the number of transfers in each block: 0
   390         *  implies DTC is disabled, 1 through 0xff are valid transfer counts.
   391         */
   392        config Bits8  ADC10DTC1 = 0;
   393
   394        /*! Data Transfer Start Address */
   395        config Bits16 ADC10SA = 0x200;
   396
   397        /*! Determine if each Register needs to be forced set or not */
   398        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
   399        [
   400            { register : "ADC10CTL0" , regForceSet : false },
   401            { register : "ADC10CTL1" , regForceSet : false },
   402            { register : "ADC10AE0"  , regForceSet : false },
   403            { register : "ADC10AE1"  , regForceSet : false },
   404            { register : "ADC10DTC0" , regForceSet : false },
   405            { register : "ADC10DTC1" , regForceSet : false },
   406            { register : "ADC10SA"   , regForceSet : false }
   407        ];
   408    }


interface ti.catalog.msp430.peripherals.adc.IADC

     1    import ti.catalog.msp430.peripherals.clock.IClock;
     2    import ti.catalog.msp430.peripherals.timer.ITimer_A;
     3
     4    /*!
     5     *  ======== IADC ========
     6     *  MSP430 Analog to Digital Converter Interface
     7     */
     8    metaonly interface IADC inherits xdc.platform.IPeripheral {
     9
    10        /*!
    11        *  ======== ForceSetDefaultRegister_t ========
    12        *  Force Set Default Register
    13        *
    14        *  Type to store if each register needs to be forced initialized
    15        *  even if the register is in default state.
    16        *
    17        *  @see #ForceSetDefaultRegister_t
    18        */
    19        struct ForceSetDefaultRegister_t {
    20            String     register;
    21            Bool       regForceSet;
    22        }
    23
    24        /*!
    25         *  ======== create ========
    26         *  Create an instance of this peripheral
    27         */
    28        create(IClock.Instance clock, ITimer_A.Instance timerA);
    29
    30    instance:
    31        /*! @_nodoc */
    32        config IClock.Instance clock;
    33
    34        /*! @_nodoc */
    35        config ITimer_A.Instance timerA;
    36    }


package ti.catalog.msp430.peripherals.adc

     1    package ti.catalog.msp430.peripherals.adc {
     2        module ADC10;
     3        interface IADC;
     4    }


module ti.catalog.msp430.peripherals.clock.Clock2xx

     1    import ti.catalog.msp430.peripherals.special_function.IE1;
     2
     3    /*!
     4     *  ======== Clock ========
     5     *  MSP430 Master Clock
     6     */
     7    metaonly module Clock2xx inherits IClock {
     8
     9        /*! MOD0 Bit */
    10        enum MOD0_t {
    11            MOD0_OFF = 0x00,    /*! Disable MOD0 bit */
    12            MOD0 = 0x01         /*! Enable MOD0 bit */
    13        };
    14
    15        /*! MOD1 Bit */
    16        enum MOD1_t {
    17            MOD1_OFF = 0x00,    /*! Disable MOD1 bit */
    18            MOD1 = 0x02         /*! Enable MOD1 bit */
    19        };
    20
    21        /*! MOD2 Bit */
    22        enum MOD2_t {
    23            MOD2_OFF = 0x00,    /*! Disable MOD2 bit */
    24            MOD2 = 0x04         /*! Enable MOD2 bit */
    25        };
    26
    27        /*! MOD3 Bit */
    28        enum MOD3_t {
    29            MOD3_OFF = 0x00,    /*! Disable MOD3 bit */
    30            MOD3 = 0x08         /*! Enable MOD3 bit */
    31        };
    32
    33        /*! MOD4 Bit */
    34        enum MOD4_t {
    35            MOD4_OFF = 0x00,    /*! Disable MOD4 bit */
    36            MOD4 = 0x10         /*! Enable MOD4 bit */
    37        };
    38
    39        /*! DCO0 Bit */
    40        enum DCO0_t {
    41            DCO0_OFF = 0x00,    /*! Disable DCO0 bit */
    42            DCO0 = 0x20         /*! Enable DCO0 bit */
    43        };
    44
    45        /*! DCO1 Bit */
    46        enum DCO1_t {
    47            DCO1_OFF = 0x00,    /*! Disable DCO1 bit */
    48            DCO1 = 0x40         /*! Enable DCO1 bit */
    49        };
    50
    51        /*! DCO2 Bit */
    52        enum DCO2_t {
    53            DCO2_OFF = 0x00,    /*! Disable DCO2 bit */
    54            DCO2 = 0x80         /*! Enable DCO2 bit */
    55        };
    56
    57        enum XT2OFF_t {
    58            XT2OFF_OFF = 0x00,  /*! Enable XT2CLK */
    59            XT2OFF = 0x80       /*! Disable XT2CLK */
    60        };
    61
    62        enum XTS_t {
    63            XTS_OFF = 0x00,     /*! Low Frequency */
    64            XTS = 0x40          /*! High Frequency */
    65        };
    66
    67        enum RSEL0_t {
    68            RSEL0_OFF = 0x00,   /*! Disable RSEL0 bit */
    69            RSEL0 = 0x80        /*! Enable RSEL0 bit */
    70        };
    71
    72        enum RSEL1_t {
    73            RSEL1_OFF = 0x00,   /*! Disable RSEL1 bit */
    74            RSEL1 = 0x80        /*! Enable RSEL1 bit */
    75        };
    76
    77        enum RSEL2_t {
    78            RSEL2_OFF = 0x00,   /*! Disable RSEL2 bit */
    79            RSEL2 = 0x80        /*! Enable RSEL2 bit */
    80        };
    81
    82        enum RSEL3_t {
    83            RSEL3_OFF = 0x00,   /*! Disable RSEL3 bit */
    84            RSEL3 = 0x80        /*! Enable RSEL3 bit */
    85        };
    86
    87        /*! MCLK Source Select */
    88        enum SELM_t {
    89            SELM_0 = 0x00,      /*! DCOCLK */
    90    /*        SELM_1 = 0x40,       DCOCLK */
    91            SELM_2 = 0x80,      /*! XT2CLK/LFXTCLK */
    92            SELM_3 = 0xC0       /*! LFXTCLK */
    93        };
    94
    95        /*! ACLK Divider values */
    96        enum DIVA_t {
    97            DIVA_0 = 0x00,      /*! Divide by 1 */
    98            DIVA_1 = 0x10,      /*! Divide by 2 */
    99            DIVA_2 = 0x20,      /*! Divide by 4 */
   100            DIVA_3 = 0x30       /*! Divide by 8 */
   101        };
   102
   103        /*! MCLK Divider values */
   104        enum DIVM_t {
   105            DIVM_0 = 0x00,      /*! Divide by 1 */
   106            DIVM_1 = 0x10,      /*! Divide by 2 */
   107            DIVM_2 = 0x20,      /*! Divide by 4 */
   108            DIVM_3 = 0x30       /*! Divide by 8 */
   109        };
   110
   111        /*! SMCLK Divider values */
   112        enum DIVS_t {
   113            DIVS_0 = 0x00,      /*! Divide by 1 */
   114            DIVS_1 = 0x02,      /*! Divide by 2 */
   115            DIVS_2 = 0x04,      /*! Divide by 4 */
   116            DIVS_3 = 0x06       /*! Divide by 8 */
   117        };
   118
   119        enum SELS_t {
   120            SELS_OFF = 0x00,    /*! DCOCLK */
   121            SELS = 0x40         /*! XT2CLK */
   122        };
   123
   124        enum DCOR_t {
   125            DCOR_OFF = 0x00,    /*! DCO uses internal resistor */
   126            DCOR = 0x40         /*! DCO uses external resistor */
   127        };
   128
   129        /*! XT2 frequency range select */
   130        enum XT2S_t {
   131            XT2S_0 = 0x00,      /*! 0.4 - 1 MHz */
   132            XT2S_1 = 0x40,      /*! 1 - 3 MHz */
   133            XT2S_2 = 0x80,      /*! 3 - 16 MHz */
   134            XT2S_3 = 0xC0       /*! Digital input signal */
   135        };
   136
   137        enum LFXT1S_t {
   138            LFXT1S_0 = 0x00,    /*! XTS = 0, 32768kHz Crystal ; XTS = 1, 0.4 - 1-MHz crystal or resonator */
   139            LFXT1S_1 = 0x10,    /*! XTS = 0, Reserved         ; XTS = 1, 1 - 3-MHz crystal or resonator */
   140            LFXT1S_2 = 0x20,    /*! XTS = 0, VLOCLK           ; XTS = 1, 3 - 16-MHz crystal or resonator */
   141            LFXT1S_3 = 0x30     /*! XTS = 0, Digital External ; XTS = 1, 0.4 - 16-MHz Digital External */
   142        };
   143
   144        enum XCAP_t {
   145            XCAP_0 = 0x00,      /*! ~1 pF */
   146            XCAP_1 = 0x04,      /*! ~6 pF */
   147            XCAP_2 = 0x08,      /*! ~10 pF */
   148            XCAP_3 = 0x0C       /*! ~12.5 pF */
   149        };
   150
   151        enum XT2OF_t {
   152            XT2OF_OFF = 0x00,   /*! No fault condition present */
   153            XT2OF = 0x02        /*! XT2 fault condition present */
   154        };
   155
   156        enum LFXT1OF_t {
   157            LFXT1OF_OFF = 0x00, /*! No fault condition present */
   158            LFXT1OF = 0x01      /*! LFXT1 fault condition present */
   159        };
   160
   161        /*
   162         *  ======== PreCalibratedValues_t ========
   163         */
   164        enum PreCalibratedValues_t {
   165            PreCal_0,               /*! 1 MHz */
   166            PreCal_1,               /*! 8 MHz */
   167            PreCal_2,               /*! 12 MHz */
   168            PreCal_3,               /*! 16 MHz */
   169            PreCal_4                /*! Custom */
   170        };
   171
   172        struct DCOCTL_t {
   173            MOD0_t    MOD0;     /*! Modulation Bit 0 */
   174            MOD1_t    MOD1;     /*! Modulation Bit 1 */
   175            MOD2_t    MOD2;     /*! Modulation Bit 2 */
   176            MOD3_t    MOD3;     /*! Modulation Bit 3 */
   177            MOD4_t    MOD4;     /*! Modulation Bit 4 */
   178            DCO0_t    DCO0;     /*! DCO Select Bit 0 */
   179            DCO1_t    DCO1;     /*! DCO Select Bit 1 */
   180            DCO2_t    DCO2;     /*! DCO Select Bit 2 */
   181        }
   182
   183        /*!
   184         *  ======== BCSCTL1_t ========
   185         *  BCS Control Register 1
   186         *
   187         *  @field(XT2OFF)  This bit turns off the XT2 oscillator: 0 - XT2 is on,
   188         *                  1 - XT2 is off if it is not used for MCLK or SMCLK
   189         *
   190         *  @field(XTS)     0 - Low frequency mode; 1 - High frequency mode
   191         */
   192        struct BCSCTL1_t {
   193            XT2OFF_t  XT2OFF;       /*! XT2 off. This bit turns off the XT2 oscillator
   194                                      *  0  XT2 is on
   195                                      *  1  XT2 is off if it is not used for MCLK or SMCLK. */
   196            XTS_t     XTS;          /*! LFXT1 mode select.
   197                                       *  0  Low frequency mode
   198                                       *  1  High frequency mode */
   199            DIVA_t    DIVA;         /*! Divider for ACLK
   200                                      *  00  /1
   201                                      *  01  /2
   202                                      *  10  /4
   203                                      *  11  /8 */
   204            RSEL0_t   RSEL0;        /*! Range select bit 0 */
   205            RSEL1_t   RSEL1;        /*! Range select bit 1 */
   206            RSEL2_t   RSEL2;        /*! Range select bit 2 */
   207            RSEL3_t   RSEL3;        /*! Range select bit 3 */
   208        }
   209
   210        /*!
   211         *  ======== BCSCTL2_t ========
   212         *  BCS Control Register 2
   213         *
   214         *  @field(SELM) These bits select the MCLK source.
   215         *  @field(SELS) These bits select the SMCLK source. When
   216         *               XT2 oscillator present, 0 selects DCOCLK and
   217         *               1 selects XT2CLK; otherwise 0 selects LFXT1CLK and
   218         *               1 selects VLOCLK.
   219         *  @field(DCOR) 0 - Internal resistor, 1 - external resistor
   220         */
   221        struct BCSCTL2_t {
   222            SELM_t    SELM;         /*! Select MCLK. These bits select the MCLK source.
   223                                      *  00  DCOCLK
   224                                      *  01  DCOCLK
   225                                      *  10  XT2CLK when XT2 oscillator present on-chip. LFXT1CLK or VLOCLK
   226                                      *      when XT2 oscillator not present on-chip.
   227                                      *  11  LFXT1CLK or VLOCLK */
   228            DIVM_t    DIVM;         /*! Divider for MCLK
   229                                      *  00  /1
   230                                      *  01  /2
   231                                      *  10  /4
   232                                      *  11  /8 */
   233            SELS_t    SELS;         /*! Select SMCLK. This bit selects the SMCLK source.
   234                                      *  0  DCOCLK
   235                                      *  1  XT2CLK when XT2 oscillator present. LFXT1CLK or VLOCLK when
   236                                      *     XT2 oscillator not present */
   237            DIVS_t    DIVS;         /*! Divider for SMCLK
   238                                      *  00  /1
   239                                      *  01  /2
   240                                      *  10  /4
   241                                      *  11  /8 */
   242            DCOR_t    DCOR;         /*! DCO resistor select
   243                                      *  0  Internal resistor
   244                                      *  1  External resistor */
   245        }
   246
   247        /*!
   248         *  ======== BCSCTL3_t ========
   249         *  BCS Control register 3
   250         *
   251         *  @field(LFXT1S)  These bits select between LFXT1 and VLO and XTS = 0,
   252         *                  and select the frequency range for LFXT1 when XTS = 1
   253         *  @field(XCAP)    These bits select the effective capacitance seen by
   254         *                  the LFXT1 crystal when XTS = 0. If XTS = 1 or if
   255         *                  LFCT1Sx = 11, then XCAPx should be 00.
   256         */
   257        struct BCSCTL3_t {
   258            XT2S_t    XT2S;         /*! XT2 range select. These bits select the frequency range for XT2.
   259                                      *  00  0.4 - 1-MHz crystal or resonator
   260                                      *  01  1 - 3-MHz crystal or resonator
   261                                      *  10  3 - 16-MHz crystal or resonator
   262                                      *  11  Digital external 0.4 - 16-MHz clock source */
   263            LFXT1S_t  LFXT1S;       /*! Low-frequency clock select and LFXT1 range select. These bits select
   264                                      * between LFXT1 and VLO when XTS = 0, and select the frequency range
   265                                      * for LFXT1 when XTS = 1
   266                                      *
   267                                      *  When XTS = 0:
   268                                      *  00  32768 Hz Crystal on LFXT1
   269                                      *  01  Reserved
   270                                      *  10  VLOCLK (Reserved in MSP430x21x1 devices)
   271                                      *  11  Digital external clock source
   272                                      *
   273                                      *  When XTS = 1 (Not applicable for MSP430x20xx devices)
   274                                      *  00  0.4 - 1-MHz crystal or resonator
   275                                      *  01  1 - 3-MHz crystal or resonator
   276                                      *  10  3 - 16-MHz crystal or resonator
   277                                      *  11  Digital external 0.4 - 16-MHz clock source */
   278            XCAP_t    XCAP;         /*! Oscillator capacitor selection. These bits select the effective capacitance
   279                                      * seen by the LFXT1 crystal when XTS = 0. If XTS = 1 or if LFCT1Sx = 11
   280                                      * XCAPx should be 00.
   281                                      *  00  ~1 pF
   282                                      *  01  ~6 pF
   283                                      *  10  ~10 pF
   284                                      *  11  ~12.5 pF */
   285            XT2OF_t   XT2OF;        /*! XT2 oscillator fault
   286                                      *  0  No fault condition present
   287                                      *  1  Fault condition present */
   288            LFXT1OF_t LFXT1OF;      /*! LFXT1 oscillator fault
   289                                      *  0  No fault condition present
   290                                      *  1  Fault condition present */
   291        }
   292
   293        create(IE1.Instance interruptEnableRegister1);
   294
   295    instance:
   296
   297        /*! DCO Clock Frequency Control */
   298        config DCOCTL_t DCOCTL = {
   299            MOD0        : MOD0_OFF,
   300            MOD1        : MOD1_OFF,
   301            MOD2        : MOD2_OFF,
   302            MOD3        : MOD3_OFF,
   303            MOD4        : MOD4_OFF,
   304            DCO0        : DCO0,
   305            DCO1        : DCO1,
   306            DCO2        : DCO2_OFF,
   307        };
   308
   309        /*! Basic Clock System Control 1 */
   310        config BCSCTL1_t  BCSCTL1 = {
   311            XT2OFF      : XT2OFF,
   312            XTS         : XTS_OFF,
   313            DIVA        : DIVA_0,
   314            RSEL0       : RSEL0,
   315            RSEL1       : RSEL1,
   316            RSEL2       : RSEL2,
   317            RSEL3       : RSEL3_OFF
   318        };
   319
   320        /*! Basic Clock System Control 2 */
   321        config BCSCTL2_t  BCSCTL2 = {
   322            SELM        : SELM_0,
   323            DIVM        : DIVM_0,
   324            SELS        : SELS_OFF,
   325            DIVS        : DIVS_0,
   326            DCOR        : DCOR_OFF
   327        };
   328
   329        /*! Basic Clock System Control 3 */
   330        config BCSCTL3_t  BCSCTL3 = {
   331            XT2S        : XT2S_0,
   332            LFXT1S      : LFXT1S_0,
   333            XCAP        : XCAP_1
   334        };
   335
   336            /*! Determine if each Register needs to be forced set or not */
   337            readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
   338            [
   339                    { register : "DCOCTL"  , regForceSet : false },
   340                    { register : "BCSCTL1" , regForceSet : false },
   341                    { register : "BCSCTL2" , regForceSet : false },
   342                    { register : "BCSCTL3" , regForceSet : false }
   343            ];
   344
   345        /*! Basic Clock System 2xx pre-calibrated system frequency */
   346        config PreCalibratedValues_t preCalibratedValues = PreCal_0;
   347
   348        config float VLOCLKHz = 12000;
   349        config float WATCHCRYSTALCLKHz = 32768;
   350        config float LFXT1CLKHz = 0;
   351        config float XT2CLKHz = 0;
   352
   353        /*! Set whether XT2 is available on the device. */
   354        config bool hasXT2 = false;
   355
   356        /*! @_nodoc */
   357        config IE1.Instance interruptEnableRegister1;
   358    }


interface ti.catalog.msp430.peripherals.clock.IClock

     1    /*!
     2     *  ======== Clock ========
     3     *  MSP430 Master Clock
     4     */
     5    metaonly interface IClock inherits xdc.platform.IPeripheral {
     6
     7        /*!
     8        *  ======== ForceSetDefaultRegister_t ========
     9        *  Force Set Default Register
    10        *
    11        *  Type to store if each register needs to be forced initialized
    12        *  even if the register is in default state.
    13        *
    14        *  @see #ForceSetDefaultRegister_t
    15        */
    16        struct ForceSetDefaultRegister_t {
    17            String     register;
    18            Bool       regForceSet;
    19        }
    20
    21    instance:
    22
    23        /*!
    24         *  ======== baseAddr ========
    25         *  Address of the peripheral's control register.
    26         *
    27         *  A peripheral's registers are commonly accessed through a structure
    28         *  that defines the offsets of a particular register from the lowest
    29         *  address mapped to a peripheral. That lowest address is specified by
    30         *  this parameter.
    31         */
    32        config UInt baseAddr;
    33
    34        /*!
    35         * Stores the DCO clock frequency in float
    36         */
    37        readonly config float DCOCLKHz = 1000000;
    38
    39        /*!
    40         *  ======== ACLKHz Frequency ========
    41         *  Stores ACLK as frequency in float
    42         */
    43        readonly config float ACLKHz;
    44
    45        /*!
    46         *  ======== MCLKHz Frequency ========
    47         *  Stores MCLK as frequency in float
    48         */
    49        readonly config float MCLKHz;
    50
    51        /*!
    52         *  ======== SMCLKHz Frequency ========
    53         *  Stores SMCLK as frequency in float
    54         */
    55        readonly config float SMCLKHz;
    56
    57        /*!
    58         *  ======== computeDCOCLKHz ========
    59         *  Initialize to the nearest available DCO clock frequency
    60         */
    61        void computeDCOCLKHz(float DCOCLKHz);
    62    }


package ti.catalog.msp430.peripherals.clock

     1    requires ti.catalog.msp430.peripherals.special_function;
     2
     3    package ti.catalog.msp430.peripherals.clock {
     4        module Clock2xx;
     5        interface IClock;
     6    }


interface ti.catalog.msp430.peripherals.communication.IUSCI

     1    /*!
     2     *  ======== IUSCI ========
     3     *  Universal Serial Communication Interface
     4     */
     5    metaonly interface IUSCI inherits xdc.platform.IPeripheral {
     6        /*****************************************************************
     7         * REGISTER BIT DEFINITIONS                                      *
     8         *****************************************************************/
     9
    10        /*! MSB first select. Controls the direction of the receive and transmit shift register. */
    11        enum UCMSB_t {
    12            UCMSB_OFF = 0x00,       /*! LSB first */
    13            UCMSB = 0x02            /*! MSB first */
    14        };
    15
    16        /*! Character length. Selects 7-bit or 8-bit character length. */
    17        enum UC7BIT_t {
    18            UC7BIT_OFF = 0x00,      /*! 8-bit */
    19            UC7BIT = 0x02           /*! 7-bit */
    20        };
    21
    22        /*! Synchronous mode enable */
    23        enum UCSYNC_t {
    24            UCSYNC_OFF = 0x00,      /*! Asynchronous mode */
    25            UCSYNC = 0x02           /*! Synchronous Mode */
    26        };
    27
    28        /*! Receive erroneous-character interrupt-enable */
    29        enum UCRXEIE_t {
    30            UCRXEIE_OFF = 0x00,     /*! Erroneous characters rejected and UCAxRXIFG is not set */
    31            UCRXEIE = 0x02          /*! Erroneous characters received will set UCAxRXIFG */
    32        };
    33
    34        /*! Receive break character interrupt-enable */
    35        enum UCBRKIE_t {
    36            UCBRKIE_OFF = 0x00,     /*! Received break characters do not set UCAxRXIFG. */
    37            UCBRKIE = 0x02          /*! Received break characters set UCAxRXIFG. */
    38        };
    39
    40        /*! Dormant. Puts USCI into sleep mode. */
    41        enum UCDORM_t {
    42            UCDORM_OFF = 0x00,      /*! Not dormant. All received characters will set UCAxRXIFG. */
    43            UCDORM = 0x02           /*! Dormant. Only characters that are preceded by an idle-line or with
    44                                     * address bit set will set UCAxRXIFG. In UART mode with automatic baud
    45                                     * rate detection only the combination of a break and synch field will set
    46                                     * UCAxRXIFG. */
    47        };
    48
    49        /*! Transmit address. Next frame to be transmitted will be marked as address depending on the selected multiprocessor mode. */
    50        enum UCTXADDR_t {
    51            UCTXADDR_OFF = 0x00,    /*! Next frame transmitted is data */
    52            UCTXADDR = 0x02         /*! Next frame transmitted is an address */
    53        };
    54
    55        /*! Transmit break. Transmits a break with the next write to the transmit buffer.
    56         * In UART mode with automatic baud rate detection 055h must be written
    57         * into UCAxTXBUF to generate the required break/synch fields. Otherwise
    58         * 0h must be written into the transmit buffer. */
    59        enum UCTXBRK_t {
    60            UCTXBRK_OFF = 0x00,     /*! Next frame transmitted is not a break */
    61            UCTXBRK = 0x02          /*! Next frame transmitted is a break or a break/synch */
    62        };
    63
    64        /*! Software reset enable */
    65        enum UCSWRST_t {
    66            UCSWRST_OFF = 0x00,     /*! Disabled. USCI reset released for operation. */
    67            UCSWRST = 0x02          /*! Enabled. USCI logic held in reset state. */
    68        };
    69
    70        /*! Listen enable. The UCLISTEN bit selects loopback mode. */
    71        enum UCLISTEN_t {
    72            UCLISTEN_OFF = 0x00,   /*! Disabled. */
    73            UCLISTEN = 0x02        /*! Enabled. UCAxTXD is internally fed back to the receiver. */
    74        };
    75
    76        /*! Framing error flag */
    77        enum UCFE_t {
    78            UCFE_OFF = 0x00,        /*! 0 No error */
    79            UCFE = 0x02             /*! Character received with low stop bit */
    80        };
    81
    82        /*! Overrun error flag. */
    83        enum UCOE_t {
    84            UCOE_OFF = 0x00,        /*! No error. */
    85            UCOE = 0x02             /*! Overrun error occurred. */
    86        };
    87
    88        /*! Parity error flag. When UCPEN = 0, UCPE is read as 0. */
    89        enum UCPE_t {
    90            UCPE_OFF = 0x00,        /*! No error. */
    91            UCPE = 0x02             /*! Character received with parity error. */
    92        };
    93
    94        /*! Break detect flag */
    95        enum UCBRK_t {
    96            UCBRK_OFF = 0x00,       /*! No break condition */
    97            UCBRK = 0x02            /*! Break condition occurred */
    98        };
    99
   100        /*!  Bit 2 Receive error flag. This bit indicates a character was received with error(s).
   101         * When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also
   102         * set. UCRXERR is cleared when UCAxRXBUF is read. */
   103        enum UCRXERR_t {
   104            UCRXERR_OFF = 0x00,     /*! No receive errors detected */
   105            UCRXERR = 0x02          /*! Receive error detected */
   106        };
   107
   108        /*! Address received in address-bit multiprocessor mode. */
   109        enum UCADDR_t {
   110            UCADDR_OFF = 0x00,      /*! Received character is data */
   111            UCADDR = 0x02           /*! Received character is an address */
   112        };
   113
   114        /*!  Idle line detected in idle-line multiprocessor mode. */
   115        enum UCIDLE_t {
   116            UCIDLE_OFF = 0x00,      /*! No idle line detected */
   117            UCIDLE = 0x02           /*! Idle line detected */
   118        };
   119
   120        /*! USCI busy. This bit indicates if a transmit or receive operation is in progress. */
   121        enum UCBUSY_t {
   122            UCBUSY_OFF = 0x00,      /*! USCI inactive */
   123            UCBUSY = 0x01           /*! USCI transmitting or receiving */
   124        };
   125
   126        /*! USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1. */
   127        enum UCMODE_SYNC_t {
   128            UCMODE_0 = 0x00,     /*! 3-Pin SPI */
   129            UCMODE_1 = 0x01,     /*! 4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1 */
   130            UCMODE_2 = 0x02,     /*! 4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0 */
   131            UCMODE_3 = 0x04      /*! I2C Mode */
   132        };
   133
   134        /*!
   135        *  ======== ForceSetDefaultRegister_t ========
   136        *  Force Set Default Register
   137        *
   138        *  Type to store if each register needs to be forced initialized
   139        *  even if the register is in default state.
   140        *
   141        *  @see #ForceSetDefaultRegister_t
   142        */
   143        struct ForceSetDefaultRegister_t {
   144            String     register;
   145            Bool       regForceSet;
   146        }
   147
   148    instance:
   149        /*!
   150         * Stores the UCLK external clock frequency in float
   151         */
   152        config float UCLKHz = 1000000;
   153
   154        bool setUCTXIE(bool set);
   155
   156        bool getUCTXIE();
   157
   158        bool setUCRXIE(bool set);
   159
   160        bool getUCRXIE();
   161    }


interface ti.catalog.msp430.peripherals.communication.IUSCI_A0_SPI

     1    /*!
     2     * Universal Serial Communication Interface A0 SPI 2xx
     3     */
     4    metaonly interface IUSCI_A0_SPI inherits IUSCI_SPI {
     5
     6    instance:
     7            /*! Control Register 0 */
     8        config UCxCTL0_t UCA0CTL0 = {
     9            UCCKPH      : UCCKPH_OFF,
    10            UCCKPL      : UCCKPL_OFF,
    11            UCMSB       : UCMSB_OFF,
    12            UC7BIT      : UC7BIT_OFF,
    13            UCMST       : UCMST_OFF,
    14            UCMODE      : UCMODE_0,
    15            UCSYNC      : UCSYNC,
    16        };
    17
    18            /*! Control Register 1 */
    19        config UCxCTL1_t UCA0CTL1 = {
    20            UCSSEL      : UCSSEL_0,
    21            UCSWRST     : UCSWRST,
    22        };
    23
    24        /*! Status Register */
    25        config UCxSTAT_t UCA0STAT = {
    26            UCLISTEN    : UCLISTEN_OFF,
    27            UCFE        : UCFE_OFF,
    28            UCOE        : UCOE_OFF,
    29            UCBUSY      : UCBUSY,
    30        };
    31
    32        /*! Bit Rate Control Register 0 */
    33        config unsigned char UCA0BR0 = 0;
    34
    35        /*! Bit Rate Control Register 1 */
    36        config unsigned char UCA0BR1 = 0;
    37
    38        /*! Receive Buffer Register */
    39        config unsigned char UCA0RXBUF = 0;
    40
    41        /*! Transmit Buffer Register */
    42        config unsigned char UCA0TXBUF = 0;
    43    }


interface ti.catalog.msp430.peripherals.communication.IUSCI_A0_UART

     1    /*!
     2     * Universal Serial Communication Interface A0 UART 2xx
     3     */
     4    metaonly interface IUSCI_A0_UART inherits IUSCI_UART {
     5
     6    instance:
     7            /*! Control Register 0 */
     8        config UCxCTL0_t UCA0CTL0 = {
     9            UCPEN       : UCPEN_OFF,
    10            UCPAR       : UCPAR_OFF,
    11            UCMSB       : UCMSB_OFF,
    12            UC7BIT      : UC7BIT_OFF,
    13            UCSPB       : UCSPB_OFF,
    14            UCMODE      : UCMODE_0,
    15            UCSYNC      : UCSYNC_OFF,
    16        };
    17
    18        /*! Control Register 1 */
    19        config UCxCTL1_t UCA0CTL1 = {
    20            UCSSEL      : UCSSEL_0,
    21            UCRXEIE     : UCRXEIE_OFF,
    22            UCBRKIE     : UCBRKIE_OFF,
    23            UCDORM      : UCDORM_OFF,
    24            UCTXADDR    : UCTXADDR_OFF,
    25            UCTXBRK     : UCTXBRK_OFF,
    26            UCSWRST     : UCSWRST,
    27        };
    28
    29            /*! Modulation Control Register */
    30        config UCxMCTL_t UCA0MCTL = {
    31            UCBRF       : UCBRF_0,
    32            UCBRS       : UCBRS_0,
    33            UCOS16      : UCOS16_OFF,
    34        };
    35
    36        /*! Status Register */
    37        config UCxSTAT_t UCA0STAT = {
    38            UCLISTEN    : UCLISTEN_OFF,
    39            UCFE        : UCFE_OFF,
    40            UCOE        : UCOE_OFF,
    41            UCPE        : UCPE_OFF,
    42            UCBRK       : UCBRK_OFF,
    43            UCRXERR     : UCRXERR_OFF,
    44            UCADDR      : UCADDR_OFF,
    45            UCIDLE      : UCIDLE_OFF,
    46            UCBUSY      : UCBUSY,
    47        };
    48
    49        /*! IrDA Transmit Control Register */
    50        config UCxIRTCTL_t UCA0IRTCTL = {
    51            UCIRTXPL5   : UCIRTXPL5_OFF,
    52            UCIRTXPL4   : UCIRTXPL4_OFF,
    53            UCIRTXPL3   : UCIRTXPL3_OFF,
    54            UCIRTXPL2   : UCIRTXPL2_OFF,
    55            UCIRTXPL1   : UCIRTXPL1_OFF,
    56            UCIRTXPL0   : UCIRTXPL0_OFF,
    57            UCIRTXCLK   : UCIRTXCLK_OFF,
    58            UCIREN      : UCIREN_OFF,
    59        };
    60
    61        /*! IrDA Receive Control Register */
    62        config UCxIRRCTL_t UCA0IRRCTL = {
    63            UCIRRXFL5   : UCIRRXFL5_OFF,
    64            UCIRRXFL4   : UCIRRXFL4_OFF,
    65            UCIRRXFL3   : UCIRRXFL3_OFF,
    66            UCIRRXFL2   : UCIRRXFL2_OFF,
    67            UCIRRXFL1   : UCIRRXFL1_OFF,
    68            UCIRRXFL0   : UCIRRXFL0_OFF,
    69            UCIRRXPL    : UCIRRXPL_OFF,
    70            UCIRRXFE    : UCIRRXFE_OFF,
    71        };
    72
    73            /*! Auto Baud Rate Control Register */
    74        config UCxABCTL_t UCA0ABCTL = {
    75            UCDELIM1    : UCDELIM1_OFF,
    76            UCDELIM0    : UCDELIM0_OFF,
    77            UCSTOE      : UCSTOE_OFF,
    78            UCBTOE      : UCBTOE_OFF,
    79            UCABDEN     : UCABDEN_OFF,
    80        };
    81
    82        /*! Receive Buffer Register */
    83        config unsigned char UCA0RXBUF = 0;
    84
    85        /*! Transmit Buffer Register */
    86        config unsigned char UCA0TXBUF = 0;
    87
    88        /*! Baud rate control register 0 */
    89        config unsigned char UCA0BR0 = 0;
    90
    91        /*! Baud rate control register 1 */
    92        config unsigned char UCA0BR1 = 0;
    93    }


interface ti.catalog.msp430.peripherals.communication.IUSCI_A1_UART

     1    /*!
     2     * Universal Serial Communication Interface A0 UART 2xx
     3     */
     4    metaonly interface IUSCI_A1_UART inherits IUSCI_UART {
     5
     6    instance:
     7            /*! Control Register 0 */
     8        config UCxCTL0_t UCA1CTL0 = {
     9            UCPEN       : UCPEN_OFF,
    10            UCPAR       : UCPAR_OFF,
    11            UCMSB       : UCMSB_OFF,
    12            UC7BIT      : UC7BIT_OFF,
    13            UCSPB       : UCSPB_OFF,
    14            UCMODE      : UCMODE_0,
    15            UCSYNC      : UCSYNC_OFF,
    16        };
    17
    18            /*! Control Register 1 */
    19        config UCxCTL1_t UCA1CTL1 = {
    20            UCSSEL      : UCSSEL_0,
    21            UCRXEIE     : UCRXEIE_OFF,
    22            UCBRKIE     : UCBRKIE_OFF,
    23            UCDORM      : UCDORM_OFF,
    24            UCTXADDR    : UCTXADDR_OFF,
    25            UCTXBRK     : UCTXBRK_OFF,
    26            UCSWRST     : UCSWRST,
    27        };
    28
    29            /*! Modulation Control Register */
    30        config UCxMCTL_t UCA1MCTL = {
    31            UCBRF       : UCBRF_0,
    32            UCBRS       : UCBRS_0,
    33            UCOS16      : UCOS16_OFF,
    34        };
    35
    36        /*! Status Register */
    37        config UCxSTAT_t UCA1STAT = {
    38            UCLISTEN    : UCLISTEN_OFF,
    39            UCFE        : UCFE_OFF,
    40            UCOE        : UCOE_OFF,
    41            UCPE        : UCPE_OFF,
    42            UCBRK       : UCBRK_OFF,
    43            UCRXERR     : UCRXERR_OFF,
    44            UCADDR      : UCADDR_OFF,
    45            UCIDLE      : UCIDLE_OFF,
    46            UCBUSY      : UCBUSY,
    47        };
    48
    49        /*! IrDA Transmit Control Register */
    50        config UCxIRTCTL_t UCA1IRTCTL = {
    51            UCIRTXPL5   : UCIRTXPL5_OFF,
    52            UCIRTXPL4   : UCIRTXPL4_OFF,
    53            UCIRTXPL3   : UCIRTXPL3_OFF,
    54            UCIRTXPL2   : UCIRTXPL2_OFF,
    55            UCIRTXPL1   : UCIRTXPL1_OFF,
    56            UCIRTXPL0   : UCIRTXPL0_OFF,
    57            UCIRTXCLK   : UCIRTXCLK_OFF,
    58            UCIREN      : UCIREN_OFF,
    59        };
    60
    61        /*! IrDA Receive Control Register */
    62        config UCxIRRCTL_t UCA1IRRCTL = {
    63            UCIRRXFL5   : UCIRRXFL5_OFF,
    64            UCIRRXFL4   : UCIRRXFL4_OFF,
    65            UCIRRXFL3   : UCIRRXFL3_OFF,
    66            UCIRRXFL2   : UCIRRXFL2_OFF,
    67            UCIRRXFL1   : UCIRRXFL1_OFF,
    68            UCIRRXFL0   : UCIRRXFL0_OFF,
    69            UCIRRXPL    : UCIRRXPL_OFF,
    70            UCIRRXFE    : UCIRRXFE_OFF,
    71        };
    72
    73            /*! Auto Baud Rate Control Register */
    74        config UCxABCTL_t UCA1ABCTL = {
    75            UCDELIM1    : UCDELIM1_OFF,
    76            UCDELIM0    : UCDELIM0_OFF,
    77            UCSTOE      : UCSTOE_OFF,
    78            UCBTOE      : UCBTOE_OFF,
    79            UCABDEN     : UCABDEN_OFF,
    80        };
    81
    82        /*! Receive Buffer Register */
    83        config unsigned char UCA1RXBUF = 0;
    84
    85        /*! Transmit Buffer Register */
    86        config unsigned char UCA1TXBUF = 0;
    87
    88        /*! Baud rate control register 0 */
    89        config unsigned char UCA1BR0 = 0;
    90
    91        /*! Baud rate control register 1 */
    92        config unsigned char UCA1BR1 = 0;
    93    }


interface ti.catalog.msp430.peripherals.communication.IUSCI_B0_I2C

     1    /*!
     2     * Universal Serial Communication Interface B0 I2C 2xx
     3     */
     4    metaonly interface IUSCI_B0_I2C inherits IUSCI_I2C {
     5
     6    instance:
     7            /*! Control Register 0 */
     8        config UCxCTL0_t UCB0CTL0 = {
     9            UCA10       : UCA10_OFF,
    10            UCSLA10     : UCSLA10_OFF,
    11            UCMM        : UCMM_OFF,
    12            UCMST       : UCMST_OFF,
    13            UCMODE      : UCMODE_0,
    14            UCSYNC      : UCSYNC,
    15        };
    16
    17            /*! Control Register 1 */
    18        config UCxCTL1_t UCB0CTL1 = {
    19            UCSSEL      : UCSSEL_0,
    20            UCTR        : UCTR_OFF,
    21            UCTXNACK    : UCTXNACK_OFF,
    22            UCTXSTP     : UCTXSTP_OFF,
    23            UCTXSTT     : UCTXSTT_OFF,
    24            UCSWRST     : UCSWRST,
    25        };
    26
    27            /*! Status Register */
    28        config UCxSTAT_t UCB0STAT = {
    29            UCSCLLOW    : UCSCLLOW,
    30            UCGC        : UCGC,
    31            UCBBUSY     : UCBBUSY,
    32            UCNACKIFG   : UCNACKIFG,
    33            UCSTPIFG    : UCSTPIFG,
    34            UCSTTIFG    : UCSTTIFG,
    35            UCALIFG     : UCALIFG,
    36        };
    37
    38            /*! I2C Own Address Register */
    39        config UCBxI2COA_t UCB0I2COA = {
    40            UCGCEN      : UCGCEN_OFF,
    41            I2COA       : 0,
    42        };
    43
    44        /*! I2C Slave Address Register */
    45        config UChar UCB0I2CSA = 0;
    46
    47        /*! Receive Buffer Register */
    48        config UChar UCB0RXBUF = 0;
    49
    50            /*! Transmit Buffer Register */
    51        config UChar UCB0TXBUF = 0;
    52
    53        /*! Bit Rate Control Register 0 */
    54        config UChar UCB0BR0 = 0;
    55
    56        /*! Bit Rate Control Register 1 */
    57        config UChar UCB0BR1 = 0;
    58    }


interface ti.catalog.msp430.peripherals.communication.IUSCI_B0_SPI

     1    /*!
     2     * Universal Serial Communication Interface B0 SPI 2xx
     3     */
     4    metaonly interface IUSCI_B0_SPI inherits IUSCI_SPI {
     5
     6    instance:
     7        /*! Control Register 0 */
     8        config UCxCTL0_t UCB0CTL0 = {
     9            UCCKPH      : UCCKPH_OFF,
    10            UCCKPL      : UCCKPL_OFF,
    11            UCMSB       : UCMSB_OFF,
    12            UC7BIT      : UC7BIT_OFF,
    13            UCMST       : UCMST_OFF,
    14            UCMODE      : UCMODE_0,
    15            UCSYNC      : UCSYNC,
    16        };
    17
    18        /*! Control Register 1 */
    19        config UCxCTL1_t UCB0CTL1 = {
    20            UCSSEL      : UCSSEL_0,
    21            UCSWRST     : UCSWRST,
    22        };
    23
    24        /*! Status Register */
    25        config UCxSTAT_t UCB0STAT = {
    26            UCLISTEN    : UCLISTEN_OFF,
    27            UCFE        : UCFE_OFF,
    28            UCOE        : UCOE_OFF,
    29            UCBUSY      : UCBUSY,
    30        };
    31
    32        /*! Bit Rate Control Register 0 */
    33        config unsigned char UCB0BR0 = 0;
    34
    35        /*! Bit Rate Control Register 1 */
    36        config unsigned char UCB0BR1 = 0;
    37
    38        /*! Receive Buffer Register */
    39        config unsigned char UCB0RXBUF = 0;
    40
    41        /*! Transmit Buffer Register */
    42        config unsigned char UCB0TXBUF = 0;
    43    }


interface ti.catalog.msp430.peripherals.communication.IUSCI_I2C

     1    /*!
     2     * Universal Serial Communication Interface
     3     */
     4    metaonly interface IUSCI_I2C inherits IUSCI {
     5
     6        //*****************************************************************
     7        //* REGISTER BIT DEFINITIONS                                      *
     8        //*****************************************************************
     9
    10        /*! Own addressing mode select */
    11        enum UCA10_t {
    12            UCA10_OFF = 0x00,       /*! Own address is a 7-bit address */
    13            UCA10 = 0x80            /*! Own address is a 10-bit address */
    14        };
    15
    16        /*! Slave addressing mode select */
    17        enum UCSLA10_t {
    18            UCSLA10_OFF = 0x00,     /*! Address slave with 7-bit address */
    19            UCSLA10 = 0x40          /*! Address slave with 10-bit address */
    20        };
    21
    22        /*! Multi-master environment select */
    23        enum UCMM_t {
    24            UCMM_OFF = 0x00,        /*! Single master environment. There is no other master in the system. The address compare unit is disabled. */
    25            UCMM = 0x20             /*! Multi master environment */
    26        };
    27
    28        /*! Master mode select */
    29        enum UCMST_t {
    30            UCMST_OFF = 0x00,       /*! Slave mode */
    31            UCMST = 0x40            /*! Master mode */
    32        };
    33
    34        /*! USCI clock source select. These bits select the BRCLK source clock. */
    35        enum UCSSEL_I2C_t {
    36            UCSSEL_0 = 0x00,        /*! UCLK */
    37            UCSSEL_1 = 0x01,        /*! ACLK */
    38            UCSSEL_2 = 0x02         /*! SMCLK */
    39    /*      UCSSEL_3 = 0x04         /*! SMCLK */
    40        };
    41
    42        /*! Transmitter/Receiver */
    43        enum UCTR_t {
    44            UCTR_OFF = 0x00,        /*! Receiver */
    45            UCTR = 0x10             /*! Transmitter */
    46        };
    47
    48        /*! Transmit a NACK */
    49        enum UCTXNACK_t {
    50            UCTXNACK_OFF = 0x00,    /*! Acknowledge normally */
    51            UCTXNACK = 0x08         /*! Generate NACK */
    52        };
    53
    54        /*! Transmit STOP condition in master mode */
    55        enum UCTXSTP_t {
    56            UCTXSTP_OFF = 0x00,     /*! No STOP generated */
    57            UCTXSTP = 0x10          /*! Generate STOP */
    58        };
    59
    60        /*! Transmit START condition in master mode */
    61        enum UCTXSTT_t {
    62            UCTXSTT_OFF = 0x00,     /*! Do not generate START condition */
    63            UCTXSTT = 0x10          /*! Generate START condition */
    64        };
    65
    66        /*! SCL low */
    67        enum UCSCLLOW_t {
    68            UCSCLLOW_OFF = 0x00,    /*! SCL is not held low */
    69            UCSCLLOW = 0x10         /*! SCL is held low */
    70        };
    71
    72        /*! General call address received */
    73        enum UCGC_t {
    74            UCGC_OFF = 0x00,        /*! No general call address received */
    75            UCGC = 0x10             /*! General call address received */
    76        };
    77
    78        /*! Bus busy */
    79        enum UCBBUSY_t {
    80            UCBBUSY_OFF = 0x00,        /*! Bus inactive */
    81            UCBBUSY = 0x10             /*! Bus busy */
    82        };
    83
    84        /*! Not-acknowledge received interrupt flag */
    85        enum UCNACKIFG_t {
    86            UCNACKIFG_OFF = 0x00,        /*! No interrupt pending */
    87            UCNACKIFG = 0x10             /*! Interrupt pending */
    88        };
    89
    90        /*! Stop condition interrupt flag */
    91        enum UCSTPIFG_t {
    92            UCSTPIFG_OFF = 0x00,        /*! No interrupt pending */
    93            UCSTPIFG = 0x10             /*! Interrupt pending */
    94        };
    95
    96        /*! Start condition interrupt flag */
    97        enum UCSTTIFG_t {
    98            UCSTTIFG_OFF = 0x00,        /*! No interrupt pending */
    99            UCSTTIFG = 0x10             /*! Interrupt pending */
   100        };
   101
   102        /*! Arbitration lost interrupt flag */
   103        enum UCALIFG_t {
   104            UCALIFG_OFF = 0x00,        /*! No interrupt pending */
   105            UCALIFG = 0x10             /*! Interrupt pending */
   106        };
   107
   108        /*! General call response enable */
   109        enum UCGCEN_t {
   110            UCGCEN_OFF = 0x00,      /*! Do not respond to a general call */
   111            UCGCEN = 0x80           /*! Respond to a general call */
   112        };
   113
   114        struct UCxCTL0_t {
   115            UCA10_t     UCA10;      /*! Own addressing mode select
   116                                     *  0  Own address is a 7-bit address
   117                                     *  1  Own address is a 10-bit address */
   118            UCSLA10_t   UCSLA10;    /*! Slave addressing mode select
   119                                     *  0  Address slave with 7-bit address
   120                                     *  1  Address slave with 10-bit address */
   121            UCMM_t      UCMM;       /*! Multi-master environment select
   122                                     *  0  Single master environment. There is no other master in the system.
   123                                     *     The address compare unit is disabled.
   124                                     *  1  Multi master environment */
   125            UCMST_t     UCMST;      /*! Master mode select. When a master looses arbitration in a multi-master
   126                                     *environment (UCMM = 1) the UCMST bit is automatically cleared and the
   127                                     *module acts as slave.
   128                                     *  0  Slave mode
   129                                     *  1  Master mode */
   130            UCMODE_SYNC_t UCMODE;   /*! USCI Mode. The UCMODEx bits select the synchronous mode when
   131                                     *UCSYNC = 1.
   132                                     *  00  3-pin SPI
   133                                     *  01  4-pin SPI (master/slave enabled if STE = 1)
   134                                     *  10  4-pin SPI (master/slave enabled if STE = 0)
   135                                     *  11  I2C mode */
   136            UCSYNC_t    UCSYNC;     /*! Synchronous mode enable
   137                                     *  0  Asynchronous mode
   138                                     *  1  Synchronous mode */
   139        }
   140
   141        struct UCxCTL1_t {
   142            UCSSEL_I2C_t UCSSEL;    /*! USCI clock source select. These bits select the BRCLK source clock.
   143                                     *  00  UCLKI
   144                                     *  01  ACLK
   145                                     *  10  SMCLK
   146                                     *  11  SMCLK */
   147            UCTR_t      UCTR;       /*! Transmitter/Receiver
   148                                     *  0  Receiver
   149                                     *  1  Transmitter */
   150            UCTXNACK_t  UCTXNACK;   /*! Transmit a NACK. UCTXNACK is automatically cleared after a NACK is
   151                                     *transmitted.
   152                                     *  0  Acknowledge normally
   153                                     *  1  Generate NACK */
   154            UCTXSTP_t   UCTXSTP;    /*! Transmit STOP condition in master mode. Ignored in slave mode. In
   155                                     *master receiver mode the STOP condition is preceded by a NACK.
   156                                     *UCTXSTP is automatically cleared after STOP is generated.
   157                                     *  0  No STOP generated
   158                                     *  1  Generate STOP */
   159            UCTXSTT_t   UCTXSTT;    /*! Transmit START condition in master mode. Ignored in slave mode. In
   160                                     *master receiver mode a repeated START condition is preceded by a
   161                                     *NACK. UCTXSTT is automatically cleared after START condition and
   162                                     *address information is transmitted.
   163                                     *Ignored in slave mode.
   164                                     *  0  Do not generate START condition
   165                                     *  1  Generate START condition */
   166            UCSWRST_t   UCSWRST;    /*! Software reset enable
   167                                     *  0  Disabled. USCI reset released for operation.
   168                                     *  1  Enabled. USCI logic held in reset state. */
   169        }
   170
   171        struct UCxSTAT_t {
   172            UCSCLLOW_t  UCSCLLOW;   /*! SCL low
   173                                     *  0  SCL is not held low
   174                                     *  1  SCL is held low */
   175            UCGC_t      UCGC;       /*! General call address received. UCGC is automatically cleared when a
   176                                     *START condition is received.
   177                                     *  0  No general call address received
   178                                     *  1  General call address received */
   179            UCBBUSY_t   UCBBUSY;    /*! Bus busy
   180                                     *  0  Bus inactive
   181                                     *  1  Bus busy */
   182            UCNACKIFG_t UCNACKIFG;  /*! Not-acknowledge received interrupt flag. UCNACKIFG is automatically
   183                                     *cleared when a START condition is received.
   184                                     *  0  No interrupt pending
   185                                     *  1  Interrupt pending */
   186            UCSTPIFG_t  UCSTPIFG;   /*!  Stop condition interrupt flag. UCSTPIFG is automatically cleared when a
   187                                     *START condition is received.
   188                                     *  0  No interrupt pending
   189                                     *  1  Interrupt pending */
   190            UCSTTIFG_t  UCSTTIFG;   /*! Start condition interrupt flag. UCSTTIFG is automatically cleared if a STOP
   191                                     *condition is received.
   192                                     *  0  No interrupt pending
   193                                     *  1  Interrupt pending */
   194            UCALIFG_t   UCALIFG;    /*! Arbitration lost interrupt flag
   195                                     *  0  No interrupt pending
   196                                     *  1  Interrupt pending */
   197        }
   198
   199        struct UCBxI2COA_t {
   200            UCGCEN_t    UCGCEN;     /*! General call response enable
   201                                     *  0  Do not respond to a general call
   202                                     *  1  Respond to a general call */
   203                    UChar       I2COA;      /*! I2C own address. The I2COAx bits contain the local address of the USCI_Bx
   204                                     *I2C controller. The address is right-justified. In 7-bit addressing mode Bit 6 is
   205                                     *the MSB, Bits 9-7 are ignored. In 10-bit addressing mode Bit 9 is the MSB. */
   206        }
   207    }


interface ti.catalog.msp430.peripherals.communication.IUSCI_SPI

     1    /*!
     2     * Universal Serial Communication Interface
     3     */
     4    metaonly interface IUSCI_SPI inherits IUSCI {
     5
     6        //*****************************************************************
     7        //* REGISTER BIT DEFINITIONS                                      *
     8        //*****************************************************************
     9
    10        /*! Clock phase select. */
    11        enum UCCKPH_t {
    12            UCCKPH_OFF = 0x00,      /*! Data is changed on the first UCLK edge and captured on the following edge. */
    13            UCCKPH = 0x80           /*! Data is captured on the first UCLK edge and changed on the following edge. */
    14        };
    15
    16        /*! Clock polarity select. */
    17        enum UCCKPL_t {
    18            UCCKPL_OFF = 0x00,      /*! Inactive state is low */
    19            UCCKPL = 0x40           /*! Inactive state is high */
    20        };
    21
    22        /*! Master mode select */
    23        enum UCMST_t {
    24            UCMST_OFF = 0x00,      /*! Slave mode */
    25            UCMST = 0x40           /*! Master mode */
    26        };
    27
    28        /*! USCI clock source select. These bits select the BRCLK source clock. */
    29        enum UCSSEL_SPI_t {
    30            UCSSEL_0 = 0x00,     /*! NA */
    31            UCSSEL_1 = 0x01,     /*! ACLK */
    32            UCSSEL_2 = 0x02      /*! SMCLK */
    33    /*        UCSSEL_3 = 0x04      /*! SMCLK */
    34        };
    35
    36        struct UCxCTL0_t {
    37            UCCKPH_t    UCCKPH;     /*! Clock phase select.
    38                                     *  0  Data is changed on the first UCLK edge and captured on the
    39                                     *     following edge.
    40                                     *  1  Data is captured on the first UCLK edge and changed on the
    41                                     *     following edge. */
    42            UCCKPL_t    UCCKPL;     /*! Clock polarity select
    43                                     *  0  The inactive state is low
    44                                     *  1  The inactive state is high */
    45            UCMSB_t     UCMSB;      /*! MSB first select. Controls the direction of the receive and transmit shift
    46                                     *register.
    47                                     *  0  LSB first
    48                                     *  1  MSB first */
    49            UC7BIT_t    UC7BIT;     /*! Character length. Selects 7-bit or 8-bit character length.
    50                                     *  0  8-bit data
    51                                     *  1  7-bit data */
    52            UCMST_t     UCMST;      /*! Master mode select
    53                                     *  0  Slave mode
    54                                     *  1  Master mode */
    55            UCMODE_SYNC_t UCMODE;   /*! USCI mode. The UCMODEx bits select the synchronous mode when
    56                                     *UCSYNC = 1.
    57                                     *  00  3-Pin SPI
    58                                     *  01  4-Pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1
    59                                     *  10  4-Pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0
    60                                     *  11  I2C Mode */
    61            UCSYNC_t    UCSYNC;     /*! Synchronous mode enable
    62                                     *  0  Asynchronous mode
    63                                     *  1  Synchronous Mode */
    64        }
    65
    66        struct UCxCTL1_t {
    67            UCSSEL_SPI_t UCSSEL;    /*! USCI clock source select. These bits select the BRCLK source clock in
    68                                     *master mode. UCxCLK is always used in slave mode.
    69                                     *  00  NA
    70                                     *  01  ACLK
    71                                     *  10  SMCLK
    72                                     *  11  SMCLK */
    73                    UCSWRST_t       UCSWRST;    /*! Software reset enable
    74                                     *  0  Disabled. USCI reset released for operation.
    75                                     *  1  Enabled. USCI logic held in reset state. */
    76        }
    77
    78        struct UCxSTAT_t {
    79            UCLISTEN_t  UCLISTEN;   /*! Listen enable. The UCLISTEN bit selects loopback mode.
    80                                     *  0  Disabled
    81                                     *  1  Enabled. UCAxTXD is internally fed back to the receiver. */
    82            UCFE_t      UCFE;       /*! Framing error flag. This bit indicates a bus conflict in 4-wire master mode.
    83                                     *UCFE is not used in 3-wire master or any slave mode.
    84                                     *  0  No error
    85                                     *  1  Bus conflict occurred */
    86            UCOE_t      UCOE;       /*! Overrun error flag. This bit is set when a character is transferred into
    87                                     *UCAxRXBUF before the previous character was read. UCOE is cleared
    88                                     *automatically when UCxRXBUF is read, and must not be cleared by
    89                                     *software. Otherwise, it will not function correctly.
    90                                     *  0  No error
    91                                     *  1  Overrun error occurred */
    92            UCBUSY_t    UCBUSY;     /*! USCI busy. This bit indicates if a transmit or receive operation is in
    93                                     *progress.
    94                                     *  0  USCI inactive
    95                                     *  1  USCI transmitting or receiving */
    96        }
    97    }


interface ti.catalog.msp430.peripherals.communication.IUSCI_UART

     1    /*!
     2     * Universal Serial Communication Interface
     3     */
     4    metaonly interface IUSCI_UART inherits IUSCI {
     5
     6        //*****************************************************************
     7        //* REGISTER BIT DEFINITIONS                                      *
     8        //*****************************************************************
     9
    10        /*! Parity enable */
    11        enum UCPEN_t {
    12            UCPEN_OFF = 0x00,       /*! Parity Disabled */
    13            UCPEN = 0x02            /*! Parity Enabled */
    14        };
    15
    16        /*! Parity select. UCPAR is not used when parity is disabled. */
    17        enum UCPAR_t {
    18            UCPAR_OFF = 0x00,       /*! Odd parity */
    19            UCPAR = 0x02            /*! Even parity */
    20        };
    21
    22        /*! Stop bit select. Number of stop bits. */
    23        enum UCSPB_t {
    24            UCSPB_OFF = 0x00,       /*! One stop bit */
    25            UCSPB = 0x02            /*! Two stop bits */
    26        };
    27
    28        /*! First modulation stage select */
    29        enum UCBRF_t {
    30            UCBRF_0 = 0x00,         /*! First stage 0 */
    31            UCBRF_1 = 0x10,         /*! First stage 1 */
    32            UCBRF_2 = 0x20,         /*! First stage 2 */
    33            UCBRF_3 = 0x30,         /*! First stage 3 */
    34            UCBRF_4 = 0x40,         /*! First stage 4 */
    35            UCBRF_5 = 0x50,         /*! First stage 5 */
    36            UCBRF_6 = 0x60,         /*! First stage 6 */
    37            UCBRF_7 = 0x70,         /*! First stage 7 */
    38            UCBRF_8 = 0x80,         /*! First stage 8 */
    39            UCBRF_9 = 0x90,         /*! First stage 9 */
    40            UCBRF_10 = 0xA0,        /*! First stage 10 */
    41            UCBRF_11 = 0xB0,        /*! First stage 11 */
    42            UCBRF_12 = 0xC0,        /*! First stage 12 */
    43            UCBRF_13 = 0xD0,        /*! First stage 13 */
    44            UCBRF_14 = 0xE0,        /*! First stage 14 */
    45            UCBRF_15 = 0xF0         /*! First stage 15 */
    46        };
    47
    48        /*! Second modulation stage select */
    49        enum UCBRS_t {
    50            UCBRS_0 = 0x00,         /*! Second stage 0 */
    51            UCBRS_1 = 0x02,         /*! Second stage 1 */
    52            UCBRS_2 = 0x04,         /*! Second stage 2 */
    53            UCBRS_3 = 0x06,         /*! Second stage 3 */
    54            UCBRS_4 = 0x08,         /*! Second stage 4 */
    55            UCBRS_5 = 0x0A,         /*! Second stage 5 */
    56            UCBRS_6 = 0x0C,         /*! Second stage 6 */
    57            UCBRS_7 = 0x0E          /*! Second stage 7 */
    58        };
    59
    60        /*! Oversampling mode enabled */
    61        enum UCOS16_t {
    62            UCOS16_OFF = 0x00,      /*! Disabled. */
    63            UCOS16 = 0x02           /*! Enabled. */
    64        };
    65
    66
    67            /*! IRDA Transmit Pulse Length Bit 5 */
    68        enum UCIRTXPL5_t {
    69            UCIRTXPL5_OFF = 0x00,   /*! Bit 5 OFF */
    70            UCIRTXPL5 = 0x80        /*! Bit 5 ON */
    71        };
    72
    73        /*! IRDA Transmit Pulse Length Bit 4 */
    74        enum UCIRTXPL4_t {
    75            UCIRTXPL4_OFF = 0x00,   /*! Bit 4 OFF */
    76            UCIRTXPL4 = 0x40        /*! Bit 4 ON */
    77        };
    78
    79        /*! IRDA Transmit Pulse Length Bit 3 */
    80        enum UCIRTXPL3_t {
    81            UCIRTXPL3_OFF = 0x00,   /*! Bit 3 OFF */
    82            UCIRTXPL3 = 0x20        /*! Bit 3 ON */
    83        };
    84
    85        /*! IRDA Transmit Pulse Length Bit 2 */
    86        enum UCIRTXPL2_t {
    87            UCIRTXPL2_OFF = 0x00,   /*! Bit 2 OFF */
    88            UCIRTXPL2 = 0x10        /*! Bit 2 ON */
    89        };
    90
    91        /*! IRDA Transmit Pulse Length Bit 1 */
    92        enum UCIRTXPL1_t {
    93            UCIRTXPL1_OFF = 0x00,   /*! Bit 1 OFF */
    94            UCIRTXPL1 = 0x08        /*! Bit 1 ON */
    95        };
    96
    97        /*! IRDA Transmit Pulse Length Bit 0 */
    98        enum UCIRTXPL0_t {
    99            UCIRTXPL0_OFF = 0x00,   /*! Bit 0 OFF */
   100            UCIRTXPL0 = 0x04        /*! Bit 0 ON */
   101        };
   102
   103        /*! IrDA transmit pulse clock select. */
   104        enum UCIRTXCLK_t {
   105            UCIRTXCLK_OFF = 0x00,   /*! BRCLK. */
   106            UCIRTXCLK = 0x02        /*! BITCLK16 when UCOS16 = 1. Otherwise, BRCLK. */
   107        };
   108
   109        /*! IrDA encoder/decoder enable. */
   110        enum UCIREN_t {
   111            UCIREN_OFF = 0x00,      /*! IrDA encoder/decoder disabled. */
   112            UCIREN = 0x02           /*! IrDA encoder/decoder enabled. */
   113        };
   114
   115        /*! IRDA Receive Filter Length Bit 5 */
   116        enum UCIRRXFL5_t {
   117            UCIRRXFL5_OFF = 0x00,   /*! Bit 5 OFF */
   118            UCIRRXFL5 = 0x80        /*! Bit 5 ON */
   119        };
   120
   121        /*! IRDA Receive Filter Length Bit 4 */
   122        enum UCIRRXFL4_t {
   123            UCIRRXFL4_OFF = 0x00,   /*! Bit 4 OFF */
   124            UCIRRXFL4 = 0x40        /*! Bit 4 ON */
   125        };
   126
   127        /*! IRDA Receive Filter Length Bit 3 */
   128        enum UCIRRXFL3_t {
   129            UCIRRXFL3_OFF = 0x00,   /*! Bit 3 OFF */
   130            UCIRRXFL3 = 0x20        /*! Bit 3 ON */
   131        };
   132
   133        /*! IRDA Receive Filter Length Bit 2 */
   134        enum UCIRRXFL2_t {
   135            UCIRRXFL2_OFF = 0x00,   /*! Bit 2 OFF */
   136            UCIRRXFL2 = 0x10        /*! Bit 2 ON */
   137        };
   138
   139        /*! IRDA Receive Filter Length Bit 1 */
   140        enum UCIRRXFL1_t {
   141            UCIRRXFL1_OFF = 0x00,   /*! Bit 1 OFF */
   142            UCIRRXFL1 = 0x08        /*! Bit 1 ON */
   143        };
   144
   145        /*! IRDA Receive Filter Length Bit 0 */
   146        enum UCIRRXFL0_t {
   147            UCIRRXFL0_OFF = 0x00,   /*! Bit 0 OFF */
   148            UCIRRXFL0 = 0x04        /*! Bit 0 ON */
   149        };
   150
   151        /*! IrDA receive input UCAxRXD polarity. */
   152        enum UCIRRXPL_t {
   153            UCIRRXPL_OFF = 0x00,    /*! IrDA transceiver delivers a high pulse when a light pulse is seen. */
   154            UCIRRXPL = 0x02         /*! IrDA transceiver delivers a low pulse when a light pulse is seen. */
   155        };
   156
   157        /*! IrDA receive filter enabled. */
   158        enum UCIRRXFE_t {
   159            UCIRRXFE_OFF = 0x00,    /*! Receive filter disabled. */
   160            UCIRRXFE = 0x02         /*! Receive filter enabled. */
   161        };
   162
   163        /*! Break/synch delimiter length bit 0 */
   164        enum UCDELIM0_t {
   165            UCDELIM0_OFF = 0x00,    /*! Break Sync Delimiter bit 0 Off */
   166            UCDELIM0 = 0x02         /*! Break Sync Delimiter bit 0 On */
   167        };
   168
   169        /*! Break/synch delimiter length bit 1 */
   170        enum UCDELIM1_t {
   171            UCDELIM1_OFF = 0x00,    /*! Break Sync Delimiter bit 1 Off */
   172            UCDELIM1 = 0x02         /*! Break Sync Delimiter bit 1 On */
   173        };
   174
   175        /*! Synch field time out error. */
   176        enum UCSTOE_t {
   177            UCSTOE_OFF = 0x00,      /*! No error. */
   178            UCSTOE = 0x02           /*! Length of synch field exceeded measurable time. */
   179        };
   180
   181        /*! Break time out error. */
   182        enum UCBTOE_t {
   183            UCBTOE_OFF = 0x00,      /*! No error. */
   184            UCBTOE = 0x02           /*! Length of break field exceeded 22 bit times. */
   185        };
   186
   187        /*! Automatic baud rate detect enable. */
   188        enum UCABDEN_t {
   189            UCABDEN_OFF = 0x00,     /*! Baud rate detection disabled. Length of break and synch field is not
   190                                     * measured. */
   191            UCABDEN = 0x02          /*! Baud rate detection enabled. Length of break and synch field is
   192                                     * measured and baud rate settings are changed accordingly. */
   193        };
   194
   195        /*! USCI mode. The UCMODEx bits select the asynchronous mode when UCSYNC = 0. */
   196        enum UCMODE_ASYNC_t {
   197            UCMODE_0 = 0x00,        /*! UART Mode. */
   198            UCMODE_1 = 0x01,        /*! Idle-Line Multiprocessor Mode. */
   199            UCMODE_2 = 0x02,        /*! Address-Bit Multiprocessor Mode. */
   200            UCMODE_3 = 0x04         /*! UART Mode with automatic baud rate detection. */
   201        };
   202
   203        /*! USCI clock source select. These bits select the BRCLK source clock. */
   204        enum UCSSEL_UART_t {
   205            UCSSEL_0 = 0x00,        /*! UCLK */
   206            UCSSEL_1 = 0x01,        /*! ACLK */
   207            UCSSEL_2 = 0x02         /*! SMCLK */
   208    /*        UCSSEL_3 = 0x04         /*! SMCLK */
   209        };
   210
   211        struct UCxCTL0_t {
   212            UCPEN_t     UCPEN;      /*! Parity enable
   213                                     *  0  Parity disabled.
   214                                     *  1  Parity enabled. Parity bit is generated (UCAxTXD) and expected
   215                                     *     (UCAxRXD). In address-bit multiprocessor mode, the address bit is
   216                                     *     included in the parity calculation. */
   217            UCPAR_t     UCPAR;      /*! Parity select. UCPAR is not used when parity is disabled.
   218                                     *  0  Odd parity
   219                                     *  1  Even parity */
   220            UCMSB_t     UCMSB;      /*! MSB first select. Controls the direction of the receive and transmit shift
   221                                     *register.
   222                                     *  0  LSB first
   223                                     *  1  MSB first */
   224            UC7BIT_t    UC7BIT;     /*! Character length. Selects 7-bit or 8-bit character length.
   225                                     *  0  8-bit data
   226                                     *  1  7-bit data */
   227            UCSPB_t     UCSPB;      /*! Stop bit select. Number of stop bits.
   228                                     *  0  One stop bit
   229                                     *  1  Two stop bits */
   230            UCMODE_ASYNC_t UCMODE;  /*! USCI mode. The UCMODEx bits select the asynchronous mode when
   231                                     *UCSYNC = 0.
   232                                     *  00  UART Mode.
   233                                     *  01  Idle-Line Multiprocessor Mode.
   234                                     *  10  Address-Bit Multiprocessor Mode.
   235                                     *  11  UART Mode with automatic baud rate detection. */
   236            UCSYNC_t    UCSYNC;     /*!Synchronous mode enable
   237                                     *  0  Asynchronous mode
   238                                     *  1  Synchronous Mode */
   239        }
   240
   241        struct UCxCTL1_t {
   242            UCSSEL_UART_t UCSSEL;   /*! USCI clock source select. These bits select the BRCLK source clock.
   243                                     *  00  UCLK
   244                                     *  01  ACLK
   245                                     *  10  SMCLK
   246                                     *  11  SMCLK */
   247            UCRXEIE_t   UCRXEIE;    /*! Receive erroneous-character interrupt-enable
   248                                     *  0  Erroneous characters rejected and UCAxRXIFG is not set
   249                                     *  1  Erroneous characters received will set UCAxRXIFG */
   250            UCBRKIE_t   UCBRKIE;    /*! Receive break character interrupt-enable
   251                                     *  0  Received break characters do not set UCAxRXIFG.
   252                                     *  1  Received break characters set UCAxRXIFG. */
   253            UCDORM_t    UCDORM;     /*! Dormant. Puts USCI into sleep mode.
   254                                     *  0  Not dormant. All received characters will set UCAxRXIFG.
   255                                     *  1  Dormant. Only characters that are preceded by an idle-line or with
   256                                     *     address bit set will set UCAxRXIFG. In UART mode with automatic baud
   257                                     *     rate detection only the combination of a break and synch field will set
   258                                     *     UCAxRXIFG. */
   259            UCTXADDR_t  UCTXADDR;   /*! Transmit address. Next frame to be transmitted will be marked as address
   260                                     *depending on the selected multiprocessor mode.
   261                                     *  0  Next frame transmitted is data
   262                                     *  1  Next frame transmitted is an address */
   263            UCTXBRK_t   UCTXBRK;    /*! Transmit break. Transmits a break with the next write to the transmit buffer.
   264                                     *In UART mode with automatic baud rate detection 055h must be written
   265                                     *into UCAxTXBUF to generate the required break/synch fields. Otherwise
   266                                     *0h must be written into the transmit buffer.
   267                                     *   0  Next frame transmitted is not a break
   268                                     *   1  Next frame transmitted is a break or a break/synch */
   269            UCSWRST_t   UCSWRST;    /*! Software reset enable
   270                                     *   0  Disabled. USCI reset released for operation.
   271                                     *   1  Enabled. USCI logic held in reset state. */
   272        }
   273
   274        struct UCxMCTL_t {
   275            UCBRF_t     UCBRF;      /*! First modulation stage select. These bits determine the modulation pattern
   276                                     *for BITCLK16 when UCOS16 = 1. Ignored with UCOS16 = 0. */
   277            UCBRS_t     UCBRS;      /*! Second modulation stage select. These bits determine the modulation
   278                                     *pattern for BITCLK. */
   279            UCOS16_t    UCOS16;     /*! Oversampling mode enabled
   280                                     *  0  Disabled
   281                                     *  1  Enabled */
   282        }
   283
   284        struct UCxSTAT_t {
   285            UCLISTEN_t  UCLISTEN;   /*! Listen enable. The UCLISTEN bit selects loopback mode.
   286                                     *  0  Disabled
   287                                     *  1  Enabled. UCAxTXD is internally fed back to the receiver. */
   288            UCFE_t      UCFE;       /*! Framing error flag
   289                                     *  0  No error
   290                                     *  1  Character received with low stop bit */
   291            UCOE_t      UCOE;       /*! Overrun error flag. This bit is set when a character is transferred into
   292                                     *UCAxRXBUF before the previous character was read. UCOE is cleared
   293                                     *automatically when UCxRXBUF is read, and must not be cleared by
   294                                     *software. Otherwise, it will not function correctly.
   295                                     *  0  No error
   296                                     *  1  Overrun error occurred */
   297            UCPE_t      UCPE;       /*! Parity error flag. When UCPEN = 0, UCPE is read as 0.
   298                                     *  0  No error
   299                                     *  1  Character received with parity error */
   300            UCBRK_t     UCBRK;      /*! Break detect flag
   301                                     *  0  No break condition
   302                                     *  1  Break condition occurred */
   303            UCRXERR_t   UCRXERR;    /*! Receive error flag. This bit indicates a character was received with error(s).
   304                                     *When UCRXERR = 1, on or more error flags (UCFE, UCPE, UCOE) is also
   305                                     *set. UCRXERR is cleared when UCAxRXBUF is read.
   306                                     *  0  No receive errors detected
   307                                     *  1  Receive error detected */
   308            UCADDR_t    UCADDR;     /*! Address received in address-bit multiprocessor mode.
   309                                     *  0  Received character is data
   310                                     *  1  Received character is an address */
   311            UCIDLE_t    UCIDLE;     /*! Idle line detected in idle-line multiprocessor mode.
   312                                     *  0  No idle line detected
   313                                     *  1  Idle line detected */
   314            UCBUSY_t    UCBUSY;     /*! USCI busy. This bit indicates if a transmit or receive operation is in
   315                                     *progress.
   316                                     *  0  USCI inactive
   317                                     *  1  USCI transmitting or receiving */
   318        }
   319
   320        struct UCxIRTCTL_t {
   321            UCIRTXPL5_t  UCIRTXPL5; /*! IRDA Transmit Pulse Length Bit 5 */
   322            UCIRTXPL4_t  UCIRTXPL4; /*! IRDA Transmit Pulse Length Bit 4 */
   323            UCIRTXPL3_t  UCIRTXPL3; /*! IRDA Transmit Pulse Length Bit 3 */
   324            UCIRTXPL2_t  UCIRTXPL2; /*! IRDA Transmit Pulse Length Bit 2 */
   325            UCIRTXPL1_t  UCIRTXPL1; /*! IRDA Transmit Pulse Length Bit 1 */
   326            UCIRTXPL0_t  UCIRTXPL0; /*! IRDA Transmit Pulse Length Bit 0 */
   327            UCIRTXCLK_t  UCIRTXCLK; /*! IrDA transmit pulse clock select
   328                                     *  0  BRCLK
   329                                     *  1  BITCLK16 when UCOS16 = 1. Otherwise, BRCLK */
   330            UCIREN_t     UCIREN;    /*! IrDA encoder/decoder enable.
   331                                     *  0  IrDA encoder/decoder disabled
   332                                     *  1  IrDA encoder/decoder enabled */
   333        }
   334
   335        struct UCxIRRCTL_t {
   336            UCIRRXFL5_t  UCIRRXFL5; /*! IRDA Receive Filter Length Bit 5 */
   337            UCIRRXFL4_t  UCIRRXFL4; /*! IRDA Receive Filter Length Bit 4 */
   338            UCIRRXFL3_t  UCIRRXFL3; /*! IRDA Receive Filter Length Bit 3 */
   339            UCIRRXFL2_t  UCIRRXFL2; /*! IRDA Receive Filter Length Bit 2 */
   340            UCIRRXFL1_t  UCIRRXFL1; /*! IRDA Receive Filter Length Bit 1 */
   341            UCIRRXFL0_t  UCIRRXFL0; /*! IRDA Receive Filter Length Bit 0 */
   342            UCIRRXPL_t   UCIRRXPL;  /*! IrDA receive input UCAxRXD polarity
   343                                     *  0  IrDA transceiver delivers a high pulse when a light pulse is seen
   344                                     *  1  IrDA transceiver delivers a low pulse when a light pulse is seen */
   345            UCIRRXFE_t   UCIRRXFE;  /*! IrDA receive filter enabled
   346                                     *  0  Receive filter disabled
   347                                     *  1  Receive filter enabled */
   348        }
   349
   350        struct UCxABCTL_t {
   351            UCDELIM1_t   UCDELIM1;  /*! Break/synch delimiter length
   352                                     *  00  1 bit time
   353                                     *  01  2 bit times
   354                                     *  10  3 bit times
   355                                     *  11  4 bit times */
   356            UCDELIM0_t   UCDELIM0;  /*! Break/synch delimiter length
   357                                     *  00  1 bit time
   358                                     *  01  2 bit times
   359                                     *  10  3 bit times
   360                                     *  11  4 bit times */
   361            UCSTOE_t     UCSTOE;    /*! Synch field time out error
   362                                     *  0  No error
   363                                     *  1  Length of synch field exceeded measurable time */
   364            UCBTOE_t     UCBTOE;    /*! Break time out error
   365                                     *  0  No error
   366                                     *  1  Length of break field exceeded 22 bit times */
   367            UCABDEN_t    UCABDEN;   /*! Automatic baud rate detect enable
   368                                     *  0  Baud rate detection disabled. Length of break and synch field is not
   369                                     *     measured.
   370                                     *  1  Baud rate detection enabled. Length of break and synch field is
   371                                     *     measured and baud rate settings are changed accordingly. */
   372        }
   373    }


package ti.catalog.msp430.peripherals.communication

     1    requires ti.catalog.msp430.peripherals.clock;
     2    requires ti.catalog.msp430.peripherals.special_function;
     3
     4    package ti.catalog.msp430.peripherals.communication
     5    {
     6        interface IUSCI , IUSCI_I2C , IUSCI_SPI , IUSCI_UART;
     7        interface IUSCI_A0_UART , IUSCI_A0_SPI , IUSCI_A1_UART;
     8        interface IUSCI_B0_SPI , IUSCI_B0_I2C;
     9        module USCI_A0_UART_2xx;
    10        module USCI_A0_SPI_2xx;
    11        module USCI_B0_SPI_2xx;
    12        module USCI_B0_I2C_2xx;
    13        module USCI_A1_UART_2xx;
    14    }


module ti.catalog.msp430.peripherals.communication.USCI_A0_SPI_2xx

     1    import ti.catalog.msp430.peripherals.clock.IClock;
     2    import ti.catalog.msp430.peripherals.special_function.IE2;
     3
     4    /*!
     5     * Universal Serial Communication Interface A0 SPI 2xx
     6     */
     7    metaonly module USCI_A0_SPI_2xx inherits IUSCI_A0_SPI {
     8        /*
     9         *  ======== create ========
    10         */
    11        create(IClock.Instance clock , IE2.Instance interruptEnableRegister2);
    12
    13
    14
    15    instance:
    16        /*! @_nodoc */
    17        config IClock.Instance clock;
    18        /*! @_nodoc */
    19        config IE2.Instance interruptEnableRegister2;
    20
    21        /*! Determine if each Register needs to be forced set or not */
    22        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    23        [
    24            { register : "UCA0CTL0"   , regForceSet : false },
    25            { register : "UCA0CTL1"   , regForceSet : false },
    26            { register : "UCA0BR0"    , regForceSet : false },
    27            { register : "UCA0BR1"    , regForceSet : false },
    28            { register : "UCA0STAT"   , regForceSet : false },
    29            { register : "UCA0RXBUF"  , regForceSet : false },
    30            { register : "UCA0TXBUF"  , regForceSet : false }
    31        ];
    32    }


module ti.catalog.msp430.peripherals.communication.USCI_A0_UART_2xx

     1    import ti.catalog.msp430.peripherals.clock.IClock;
     2    import ti.catalog.msp430.peripherals.special_function.IE2;
     3
     4    /*!
     5     * Universal Serial Communication Interface A0 UART 2xx
     6     */
     7    metaonly module USCI_A0_UART_2xx inherits IUSCI_A0_UART {
     8        /* Add 2xx-specific stuff here */
     9
    10        /*
    11         *  ======== create ========
    12         */
    13        create(IClock.Instance clock , IE2.Instance interruptEnableRegister2);
    14
    15    instance:
    16        /*! @_nodoc */
    17        config IClock.Instance clock;
    18        /*! @_nodoc */
    19        config IE2.Instance interruptEnableRegister2;
    20
    21        /*! Determine if each Register needs to be forced set or not */
    22        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    23        [
    24            { register : "UCA0CTL0"   , regForceSet : false },
    25            { register : "UCA0CTL1"   , regForceSet : false },
    26            { register : "UCA0BR0"    , regForceSet : false },
    27            { register : "UCA0BR1"    , regForceSet : false },
    28            { register : "UCA0MCTL"   , regForceSet : false },
    29            { register : "UCA0STAT"   , regForceSet : false },
    30            { register : "UCA0RXBUF"  , regForceSet : false },
    31            { register : "UCA0TXBUF"  , regForceSet : false },
    32            { register : "UCA0ABCTL"  , regForceSet : false },
    33            { register : "UCA0IRTCTL" , regForceSet : false },
    34            { register : "UCA0IRRCTL" , regForceSet : false }
    35        ];
    36    }


module ti.catalog.msp430.peripherals.communication.USCI_A1_UART_2xx

     1    /*!
     2     * Universal Serial Communication Interface
     3     */
     4    metaonly module USCI_A1_UART_2xx inherits IUSCI_A0_UART {
     5
     6    instance:
     7            /*! Determine if each Register needs to be forced set or not */
     8            readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
     9            [
    10                    { register : "UCA1CTL0"   , regForceSet : false },
    11                    { register : "UCA1CTL1"   , regForceSet : false },
    12                    { register : "UCA1BR0"    , regForceSet : false },
    13                    { register : "UCA1BR1"    , regForceSet : false },
    14                    { register : "UCA1MCTL"   , regForceSet : false },
    15                    { register : "UCA1STAT"   , regForceSet : false },
    16                    { register : "UCA1RXBUF"  , regForceSet : false },
    17                    { register : "UCA1TXBUF"  , regForceSet : false },
    18                    { register : "UCA1ABCTL"  , regForceSet : false },
    19                    { register : "UCA1IRTCTL" , regForceSet : false },
    20                    { register : "UCA1IRRCTL" , regForceSet : false }
    21            ];
    22    }


module ti.catalog.msp430.peripherals.communication.USCI_B0_I2C_2xx

     1    import ti.catalog.msp430.peripherals.clock.IClock;
     2    import ti.catalog.msp430.peripherals.special_function.IE2;
     3
     4    /*!
     5     * Universal Serial Communication Interface B0 I2C 2xx
     6     */
     7    metaonly module USCI_B0_I2C_2xx inherits IUSCI_B0_I2C {
     8
     9        /*
    10         *  ======== create ========
    11         */
    12        create(IClock.Instance clock , IE2.Instance interruptEnableRegister2);
    13
    14        /*! Not-acknowledge interrupt enable */
    15        enum UCNACKIE_t {
    16            UCNACKIE_OFF = 0x00,    /*! Interrupt disabled */
    17            UCNACKIE = 0x80         /*! Interrupt enabled */
    18        };
    19
    20        /*! Stop condition interrupt enable */
    21        enum UCSTPIE_t {
    22            UCSTPIE_OFF = 0x00,     /*! Interrupt disabled */
    23            UCSTPIE = 0x80          /*! Interrupt enabled */
    24        };
    25
    26        /*! Start condition interrupt enable */
    27        enum UCSTTIE_t {
    28            UCSTTIE_OFF = 0x00,     /*! Interrupt disabled */
    29            UCSTTIE = 0x80          /*! Interrupt enabled */
    30        };
    31
    32        /*! Arbitration lost interrupt enable */
    33        enum UCALIE_t {
    34            UCALIE_OFF = 0x00,      /*! Interrupt disabled */
    35            UCALIE = 0x80           /*! Interrupt enabled */
    36        };
    37
    38        /*! USCI_Bx I2C Interrupt Enable Register */
    39        struct UCBxI2CIE_t {
    40            UCNACKIE_t  UCNACKIE;   /*! Not-acknowledge interrupt enable
    41                                     *  0  Interrupt disabled
    42                                     *  1  Interrupt enabled */
    43            UCSTPIE_t   UCSTPIE;    /*! Stop condition interrupt enable
    44                                     *  0  Interrupt disabled
    45                                     *  1  Interrupt enabled */
    46            UCSTTIE_t   UCSTTIE;    /*! Start condition interrupt enable
    47                                     *  0  Interrupt disabled
    48                                     *  1  Interrupt enabled */
    49            UCALIE_t    UCALIE;    /*! Arbitration lost interrupt enable
    50                                     *  0  Interrupt disabled
    51                                     *  1  Interrupt enabled */
    52        }
    53
    54    instance:
    55        /*! @_nodoc */
    56        config IClock.Instance clock;
    57        /*! @_nodoc */
    58        config IE2.Instance interruptEnableRegister2;
    59
    60        /*! USCI_Bx I2C Interrupt Enable Register */
    61        config UCBxI2CIE_t UCB0I2CIE = {
    62            UCNACKIE    : UCNACKIE_OFF,
    63            UCSTPIE     : UCSTPIE_OFF,
    64            UCSTTIE     : UCSTTIE_OFF,
    65            UCALIE      : UCALIE_OFF,
    66        };
    67
    68       /*!
    69        *  ======== setUCNACKIE ========
    70        *  Sets UCNACKIE bit
    71        *
    72        *  @see #setUCNACKIE
    73        */
    74        Bool setUCNACKIE(Bool set);
    75
    76       /*!
    77        *  ======== getUCNACKIE ========
    78        *  Gets UCNACKIE bit
    79        *
    80        *  @see #getUCNACKIE
    81        */
    82        Bool getUCNACKIE();
    83
    84       /*!
    85        *  ======== setUCSTPIE ========
    86        *  Sets UCSTPIE bit
    87        *
    88        *  @see #setUCSTPIE
    89        */
    90        Bool setUCSTPIE(Bool set);
    91
    92       /*!
    93        *  ======== getUCSTPIE ========
    94        *  Gets UCSTPIE bit
    95        *
    96        *  @see #getUCSTPIE
    97        */
    98        Bool getUCSTPIE();
    99
   100       /*!
   101        *  ======== setUCSTTIE ========
   102        *  Sets UCSTTIE bit
   103        *
   104        *  @see #setUCSTTIE
   105        */
   106        Bool setUCSTTIE(Bool set);
   107
   108       /*!
   109        *  ======== getUCSTTIE ========
   110        *  Gets UCSTTIE bit
   111        *
   112        *  @see #getUCSTTIE
   113        */
   114        Bool getUCSTTIE();
   115
   116       /*!
   117        *  ======== setUCALIE ========
   118        *  Sets UCALIE bit
   119        *
   120        *  @see #setUCALIE
   121        */
   122        Bool setUCALIE(Bool set);
   123
   124       /*!
   125        *  ======== getUCALIE ========
   126        *  Gets UCALIE bit
   127        *
   128        *  @see #getUCALIE
   129        */
   130        Bool getUCALIE();
   131
   132        /*! Determine if each Register needs to be forced set or not */
   133        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
   134        [
   135            { register : "UCB0CTL0"   , regForceSet : false },
   136            { register : "UCB0CTL1"   , regForceSet : false },
   137            { register : "UCB0BR0"    , regForceSet : false },
   138            { register : "UCB0BR1"    , regForceSet : false },
   139            { register : "UCB0STAT"   , regForceSet : false },
   140            { register : "UCB0RXBUF"  , regForceSet : false },
   141            { register : "UCB0TXBUF"  , regForceSet : false },
   142            { register : "UCB0I2COA"  , regForceSet : false },
   143            { register : "UCB0I2CSA"  , regForceSet : false },
   144            { register : "UCB0I2CIE"  , regForceSet : false }
   145        ];
   146    }


module ti.catalog.msp430.peripherals.communication.USCI_B0_SPI_2xx

     1    import ti.catalog.msp430.peripherals.clock.IClock;
     2    import ti.catalog.msp430.peripherals.special_function.IE2;
     3
     4    /*!
     5     * Universal Serial Communication Interface B0 SPI 2xx
     6     */
     7    metaonly module USCI_B0_SPI_2xx inherits IUSCI_B0_SPI {
     8
     9        /*
    10         *  ======== create ========
    11         */
    12        create(IClock.Instance clock , IE2.Instance interruptEnableRegister2);
    13
    14    instance:
    15        /*! @_nodoc */
    16        config IClock.Instance clock;
    17        /*! @_nodoc */
    18        config IE2.Instance interruptEnableRegister2;
    19
    20        /*! Determine if each Register needs to be forced set or not */
    21        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    22        [
    23            { register : "UCB0CTL0"   , regForceSet : false },
    24            { register : "UCB0CTL1"   , regForceSet : false },
    25            { register : "UCB0BR0"    , regForceSet : false },
    26            { register : "UCB0BR1"    , regForceSet : false },
    27            { register : "UCB0STAT"   , regForceSet : false },
    28            { register : "UCB0RXBUF"  , regForceSet : false },
    29            { register : "UCB0TXBUF"  , regForceSet : false }
    30        ];
    31    }


module ti.catalog.msp430.peripherals.gpio.GPIO_MSP430x22xx

     1    import ti.catalog.msp430.peripherals.adc.ADC10 as ADC10;
     2
     3    /*!
     4     *  ======== GPIO for MSP430x22xx ========
     5     *  MSP430 General Purpose Input Output Ports
     6     */
     7    metaonly module GPIO_MSP430x22xx inherits IGPIO {
     8        /*!
     9         *  ======== create ========
    10         *  Create an instance of this peripheral. Use a customized
    11         *  init function so that we can get access to the ADC10
    12         *  instance.
    13         */
    14            create(ADC10.Instance adc10);
    15
    16    instance:
    17        /*! @_nodoc */
    18        config ADC10.Instance adc10;
    19
    20       /*! Define an array to describe all device pins. The 1st dimension
    21        *  denotes the port, the second the pin on that port. On an
    22        *  MSP430F22xx device, there are 4 x 8 = 32 pins total.
    23        */
    24
    25            /* TODO: This here should really be a module-wide feature, rather than an instance feature,
    26             * however due to limitations in XDCtools 3.21.0.0 the data is located here */
    27        readonly config DevicePin_t devicePins[4][8] =
    28        [
    29            [
    30                {
    31                    pinName : "P1.0",
    32                    pinFunction : {
    33                        functionName : [
    34                            "GPIO Input",
    35                            "GPIO Output",
    36                            "Timer_A3.TACLK",
    37                            "ADC10CLK"
    38                        ],
    39                        functionConfig : [
    40                            [
    41                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x01 },
    42                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x01 }
    43                            ],
    44                            [
    45                                { register : "P1DIR", bitSetMask : 0x01, bitClearMask : 0x00 },
    46                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x01 }
    47                            ],
    48                            [
    49                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x01 },
    50                                { register : "P1SEL", bitSetMask : 0x01, bitClearMask : 0x00 }
    51                            ],
    52                            [
    53                                { register : "P1DIR", bitSetMask : 0x01, bitClearMask : 0x00 },
    54                                { register : "P1SEL", bitSetMask : 0x01, bitClearMask : 0x00 }
    55                            ]
    56                        ]
    57                    }
    58                },
    59                {
    60                    pinName : "P1.1",
    61                    pinFunction : {
    62                        functionName : [
    63                            "GPIO Input",
    64                            "GPIO Output",
    65                            "Timer_A3.CCI0A",
    66                            "Timer_A3.TA0"
    67                        ],
    68                        functionConfig : [
    69                            [
    70                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x02 },
    71                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x02 }
    72                            ],
    73                            [
    74                                { register : "P1DIR", bitSetMask : 0x02, bitClearMask : 0x00 },
    75                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x02 }
    76                            ],
    77                            [
    78                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x02 },
    79                                { register : "P1SEL", bitSetMask : 0x02, bitClearMask : 0x00 }
    80                            ],
    81                            [
    82                                { register : "P1DIR", bitSetMask : 0x02, bitClearMask : 0x00 },
    83                                { register : "P1SEL", bitSetMask : 0x02, bitClearMask : 0x00 }
    84                            ]
    85                        ]
    86                    }
    87                },
    88                {
    89                    pinName : "P1.2",
    90                    pinFunction : {
    91                        functionName : [
    92                            "GPIO Input",
    93                            "GPIO Output",
    94                            "Timer_A3.CCI1A",
    95                            "Timer_A3.TA1"
    96                        ],
    97                        functionConfig : [
    98                            [
    99                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x04 },
   100                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x04 }
   101                            ],
   102                            [
   103                                { register : "P1DIR", bitSetMask : 0x04, bitClearMask : 0x00 },
   104                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x04 }
   105                            ],
   106                            [
   107                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x04 },
   108                                { register : "P1SEL", bitSetMask : 0x04, bitClearMask : 0x00 }
   109                            ],
   110                            [
   111                                { register : "P1DIR", bitSetMask : 0x04, bitClearMask : 0x00 },
   112                                { register : "P1SEL", bitSetMask : 0x04, bitClearMask : 0x00 }
   113                            ]
   114                        ]
   115                    }
   116                },
   117                {
   118                    pinName : "P1.3",
   119                    pinFunction : {
   120                        functionName : [
   121                            "GPIO Input",
   122                            "GPIO Output",
   123                            "Timer_A3.CCI2A",
   124                            "Timer_A3.TA2"
   125                        ],
   126                        functionConfig : [
   127                            [
   128                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x08 },
   129                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x08 }
   130                            ],
   131                            [
   132                                { register : "P1DIR", bitSetMask : 0x08, bitClearMask : 0x00 },
   133                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x08 }
   134                            ],
   135                            [
   136                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x08 },
   137                                { register : "P1SEL", bitSetMask : 0x08, bitClearMask : 0x00 }
   138                            ],
   139                            [
   140                                { register : "P1DIR", bitSetMask : 0x08, bitClearMask : 0x00 },
   141                                { register : "P1SEL", bitSetMask : 0x08, bitClearMask : 0x00 }
   142                            ]
   143                        ]
   144                    }
   145                },
   146                {
   147                    pinName : "P1.4",
   148                    pinFunction : {
   149                        functionName : [
   150                            "GPIO Input",
   151                            "GPIO Output",
   152                            "SMCLK"
   153                        ],
   154                        functionConfig : [
   155                            [
   156                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x10 },
   157                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x10 }
   158                            ],
   159                            [
   160                                { register : "P1DIR", bitSetMask : 0x10, bitClearMask : 0x00 },
   161                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x10 }
   162                            ],
   163                            [
   164                                { register : "P1DIR", bitSetMask : 0x10, bitClearMask : 0x00 },
   165                                { register : "P1SEL", bitSetMask : 0x10, bitClearMask : 0x00 }
   166                            ]
   167                        ]
   168                    }
   169                },
   170                {
   171                    pinName : "P1.5",
   172                    pinFunction : {
   173                        functionName : [
   174                            "GPIO Input",
   175                            "GPIO Output",
   176                            "Timer_A3.TA0"
   177                        ],
   178                        functionConfig : [
   179                            [
   180                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x20 },
   181                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x20 }
   182                            ],
   183                            [
   184                                { register : "P1DIR", bitSetMask : 0x20, bitClearMask : 0x00 },
   185                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x20 }
   186                            ],
   187                            [
   188                                { register : "P1DIR", bitSetMask : 0x20, bitClearMask : 0x00 },
   189                                { register : "P1SEL", bitSetMask : 0x20, bitClearMask : 0x00 }
   190                            ]
   191                        ]
   192                    }
   193                },
   194                {
   195                    pinName : "P1.6",
   196                    pinFunction : {
   197                        functionName : [
   198                            "GPIO Input",
   199                            "GPIO Output",
   200                            "Timer_A3.TA1"
   201                        ],
   202                        functionConfig : [
   203                            [
   204                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x40 },
   205                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x40 }
   206                            ],
   207                            [
   208                                { register : "P1DIR", bitSetMask : 0x40, bitClearMask : 0x00 },
   209                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x40 }
   210                            ],
   211                            [
   212                                { register : "P1DIR", bitSetMask : 0x40, bitClearMask : 0x00 },
   213                                { register : "P1SEL", bitSetMask : 0x40, bitClearMask : 0x00 }
   214                            ]
   215                        ]
   216                    }
   217                },
   218                {
   219                    pinName : "P1.7",
   220                    pinFunction : {
   221                        functionName : [
   222                            "GPIO Input",
   223                            "GPIO Output",
   224                            "Timer_A3.TA2"
   225                        ],
   226                        functionConfig : [
   227                            [
   228                                { register : "P1DIR", bitSetMask : 0x00, bitClearMask : 0x80 },
   229                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x80 }
   230                            ],
   231                            [
   232                                { register : "P1DIR", bitSetMask : 0x80, bitClearMask : 0x00 },
   233                                { register : "P1SEL", bitSetMask : 0x00, bitClearMask : 0x80 }
   234                            ],
   235                            [
   236                                { register : "P1DIR", bitSetMask : 0x80, bitClearMask : 0x00 },
   237                                { register : "P1SEL", bitSetMask : 0x80, bitClearMask : 0x00 }
   238                            ]
   239                        ]
   240                    }
   241                }
   242            ],
   243            [
   244                {
   245                    pinName : "P2.0",
   246                    pinFunction : {
   247                        functionName : [
   248                            "GPIO Input",
   249                            "GPIO Output",
   250                            "ACLK",
   251                            "A0/OA0I0"
   252                        ],
   253                        functionConfig : [
   254                            [
   255                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x01 },
   256                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x01 },
   257                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x01 }
   258                            ],
   259                            [
   260                                { register : "P2DIR", bitSetMask : 0x01, bitClearMask : 0x00 },
   261                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x01 },
   262                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x01 }
   263                            ],
   264                            [
   265                                { register : "P2DIR", bitSetMask : 0x01, bitClearMask : 0x00 },
   266                                { register : "P2SEL", bitSetMask : 0x01, bitClearMask : 0x00 },
   267                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x01 }
   268                            ],
   269                            [
   270                                { register : "ADC10AE0", bitSetMask : 0x01, bitClearMask : 0x00 }
   271                            ]
   272                        ]
   273                    }
   274                },
   275                {
   276                    pinName : "P2.1",
   277                    pinFunction : {
   278                        functionName : [
   279                            "GPIO Input",
   280                            "GPIO Output",
   281                            "Timer_A3.INCLK",
   282                            "SMCLK",
   283                            "A1/OA0O"
   284                        ],
   285                        functionConfig : [
   286                            [
   287                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x02 },
   288                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x02 },
   289                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x02 }
   290                            ],
   291                            [
   292                                { register : "P2DIR", bitSetMask : 0x02, bitClearMask : 0x00 },
   293                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x02 },
   294                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x02 }
   295                            ],
   296                            [
   297                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x02 },
   298                                { register : "P2SEL", bitSetMask : 0x02, bitClearMask : 0x00 },
   299                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x02 }
   300                            ],
   301                            [
   302                                { register : "P2DIR", bitSetMask : 0x02, bitClearMask : 0x00 },
   303                                { register : "P2SEL", bitSetMask : 0x02, bitClearMask : 0x00 },
   304                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x02 }
   305                            ],
   306                            [
   307                                { register : "ADC10AE0", bitSetMask : 0x02, bitClearMask : 0x00 }
   308                            ]
   309                        ]
   310                    }
   311                },
   312                {
   313                    pinName : "P2.2",
   314                    pinFunction : {
   315                        functionName : [
   316                            "GPIO Input",
   317                            "GPIO Output",
   318                            "Timer_A3.CCI0B",
   319                            "Timer_A3.TA0",
   320                            "A2/OA0I1"
   321                        ],
   322                        functionConfig : [
   323                            [
   324                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x04 },
   325                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x04 },
   326                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x04 }
   327                            ],
   328                            [
   329                                { register : "P2DIR", bitSetMask : 0x04, bitClearMask : 0x00 },
   330                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x04 },
   331                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x04 }
   332                            ],
   333                            [
   334                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x04 },
   335                                { register : "P2SEL", bitSetMask : 0x04, bitClearMask : 0x00 },
   336                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x04 }
   337                            ],
   338                            [
   339                                { register : "P2DIR", bitSetMask : 0x04, bitClearMask : 0x00 },
   340                                { register : "P2SEL", bitSetMask : 0x04, bitClearMask : 0x00 },
   341                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x04 }
   342                            ],
   343                            [
   344                                { register : "ADC10AE0", bitSetMask : 0x04, bitClearMask : 0x00 }
   345                            ]
   346                        ]
   347                    }
   348                },
   349                {
   350                    pinName : "P2.3",
   351                    pinFunction : {
   352                        functionName : [
   353                            "GPIO Input",
   354                            "GPIO Output",
   355                            "Timer_A3.CCI1B",
   356                            "Timer_A3.TA1",
   357                            "A3/VREF--/VeREF--/OA1I1/OA1O"
   358                        ],
   359                        functionConfig : [
   360                            [
   361                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x08 },
   362                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x08 },
   363                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x08 }
   364                            ],
   365                            [
   366                                { register : "P2DIR", bitSetMask : 0x08, bitClearMask : 0x00 },
   367                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x08 },
   368                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x08 }
   369                            ],
   370                            [
   371                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x08 },
   372                                { register : "P2SEL", bitSetMask : 0x08, bitClearMask : 0x00 },
   373                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x08 }
   374                            ],
   375                            [
   376                                { register : "P2DIR", bitSetMask : 0x08, bitClearMask : 0x00 },
   377                                { register : "P2SEL", bitSetMask : 0x08, bitClearMask : 0x00 },
   378                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x08 }
   379                            ],
   380                            [
   381                                { register : "ADC10AE0", bitSetMask : 0x08, bitClearMask : 0x00 }
   382                            ]
   383                        ]
   384                    }
   385                },
   386                {
   387                    pinName : "P2.4",
   388                    pinFunction : {
   389                        functionName : [
   390                            "GPIO Input",
   391                            "GPIO Output",
   392                            "Timer_A3.TA2",
   393                            "A4/VREF+/VeREF+/OA1I0"
   394                        ],
   395                        functionConfig : [
   396                            [
   397                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x10 },
   398                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x10 },
   399                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x10 }
   400                            ],
   401                            [
   402                                { register : "P2DIR", bitSetMask : 0x10, bitClearMask : 0x00 },
   403                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x10 },
   404                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x10 }
   405                            ],
   406                            [
   407                                { register : "P2DIR", bitSetMask : 0x10, bitClearMask : 0x00 },
   408                                { register : "P2SEL", bitSetMask : 0x10, bitClearMask : 0x00 },
   409                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x10 }
   410                            ],
   411                            [
   412                                { register : "ADC10AE0", bitSetMask : 0x10, bitClearMask : 0x00 }
   413                            ]
   414                        ]
   415                    }
   416                },
   417                {
   418                    pinName : "P2.5",
   419                    pinFunction : {
   420                        functionName : [
   421                            "GPIO Input",
   422                            "GPIO Output",
   423                            "DVSS",
   424                            "ROSC"
   425                        ],
   426                        functionConfig : [
   427                            [
   428                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x20 },
   429                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x20 }
   430                            ],
   431                            [
   432                                { register : "P2DIR", bitSetMask : 0x20, bitClearMask : 0x00 },
   433                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x20 }
   434                            ],
   435                            [
   436                                { register : "P2DIR", bitSetMask : 0x20, bitClearMask : 0x00 },
   437                                { register : "P2SEL", bitSetMask : 0x20, bitClearMask : 0x00 }
   438                            ],
   439                            [
   440
   441                            ]
   442                        ]
   443                    }
   444                },
   445                {
   446                    pinName : "P2.6",
   447                    pinFunction : {
   448                        functionName : [
   449                            "GPIO Input",
   450                            "GPIO Output",
   451                            "XIN"
   452                        ],
   453                        functionConfig : [
   454                            [
   455                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x40 },
   456                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x40 }
   457                            ],
   458                            [
   459                                { register : "P2DIR", bitSetMask : 0x40, bitClearMask : 0x00 },
   460                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x40 }
   461                            ],
   462                            [
   463                                { register : "P2SEL", bitSetMask : 0x40, bitClearMask : 0x00 }
   464                            ]
   465                        ]
   466                    }
   467                },
   468                {
   469                    pinName : "P2.7",
   470                    pinFunction : {
   471                        functionName : [
   472                            "GPIO Input",
   473                            "GPIO Output",
   474                            "XOUT"
   475                        ],
   476                        functionConfig : [
   477                            [
   478                                { register : "P2DIR", bitSetMask : 0x00, bitClearMask : 0x80 },
   479                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x80 }
   480                            ],
   481                            [
   482                                { register : "P2DIR", bitSetMask : 0x80, bitClearMask : 0x00 },
   483                                { register : "P2SEL", bitSetMask : 0x00, bitClearMask : 0x80 }
   484                            ],
   485                            [
   486                                { register : "P2SEL", bitSetMask : 0x80, bitClearMask : 0x00 }
   487                            ]
   488                        ]
   489                    }
   490                }
   491            ],
   492            [
   493                {
   494                    pinName : "P3.0",
   495                    pinFunction : {
   496                        functionName : [
   497                            "GPIO Input",
   498                            "GPIO Output",
   499                            "UCB0STE/UCA0CLK",
   500                            "A5"
   501                        ],
   502                        functionConfig : [
   503                            [
   504                                { register : "P3DIR", bitSetMask : 0x00, bitClearMask : 0x01 },
   505                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x01 },
   506                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x20 }
   507                            ],
   508                            [
   509                                { register : "P3DIR", bitSetMask : 0x01, bitClearMask : 0x00 },
   510                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x01 },
   511                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x20 }
   512                            ],
   513                            [
   514                                { register : "P3SEL", bitSetMask : 0x01, bitClearMask : 0x00 },
   515                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x20 }
   516                            ],
   517                            [
   518                                { register : "ADC10AE0", bitSetMask : 0x20, bitClearMask : 0x00 }
   519                            ]
   520                        ]
   521                    }
   522                },
   523                {
   524                    pinName : "P3.1",
   525                    pinFunction : {
   526                        functionName : [
   527                            "GPIO Input",
   528                            "GPIO Output",
   529                            "UCB0SIMO/UCB0SDA"
   530                        ],
   531                        functionConfig : [
   532                            [
   533                                { register : "P3DIR", bitSetMask : 0x00, bitClearMask : 0x02 },
   534                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x02 }
   535                            ],
   536                            [
   537                                { register : "P3DIR", bitSetMask : 0x02, bitClearMask : 0x00 },
   538                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x02 }
   539                            ],
   540                            [
   541                                { register : "P3SEL", bitSetMask : 0x02, bitClearMask : 0x00 }
   542                            ]
   543                        ]
   544                    }
   545                },
   546                {
   547                    pinName : "P3.2",
   548                    pinFunction : {
   549                        functionName : [
   550                            "GPIO Input",
   551                            "GPIO Output",
   552                            "UCB0SOMI/UCB0SCL"
   553                        ],
   554                        functionConfig : [
   555                            [
   556                                { register : "P3DIR", bitSetMask : 0x00, bitClearMask : 0x04 },
   557                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x04 }
   558                            ],
   559                            [
   560                                { register : "P3DIR", bitSetMask : 0x04, bitClearMask : 0x00 },
   561                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x04 }
   562                            ],
   563                            [
   564                                { register : "P3SEL", bitSetMask : 0x04, bitClearMask : 0x00 }
   565                            ]
   566                        ]
   567                    }
   568                },
   569                {
   570                    pinName : "P3.3",
   571                    pinFunction : {
   572                        functionName : [
   573                            "GPIO Input",
   574                            "GPIO Output",
   575                            "UCB0CLK/UCA0STE"
   576                        ],
   577                        functionConfig : [
   578                            [
   579                                { register : "P3DIR", bitSetMask : 0x00, bitClearMask : 0x08 },
   580                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x08 }
   581                            ],
   582                            [
   583                                { register : "P3DIR", bitSetMask : 0x08, bitClearMask : 0x00 },
   584                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x08 }
   585                            ],
   586                            [
   587                                { register : "P3SEL", bitSetMask : 0x08, bitClearMask : 0x00 }
   588                            ]
   589                        ]
   590                    }
   591                },
   592                {
   593                    pinName : "P3.4",
   594                    pinFunction : {
   595                        functionName : [
   596                            "GPIO Input",
   597                            "GPIO Output",
   598                            "UCA0TXD/UCA0SIMO"
   599                        ],
   600                        functionConfig : [
   601                            [
   602                                { register : "P3DIR", bitSetMask : 0x00, bitClearMask : 0x10 },
   603                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x10 }
   604                            ],
   605                            [
   606                                { register : "P3DIR", bitSetMask : 0x10, bitClearMask : 0x00 },
   607                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x10 }
   608                            ],
   609                            [
   610                                { register : "P3SEL", bitSetMask : 0x10, bitClearMask : 0x00 }
   611                            ]
   612                        ]
   613                    }
   614                },
   615                {
   616                    pinName : "P3.5",
   617                    pinFunction : {
   618                        functionName : [
   619                            "GPIO Input",
   620                            "GPIO Output",
   621                            "UCA0RXD/UCA0SOMI"
   622                        ],
   623                        functionConfig : [
   624                            [
   625                                { register : "P3DIR", bitSetMask : 0x00, bitClearMask : 0x20 },
   626                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x20 }
   627                            ],
   628                            [
   629                                { register : "P3DIR", bitSetMask : 0x20, bitClearMask : 0x00 },
   630                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x20 }
   631                            ],
   632                            [
   633                                { register : "P3SEL", bitSetMask : 0x20, bitClearMask : 0x00 }
   634                            ]
   635                        ]
   636                    }
   637                },
   638                {
   639                    pinName : "P3.6",
   640                    pinFunction : {
   641                        functionName : [
   642                            "GPIO Input",
   643                            "GPIO Output",
   644                            "A6/OA0I2"
   645                        ],
   646                        functionConfig : [
   647                            [
   648                                { register : "P3DIR", bitSetMask : 0x00, bitClearMask : 0x40 },
   649                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x40 },
   650                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x40 }
   651                            ],
   652                            [
   653                                { register : "P3DIR", bitSetMask : 0x40, bitClearMask : 0x00 },
   654                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x40 },
   655                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x40 }
   656                            ],
   657                            [
   658                                { register : "ADC10AE0", bitSetMask : 0x40, bitClearMask : 0x00 }
   659                            ]
   660                        ]
   661                    }
   662                },
   663                {
   664                    pinName : "P3.7",
   665                    pinFunction : {
   666                        functionName : [
   667                            "GPIO Input",
   668                            "GPIO Output",
   669                            "A7/OA1I2"
   670                        ],
   671                        functionConfig : [
   672                            [
   673                                { register : "P3DIR", bitSetMask : 0x00, bitClearMask : 0x80 },
   674                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x80 },
   675                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x80 }
   676                            ],
   677                            [
   678                                { register : "P3DIR", bitSetMask : 0x80, bitClearMask : 0x00 },
   679                                { register : "P3SEL", bitSetMask : 0x00, bitClearMask : 0x80 },
   680                                { register : "ADC10AE0", bitSetMask : 0x00, bitClearMask : 0x80 }
   681                            ],
   682                            [
   683                                { register : "ADC10AE0", bitSetMask : 0x80, bitClearMask : 0x00 }
   684                            ]
   685                        ]
   686                    }
   687                }
   688            ],
   689            [
   690                {
   691                    pinName : "P4.0",
   692                    pinFunction : {
   693                        functionName : [
   694                            "GPIO Input",
   695                            "GPIO Output",
   696                            "Timer_B3.CCI0A",
   697                            "Timer_B3.TB0"
   698                        ],
   699                        functionConfig : [
   700                            [
   701                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x01 },
   702                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x01 }
   703                            ],
   704                            [
   705                                { register : "P4DIR", bitSetMask : 0x01, bitClearMask : 0x00 },
   706                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x01 }
   707                            ],
   708                            [
   709                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x01 },
   710                                { register : "P4SEL", bitSetMask : 0x01, bitClearMask : 0x00 }
   711                            ],
   712                            [
   713                                { register : "P4DIR", bitSetMask : 0x01, bitClearMask : 0x00 },
   714                                { register : "P4SEL", bitSetMask : 0x01, bitClearMask : 0x00 }
   715                            ]
   716                        ]
   717                    }
   718                },
   719                {
   720                    pinName : "P4.1",
   721                    pinFunction : {
   722                        functionName : [
   723                            "GPIO Input",
   724                            "GPIO Output",
   725                            "Timer_B3.CCI1A",
   726                            "Timer_B3.TB1"
   727                        ],
   728                        functionConfig : [
   729                            [
   730                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x02 },
   731                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x02 }
   732                            ],
   733                            [
   734                                { register : "P4DIR", bitSetMask : 0x02, bitClearMask : 0x00 },
   735                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x02 }
   736                            ],
   737                            [
   738                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x02 },
   739                                { register : "P4SEL", bitSetMask : 0x02, bitClearMask : 0x00 }
   740                            ],
   741                            [
   742                                { register : "P4DIR", bitSetMask : 0x02, bitClearMask : 0x00 },
   743                                { register : "P4SEL", bitSetMask : 0x02, bitClearMask : 0x00 }
   744                            ]
   745                        ]
   746                    }
   747                },
   748                {
   749                    pinName : "P4.2",
   750                    pinFunction : {
   751                        functionName : [
   752                            "GPIO Input",
   753                            "GPIO Output",
   754                            "Timer_B3.CCI2A",
   755                            "Timer_B3.TB2"
   756                        ],
   757                        functionConfig : [
   758                            [
   759                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x04 },
   760                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x04 }
   761                            ],
   762                            [
   763                                { register : "P4DIR", bitSetMask : 0x04, bitClearMask : 0x00 },
   764                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x04 }
   765                            ],
   766                            [
   767                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x04 },
   768                                { register : "P4SEL", bitSetMask : 0x04, bitClearMask : 0x00 }
   769                            ],
   770                            [
   771                                { register : "P4DIR", bitSetMask : 0x04, bitClearMask : 0x00 },
   772                                { register : "P4SEL", bitSetMask : 0x04, bitClearMask : 0x00 }
   773                            ]
   774                        ]
   775                    }
   776                },
   777                {
   778                    pinName : "P4.3",
   779                    pinFunction : {
   780                        functionName : [
   781                            "GPIO Input",
   782                            "GPIO Output",
   783                            "Timer_B3.CCI0B",
   784                            "Timer_B3.TB0",
   785                            "A12/OA0O"
   786                        ],
   787                        functionConfig : [
   788                            [
   789                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x08 },
   790                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x08 },
   791                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x10 }
   792                            ],
   793                            [
   794                                { register : "P4DIR", bitSetMask : 0x08, bitClearMask : 0x00 },
   795                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x08 },
   796                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x10 }
   797                            ],
   798                            [
   799                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x08 },
   800                                { register : "P4SEL", bitSetMask : 0x08, bitClearMask : 0x00 },
   801                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x10 }
   802                            ],
   803                            [
   804                                { register : "P4DIR", bitSetMask : 0x08, bitClearMask : 0x00 },
   805                                { register : "P4SEL", bitSetMask : 0x08, bitClearMask : 0x00 },
   806                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x10 }
   807                            ],
   808                            [
   809                                { register : "ADC10AE1", bitSetMask : 0x10, bitClearMask : 0x00 }
   810                            ]
   811                        ]
   812                    }
   813                },
   814                {
   815                    pinName : "P4.4",
   816                    pinFunction : {
   817                        functionName : [
   818                            "GPIO Input",
   819                            "GPIO Output",
   820                            "Timer_B3.CCI1B",
   821                            "Timer_B3.TB1",
   822                            "A13/OA1O"
   823                        ],
   824                        functionConfig : [
   825                            [
   826                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x10 },
   827                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x10 },
   828                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x20 }
   829                            ],
   830                            [
   831                                { register : "P4DIR", bitSetMask : 0x10, bitClearMask : 0x00 },
   832                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x10 },
   833                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x20 }
   834                            ],
   835                            [
   836                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x10 },
   837                                { register : "P4SEL", bitSetMask : 0x10, bitClearMask : 0x00 },
   838                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x20 }
   839                            ],
   840                            [
   841                                { register : "P4DIR", bitSetMask : 0x10, bitClearMask : 0x00 },
   842                                { register : "P4SEL", bitSetMask : 0x10, bitClearMask : 0x00 },
   843                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x20 }
   844                            ],
   845                            [
   846                                { register : "ADC10AE1", bitSetMask : 0x20, bitClearMask : 0x00 }
   847                            ]
   848                        ]
   849                    }
   850                },
   851                {
   852                    pinName : "P4.5",
   853                    pinFunction : {
   854                        functionName : [
   855                            "GPIO Input",
   856                            "GPIO Output",
   857                            "Timer_B3.TB2",
   858                            "A14/OA0I3"
   859                        ],
   860                        functionConfig : [
   861                            [
   862                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x20 },
   863                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x20 },
   864                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x40 }
   865                            ],
   866                            [
   867                                { register : "P4DIR", bitSetMask : 0x20, bitClearMask : 0x00 },
   868                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x20 },
   869                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x40 }
   870                            ],
   871                            [
   872                                { register : "P4DIR", bitSetMask : 0x20, bitClearMask : 0x00 },
   873                                { register : "P4SEL", bitSetMask : 0x20, bitClearMask : 0x00 },
   874                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x40 }
   875                            ],
   876                            [
   877                                { register : "ADC10AE1", bitSetMask : 0x40, bitClearMask : 0x00 }
   878                            ]
   879                        ]
   880                    }
   881                },
   882                {
   883                    pinName : "P4.6",
   884                    pinFunction : {
   885                        functionName : [
   886                            "GPIO Input",
   887                            "GPIO Output",
   888                            "TBOUTH",
   889                            "DVSS",
   890                            "A15/OA1I3"
   891                        ],
   892                        functionConfig : [
   893                            [
   894                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x40 },
   895                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x40 },
   896                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x80 }
   897                            ],
   898                            [
   899                                { register : "P4DIR", bitSetMask : 0x40, bitClearMask : 0x00 },
   900                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x40 },
   901                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x80 }
   902                            ],
   903                            [
   904                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x40 },
   905                                { register : "P4SEL", bitSetMask : 0x40, bitClearMask : 0x00 },
   906                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x80 }
   907                            ],
   908                            [
   909                                { register : "P4DIR", bitSetMask : 0x40, bitClearMask : 0x00 },
   910                                { register : "P4SEL", bitSetMask : 0x40, bitClearMask : 0x00 },
   911                                { register : "ADC10AE1", bitSetMask : 0x00, bitClearMask : 0x80 }
   912                            ],
   913                            [
   914                                { register : "ADC10AE1", bitSetMask : 0x80, bitClearMask : 0x00 }
   915                            ]
   916                        ]
   917                    }
   918                },
   919                {
   920                    pinName : "P4.7",
   921                    pinFunction : {
   922                        functionName : [
   923                            "GPIO Input",
   924                            "GPIO Output",
   925                            "Timer_B3.TBCLK",
   926                            "DVSS"
   927                        ],
   928                        functionConfig : [
   929                            [
   930                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x80 },
   931                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x80 }
   932                            ],
   933                            [
   934                                { register : "P4DIR", bitSetMask : 0x80, bitClearMask : 0x00 },
   935                                { register : "P4SEL", bitSetMask : 0x00, bitClearMask : 0x80 }
   936                            ],
   937                            [
   938                                { register : "P4DIR", bitSetMask : 0x00, bitClearMask : 0x80 },
   939                                { register : "P4SEL", bitSetMask : 0x80, bitClearMask : 0x00 }
   940                            ],
   941                            [
   942                                { register : "P4DIR", bitSetMask : 0x80, bitClearMask : 0x00 },
   943                                { register : "P4SEL", bitSetMask : 0x80, bitClearMask : 0x00 }
   944                            ]
   945                        ]
   946                    }
   947                }
   948            ]
   949        ];
   950
   951            /*! Implementation of Device Pin Functional Configuration */
   952            override config DevicePinFunctionSetting_t devicePinSetting[4][8];
   953
   954            /*! Determine if each Register needs to be forced set or not */
   955            readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
   956            [
   957                    { register : "P1OUT" , regForceSet : true  },
   958                    { register : "P1SEL" , regForceSet : false },
   959                    { register : "P1DIR" , regForceSet : false },
   960                    { register : "P1REN" , regForceSet : false },
   961                    { register : "P1IES" , regForceSet : true },
   962                    { register : "P1IFG" , regForceSet : false },
   963                    { register : "P1IE"  , regForceSet : false },
   964                    { register : "P2OUT" , regForceSet : true  },
   965                    { register : "P2SEL" , regForceSet : false },
   966                    { register : "P2DIR" , regForceSet : false },
   967                    { register : "P2REN" , regForceSet : false },
   968                    { register : "P2IES" , regForceSet : true },
   969                    { register : "P2IFG" , regForceSet : false },
   970                    { register : "P2IE"  , regForceSet : false },
   971                    { register : "P3OUT" , regForceSet : true  },
   972                    { register : "P3SEL" , regForceSet : false },
   973                    { register : "P3DIR" , regForceSet : false },
   974                    { register : "P3REN" , regForceSet : false },
   975                    { register : "P4OUT" , regForceSet : true  },
   976                    { register : "P4SEL" , regForceSet : false },
   977                    { register : "P4DIR" , regForceSet : false },
   978                    { register : "P4REN" , regForceSet : false }
   979            ];
   980
   981        /*
   982         *  GPIO Digital I/O Registers
   983         *
   984         *  One GIPO instance defines the configuration of an entire,
   985         *  8-bit wide digital I/O port.
   986         */
   987
   988        /*! Port 1 Output Register */
   989        config GpioBits8PxOut_t P1OUT = {
   990            Bit0        : BIT0_OFF,
   991            Bit1        : BIT1_OFF,
   992            Bit2        : BIT2_OFF,
   993            Bit3        : BIT3_OFF,
   994            Bit4        : BIT4_OFF,
   995            Bit5        : BIT5_OFF,
   996            Bit6        : BIT6_OFF,
   997            Bit7        : BIT7_OFF
   998        };
   999
  1000        /*! Port 1 Port Select Register */
  1001        config GpioBits8PxSel_t P1SEL = {
  1002            Bit0        : BIT0_OFF,
  1003            Bit1        : BIT1_OFF,
  1004            Bit2        : BIT2_OFF,
  1005            Bit3        : BIT3_OFF,
  1006            Bit4        : BIT4_OFF,
  1007            Bit5        : BIT5_OFF,
  1008            Bit6        : BIT6_OFF,
  1009            Bit7        : BIT7_OFF
  1010        };
  1011
  1012        /*! Port 1 Direction Register */
  1013        config GpioBits8PxDir_t P1DIR = {
  1014            Bit0        : BIT0_OFF,
  1015            Bit1        : BIT1_OFF,
  1016            Bit2        : BIT2_OFF,
  1017            Bit3        : BIT3_OFF,
  1018            Bit4        : BIT4_OFF,
  1019            Bit5        : BIT5_OFF,
  1020            Bit6        : BIT6_OFF,
  1021            Bit7        : BIT7_OFF
  1022        };
  1023
  1024        /*! Port 1 Resistor Enable Register */
  1025        config GpioBits8PxRen_t P1REN = {
  1026            Bit0        : BIT0_OFF,
  1027            Bit1        : BIT1_OFF,
  1028            Bit2        : BIT2_OFF,
  1029            Bit3        : BIT3_OFF,
  1030            Bit4        : BIT4_OFF,
  1031            Bit5        : BIT5_OFF,
  1032            Bit6        : BIT6_OFF,
  1033            Bit7        : BIT7_OFF
  1034        };
  1035
  1036        /*! Port 1 Interrupt Edge Select Register */
  1037        config GpioBits8PxIes_t P1IES = {
  1038            Bit0        : BIT0_OFF,
  1039            Bit1        : BIT1_OFF,
  1040            Bit2        : BIT2_OFF,
  1041            Bit3        : BIT3_OFF,
  1042            Bit4        : BIT4_OFF,
  1043            Bit5        : BIT5_OFF,
  1044            Bit6        : BIT6_OFF,
  1045            Bit7        : BIT7_OFF
  1046        };
  1047
  1048        /*! Port 1 Interrupt Flag Register */
  1049        config GpioBits8PxIfg_t P1IFG = {
  1050            Bit0        : BIT0_OFF,
  1051            Bit1        : BIT1_OFF,
  1052            Bit2        : BIT2_OFF,
  1053            Bit3        : BIT3_OFF,
  1054            Bit4        : BIT4_OFF,
  1055            Bit5        : BIT5_OFF,
  1056            Bit6        : BIT6_OFF,
  1057            Bit7        : BIT7_OFF
  1058        };
  1059
  1060        /*! Port 1 Interrupt Enable Register */
  1061        config GpioBits8PxIe_t P1IE = {
  1062            Bit0        : BIT0_OFF,
  1063            Bit1        : BIT1_OFF,
  1064            Bit2        : BIT2_OFF,
  1065            Bit3        : BIT3_OFF,
  1066            Bit4        : BIT4_OFF,
  1067            Bit5        : BIT5_OFF,
  1068            Bit6        : BIT6_OFF,
  1069            Bit7        : BIT7_OFF
  1070        };
  1071
  1072        /*! Port 2 Output Register */
  1073        config GpioBits8PxOut_t P2OUT = {
  1074            Bit0        : BIT0_OFF,
  1075            Bit1        : BIT1_OFF,
  1076            Bit2        : BIT2_OFF,
  1077            Bit3        : BIT3_OFF,
  1078            Bit4        : BIT4_OFF,
  1079            Bit5        : BIT5_OFF,
  1080            Bit6        : BIT6_OFF,
  1081            Bit7        : BIT7_OFF
  1082        };
  1083
  1084        /*! Port 2 Port Select Register */
  1085        config GpioBits8PxSel_t P2SEL = {
  1086            Bit0        : BIT0_OFF,
  1087            Bit1        : BIT1_OFF,
  1088            Bit2        : BIT2_OFF,
  1089            Bit3        : BIT3_OFF,
  1090            Bit4        : BIT4_OFF,
  1091            Bit5        : BIT5_OFF,
  1092            Bit6        : BIT6,         /* POR default for all 2xx devices */
  1093            Bit7        : BIT7          /* POR default for all 2xx devices */
  1094        };
  1095
  1096        /*! Port 2 Direction Register */
  1097        config GpioBits8PxDir_t P2DIR = {
  1098            Bit0        : BIT0_OFF,
  1099            Bit1        : BIT1_OFF,
  1100            Bit2        : BIT2_OFF,
  1101            Bit3        : BIT3_OFF,
  1102            Bit4        : BIT4_OFF,
  1103            Bit5        : BIT5_OFF,
  1104            Bit6        : BIT6_OFF,
  1105            Bit7        : BIT7_OFF
  1106        };
  1107
  1108        /*! Port 2 Resistor Enable Register */
  1109        config GpioBits8PxRen_t P2REN = {
  1110            Bit0        : BIT0_OFF,
  1111            Bit1        : BIT1_OFF,
  1112            Bit2        : BIT2_OFF,
  1113            Bit3        : BIT3_OFF,
  1114            Bit4        : BIT4_OFF,
  1115            Bit5        : BIT5_OFF,
  1116            Bit6        : BIT6_OFF,
  1117            Bit7        : BIT7_OFF
  1118        };
  1119
  1120        /*! Port 2 Interrupt Edge Select Register */
  1121        config GpioBits8PxIes_t P2IES = {
  1122            Bit0        : BIT0_OFF,
  1123            Bit1        : BIT1_OFF,
  1124            Bit2        : BIT2_OFF,
  1125            Bit3        : BIT3_OFF,
  1126            Bit4        : BIT4_OFF,
  1127            Bit5        : BIT5_OFF,
  1128            Bit6        : BIT6_OFF,
  1129            Bit7        : BIT7_OFF
  1130        };
  1131
  1132        /*! Port 2 Interrupt Flag Register */
  1133        config GpioBits8PxIfg_t P2IFG = {
  1134            Bit0        : BIT0_OFF,
  1135            Bit1        : BIT1_OFF,
  1136            Bit2        : BIT2_OFF,
  1137            Bit3        : BIT3_OFF,
  1138            Bit4        : BIT4_OFF,
  1139            Bit5        : BIT5_OFF,
  1140            Bit6        : BIT6_OFF,
  1141            Bit7        : BIT7_OFF
  1142        };
  1143
  1144        /*! Port 2 Interrupt Enable Register */
  1145        config GpioBits8PxIe_t P2IE = {
  1146            Bit0        : BIT0_OFF,
  1147            Bit1        : BIT1_OFF,
  1148            Bit2        : BIT2_OFF,
  1149            Bit3        : BIT3_OFF,
  1150            Bit4        : BIT4_OFF,
  1151            Bit5        : BIT5_OFF,
  1152            Bit6        : BIT6_OFF,
  1153            Bit7        : BIT7_OFF
  1154        };
  1155
  1156        /*! Port 3 Output Register */
  1157        config GpioBits8PxOut_t P3OUT = {
  1158            Bit0        : BIT0_OFF,
  1159            Bit1        : BIT1_OFF,
  1160            Bit2        : BIT2_OFF,
  1161            Bit3        : BIT3_OFF,
  1162            Bit4        : BIT4_OFF,
  1163            Bit5        : BIT5_OFF,
  1164            Bit6        : BIT6_OFF,
  1165            Bit7        : BIT7_OFF
  1166        };
  1167
  1168        /*! Port 3 Port Select Register */
  1169        config GpioBits8PxSel_t P3SEL = {
  1170            Bit0        : BIT0_OFF,
  1171            Bit1        : BIT1_OFF,
  1172            Bit2        : BIT2_OFF,
  1173            Bit3        : BIT3_OFF,
  1174            Bit4        : BIT4_OFF,
  1175            Bit5        : BIT5_OFF,
  1176            Bit6        : BIT6_OFF,
  1177            Bit7        : BIT7_OFF
  1178        };
  1179
  1180        /*! Port 3 Direction Register */
  1181        config GpioBits8PxDir_t P3DIR = {
  1182            Bit0        : BIT0_OFF,
  1183            Bit1        : BIT1_OFF,
  1184            Bit2        : BIT2_OFF,
  1185            Bit3        : BIT3_OFF,
  1186            Bit4        : BIT4_OFF,
  1187            Bit5        : BIT5_OFF,
  1188            Bit6        : BIT6_OFF,
  1189            Bit7        : BIT7_OFF
  1190        };
  1191
  1192        /*! Port 3 Resistor Enable Register */
  1193        config GpioBits8PxRen_t P3REN = {
  1194            Bit0        : BIT0_OFF,
  1195            Bit1        : BIT1_OFF,
  1196            Bit2        : BIT2_OFF,
  1197            Bit3        : BIT3_OFF,
  1198            Bit4        : BIT4_OFF,
  1199            Bit5        : BIT5_OFF,
  1200            Bit6        : BIT6_OFF,
  1201            Bit7        : BIT7_OFF
  1202        };
  1203
  1204        /*! Port 4 Output Register */
  1205        config GpioBits8PxOut_t P4OUT = {
  1206            Bit0        : BIT0_OFF,
  1207            Bit1        : BIT1_OFF,
  1208            Bit2        : BIT2_OFF,
  1209            Bit3        : BIT3_OFF,
  1210            Bit4        : BIT4_OFF,
  1211            Bit5        : BIT5_OFF,
  1212            Bit6        : BIT6_OFF,
  1213            Bit7        : BIT7_OFF
  1214        };
  1215
  1216        /*! Port 4 Port Select Register */
  1217        config GpioBits8PxSel_t P4SEL = {
  1218            Bit0        : BIT0_OFF,
  1219            Bit1        : BIT1_OFF,
  1220            Bit2        : BIT2_OFF,
  1221            Bit3        : BIT3_OFF,
  1222            Bit4        : BIT4_OFF,
  1223            Bit5        : BIT5_OFF,
  1224            Bit6        : BIT6_OFF,
  1225            Bit7        : BIT7_OFF
  1226        };
  1227
  1228        /*! Port 4 Direction Register */
  1229        config GpioBits8PxDir_t P4DIR = {
  1230            Bit0        : BIT0_OFF,
  1231            Bit1        : BIT1_OFF,
  1232            Bit2        : BIT2_OFF,
  1233            Bit3        : BIT3_OFF,
  1234            Bit4        : BIT4_OFF,
  1235            Bit5        : BIT5_OFF,
  1236            Bit6        : BIT6_OFF,
  1237            Bit7        : BIT7_OFF
  1238        };
  1239
  1240        /*! Port 4 Resistor Enable Register */
  1241        config GpioBits8PxRen_t P4REN = {
  1242            Bit0        : BIT0_OFF,
  1243            Bit1        : BIT1_OFF,
  1244            Bit2        : BIT2_OFF,
  1245            Bit3        : BIT3_OFF,
  1246            Bit4        : BIT4_OFF,
  1247            Bit5        : BIT5_OFF,
  1248            Bit6        : BIT6_OFF,
  1249            Bit7        : BIT7_OFF
  1250        };
  1251    }


interface ti.catalog.msp430.peripherals.gpio.IGPIO

     1    /*!
     2     *  ======== GPIO ========
     3     *  MSP430 General Purpose Input Output Ports
     4     */
     5    metaonly interface IGPIO inherits xdc.platform.IPeripheral {
     6
     7        /*! GPIO Bit 0 Definitions */
     8        enum Bit0_t {
     9            BIT0_OFF = 0x00u,
    10            BIT0 = 0x01u
    11        };
    12
    13        enum Bit1_t {
    14            BIT1_OFF = 0x00u,
    15            BIT1 = 0x02u
    16        };
    17
    18        enum Bit2_t {
    19            BIT2_OFF = 0x00u,
    20            BIT2 = 0x04u
    21        };
    22
    23        enum Bit3_t {
    24            BIT3_OFF = 0x00u,
    25            BIT3 = 0x08u
    26        };
    27
    28        enum Bit4_t {
    29            BIT4_OFF = 0x00u,
    30            BIT4 = 0x10u
    31        };
    32
    33        enum Bit5_t {
    34            BIT5_OFF = 0x00u,
    35            BIT5 = 0x20u
    36        };
    37
    38        enum Bit6_t {
    39            BIT6_OFF = 0x00u,
    40            BIT6 = 0x20u
    41        };
    42
    43        enum Bit7_t {
    44            BIT7_OFF = 0x00u,
    45            BIT7 = 0x80u
    46        };
    47
    48        /*!
    49        *  ======== GpioBits8_t ========
    50        *  Generic GPIO 8-bit Register
    51        *
    52        *  @see #GpioBits8_t
    53        */
    54        struct GpioBits8PxIn_t {
    55            Bit0_t    Bit0;     /*! GPIO Input Signal Bit 0 */
    56            Bit1_t    Bit1;     /*! GPIO Input Signal Bit 1 */
    57            Bit2_t    Bit2;     /*! GPIO Input Signal Bit 2 */
    58            Bit3_t    Bit3;     /*! GPIO Input Signal Bit 3 */
    59            Bit4_t    Bit4;     /*! GPIO Input Signal Bit 4 */
    60            Bit5_t    Bit5;     /*! GPIO Input Signal Bit 5 */
    61            Bit6_t    Bit6;     /*! GPIO Input Signal Bit 6 */
    62            Bit7_t    Bit7;     /*! GPIO Input Signal Bit 7 */
    63        }
    64
    65        /*!
    66        *  ======== GpioBits8PxOut_t ========
    67        *  Generic GPIO 8-bit PxOUT Register
    68        *
    69        *  @see #GpioBits8PxOut_t
    70        */
    71        struct GpioBits8PxOut_t {
    72            Bit0_t    Bit0;     /*! GPIO Output Signal Bit 0 */
    73            Bit1_t    Bit1;     /*! GPIO Output Signal Bit 1 */
    74            Bit2_t    Bit2;     /*! GPIO Output Signal Bit 2 */
    75            Bit3_t    Bit3;     /*! GPIO Output Signal Bit 3 */
    76            Bit4_t    Bit4;     /*! GPIO Output Signal Bit 4 */
    77            Bit5_t    Bit5;     /*! GPIO Output Signal Bit 5 */
    78            Bit6_t    Bit6;     /*! GPIO Output Signal Bit 6 */
    79            Bit7_t    Bit7;     /*! GPIO Output Signal Bit 7 */
    80        }
    81
    82        /*!
    83        *  ======== GpioBits8PxDir_t ========
    84        *  Generic GPIO 8-bit PxDIR Register
    85        *
    86        *  @see #GpioBits8PxDir_t
    87        */
    88        struct GpioBits8PxDir_t {
    89            Bit0_t    Bit0;     /*! GPIO Select Direction Bit 0
    90                                   *  Bit = 0: The port pin is switched to input direction
    91                                   *  Bit = 1: The port pin is switched to output direction */
    92            Bit1_t    Bit1;     /*! GPIO Select Direction Bit 1
    93                                   *  Bit = 0: The port pin is switched to input direction
    94                                   *  Bit = 1: The port pin is switched to output direction */
    95            Bit2_t    Bit2;     /*! GPIO Select Direction Bit 2
    96                                   *  Bit = 0: The port pin is switched to input direction
    97                                   *  Bit = 1: The port pin is switched to output direction */
    98            Bit3_t    Bit3;     /*! GPIO Select Direction Bit 3
    99                                   *  Bit = 0: The port pin is switched to input direction
   100                                   *  Bit = 1: The port pin is switched to output direction */
   101            Bit4_t    Bit4;     /*! GPIO Select Direction Bit 4
   102                                   *  Bit = 0: The port pin is switched to input direction
   103                                   *  Bit = 1: The port pin is switched to output direction */
   104            Bit5_t    Bit5;     /*! GPIO Select Direction Bit 5
   105                                   *  Bit = 0: The port pin is switched to input direction
   106                                   *  Bit = 1: The port pin is switched to output direction */
   107            Bit6_t    Bit6;     /*! GPIO Select Direction Bit 6
   108                                   *  Bit = 0: The port pin is switched to input direction
   109                                   *  Bit = 1: The port pin is switched to output direction */
   110            Bit7_t    Bit7;     /*! GPIO Select Direction Bit 7
   111                                   *  Bit = 0: The port pin is switched to input direction
   112                                   *  Bit = 1: The port pin is switched to output direction */
   113        }
   114
   115        /*!
   116        *  ======== GpioBits8PxRen_t ========
   117        *  Generic GPIO 8-bit PxREN Register
   118        *
   119        *  @see #GpioBits8PxRen_t
   120        */
   121        struct GpioBits8PxRen_t {
   122            Bit0_t    Bit0;     /*! GPIO Enables or Disables Pullup/Pulldown Bit 0
   123                                   *  Bit = 0: Pullup/pulldown resistor disabled
   124                                   *  Bit = 1: Pullup/pulldown resistor enabled
   125                                   *           Set Pullup/down via PxOUT 0 = Down; 1 = Up */
   126            Bit1_t    Bit1;     /*! GPIO Enables or Disables Pullup/Pulldown Bit 1
   127                                   *  Bit = 0: Pullup/pulldown resistor disabled
   128                                   *  Bit = 1: Pullup/pulldown resistor enabled
   129                                   *           Set Pullup/down via PxOUT 0 = Down; 1 = Up */
   130            Bit2_t    Bit2;     /*! GPIO Enables or Disables Pullup/Pulldown Bit 2
   131                                   *  Bit = 0: Pullup/pulldown resistor disabled
   132                                   *  Bit = 1: Pullup/pulldown resistor enabled
   133                                   *           Set Pullup/down via PxOUT 0 = Down; 1 = Up */
   134            Bit3_t    Bit3;     /*! GPIO Enables or Disables Pullup/Pulldown Bit 3
   135                                   *  Bit = 0: Pullup/pulldown resistor disabled
   136                                   *  Bit = 1: Pullup/pulldown resistor enabled
   137                                   *           Set Pullup/down via PxOUT 0 = Down; 1 = Up */
   138            Bit4_t    Bit4;     /*! GPIO Enables or Disables Pullup/Pulldown Bit 4
   139                                   *  Bit = 0: Pullup/pulldown resistor disabled
   140                                   *  Bit = 1: Pullup/pulldown resistor enabled
   141                                   *           Set Pullup/down via PxOUT 0 = Down; 1 = Up */
   142            Bit5_t    Bit5;     /*! GPIO Enables or Disables Pullup/Pulldown Bit 5
   143                                   *  Bit = 0: Pullup/pulldown resistor disabled
   144                                   *  Bit = 1: Pullup/pulldown resistor enabled
   145                                   *           Set Pullup/down via PxOUT 0 = Down; 1 = Up */
   146            Bit6_t    Bit6;     /*! GPIO Enables or Disables Pullup/Pulldown Bit 6
   147                                   *  Bit = 0: Pullup/pulldown resistor disabled
   148                                   *  Bit = 1: Pullup/pulldown resistor enabled
   149                                   *           Set Pullup/down via PxOUT 0 = Down; 1 = Up */
   150            Bit7_t    Bit7;     /*! GPIO Enables or Disables Pullup/Pulldown Bit 7
   151                                   *  Bit = 0: Pullup/pulldown resistor disabled
   152                                   *  Bit = 1: Pullup/pulldown resistor enabled
   153                                   *           Set Pullup/down via PxOUT 0 = Down; 1 = Up */
   154        }
   155
   156        /*!
   157        *  ======== GpioBits8PxSel_t ========
   158        *  Generic GPIO 8-bit PxSEL Register
   159        *
   160        *  @see #GpioBits8PxSel_t
   161        */
   162        struct GpioBits8PxSel_t {
   163            Bit0_t    Bit0;     /*! GPIO Select Pin Function Bit 0
   164                                   *See the device-specific data sheet to determine pin functions. */
   165            Bit1_t    Bit1;     /*! GPIO Select Pin Function Bit 1
   166                                   *See the device-specific data sheet to determine pin functions. */
   167            Bit2_t    Bit2;     /*! GPIO Select Pin Function Bit 2
   168                                   *See the device-specific data sheet to determine pin functions. */
   169            Bit3_t    Bit3;     /*! GPIO Select Pin Function Bit 3
   170                                   *See the device-specific data sheet to determine pin functions. */
   171            Bit4_t    Bit4;     /*! GPIO Select Pin Function Bit 4
   172                                   *See the device-specific data sheet to determine pin functions. */
   173            Bit5_t    Bit5;     /*! GPIO Select Pin Function Bit 5
   174                                   *See the device-specific data sheet to determine pin functions. */
   175            Bit6_t    Bit6;     /*! GPIO Select Pin Function Bit 6
   176                                   *See the device-specific data sheet to determine pin functions. */
   177            Bit7_t    Bit7;     /*! GPIO Select Pin Function Bit 7
   178                                   *See the device-specific data sheet to determine pin functions. */
   179        }
   180
   181        /*!
   182        *  ======== GpioBits8PxIe_t ========
   183        *  Generic GPIO 8-bit PxIE Register
   184        *
   185        *  @see #GpioBits8PxIe_t
   186        */
   187        struct GpioBits8PxIe_t {
   188            Bit0_t    Bit0;     /*! GPIO Interrupt Enable Bit 0
   189                                   *  Bit = 0: The interrupt is disabled.
   190                                   *  Bit = 1: The interrupt is enabled. */
   191            Bit1_t    Bit1;     /*! GPIO Interrupt Enable Bit 1
   192                                   *  Bit = 0: The interrupt is disabled.
   193                                   *  Bit = 1: The interrupt is enabled. */
   194            Bit2_t    Bit2;     /*! GPIO Interrupt Enable Bit 2
   195                                   *  Bit = 0: The interrupt is disabled.
   196                                   *  Bit = 1: The interrupt is enabled. */
   197            Bit3_t    Bit3;     /*! GPIO Interrupt Enable Bit 3
   198                                   *  Bit = 0: The interrupt is disabled.
   199                                   *  Bit = 1: The interrupt is enabled. */
   200            Bit4_t    Bit4;     /*! GPIO Interrupt Enable Bit 4
   201                                   *  Bit = 0: The interrupt is disabled.
   202                                   *  Bit = 1: The interrupt is enabled. */
   203            Bit5_t    Bit5;     /*! GPIO Interrupt Enable Bit 5
   204                                   *  Bit = 0: The interrupt is disabled.
   205                                   *  Bit = 1: The interrupt is enabled. */
   206            Bit6_t    Bit6;     /*! GPIO Interrupt Enable Bit 6
   207                                   *  Bit = 0: The interrupt is disabled.
   208                                   *  Bit = 1: The interrupt is enabled. */
   209            Bit7_t    Bit7;     /*! GPIO Interrupt Enable Bit 7
   210                                   *  Bit = 0: The interrupt is disabled.
   211                                   *  Bit = 1: The interrupt is enabled. */
   212        }
   213
   214        /*!
   215        *  ======== GpioBits8PxIes_t ========
   216        *  Generic GPIO 8-bit PxIES Register
   217        *
   218        *  @see #GpioBits8PxIes_t
   219        */
   220        struct GpioBits8PxIes_t {
   221            Bit0_t    Bit0;     /*! GPIO Select Interrupt Edge Bit 0
   222                                   *  Bit = 0: The PxIFGx flag is set with a low-to-high transition
   223                                   *  Bit = 1: The PxIFGx flag is set with a high-to-low transition */
   224            Bit1_t    Bit1;     /*! GPIO Select Interrupt Edge Bit 1
   225                                   *  Bit = 0: The PxIFGx flag is set with a low-to-high transition
   226                                   *  Bit = 1: The PxIFGx flag is set with a high-to-low transition */
   227            Bit2_t    Bit2;     /*! GPIO Select Interrupt Edge Bit 2
   228                                   *  Bit = 0: The PxIFGx flag is set with a low-to-high transition
   229                                   *  Bit = 1: The PxIFGx flag is set with a high-to-low transition */
   230            Bit3_t    Bit3;     /*! GPIO Select Interrupt Edge Bit 3
   231                                   *  Bit = 0: The PxIFGx flag is set with a low-to-high transition
   232                                   *  Bit = 1: The PxIFGx flag is set with a high-to-low transition */
   233            Bit4_t    Bit4;     /*! GPIO Select Interrupt Edge Bit 4
   234                                   *  Bit = 0: The PxIFGx flag is set with a low-to-high transition
   235                                   *  Bit = 1: The PxIFGx flag is set with a high-to-low transition */
   236            Bit5_t    Bit5;     /*! GPIO Select Interrupt Edge Bit 5
   237                                   *  Bit = 0: The PxIFGx flag is set with a low-to-high transition
   238                                   *  Bit = 1: The PxIFGx flag is set with a high-to-low transition */
   239            Bit6_t    Bit6;     /*! GPIO Select Interrupt Edge Bit 6
   240                                   *  Bit = 0: The PxIFGx flag is set with a low-to-high transition
   241                                   *  Bit = 1: The PxIFGx flag is set with a high-to-low transition */
   242            Bit7_t    Bit7;     /*! GPIO Select Interrupt Edge Bit 7
   243                                   *  Bit = 0: The PxIFGx flag is set with a low-to-high transition
   244                                   *  Bit = 1: The PxIFGx flag is set with a high-to-low transition */
   245        }
   246
   247        /*!
   248        *  ======== GpioBits8PxIfg_t ========
   249        *  Generic GPIO 8-bit PxIFG Register
   250        *
   251        *  @see #GpioBits8PxIfg_t
   252        */
   253        struct GpioBits8PxIfg_t {
   254            Bit0_t    Bit0;     /*! GPIO Interrupt Flag Bit 0
   255                                   *  Bit = 0: No interrupt is pending
   256                                   *  Bit = 1: An interrupt is pending */
   257            Bit1_t    Bit1;     /*! GPIO Interrupt Flag Bit 1
   258                                   *  Bit = 0: No interrupt is pending
   259                                   *  Bit = 1: An interrupt is pending */
   260            Bit2_t    Bit2;     /*! GPIO Interrupt Flag Bit 2
   261                                   *  Bit = 0: No interrupt is pending
   262                                   *  Bit = 1: An interrupt is pending */
   263            Bit3_t    Bit3;     /*! GPIO Interrupt Flag Bit 3
   264                                   *  Bit = 0: No interrupt is pending
   265                                   *  Bit = 1: An interrupt is pending */
   266            Bit4_t    Bit4;     /*! GPIO Interrupt Flag Bit 4
   267                                   *  Bit = 0: No interrupt is pending
   268                                   *  Bit = 1: An interrupt is pending */
   269            Bit5_t    Bit5;     /*! GPIO Interrupt Flag Bit 5
   270                                   *  Bit = 0: No interrupt is pending
   271                                   *  Bit = 1: An interrupt is pending */
   272            Bit6_t    Bit6;     /*! GPIO Interrupt Flag Bit 6
   273                                   *  Bit = 0: No interrupt is pending
   274                                   *  Bit = 1: An interrupt is pending */
   275            Bit7_t    Bit7;     /*! GPIO Interrupt Flag Bit 7
   276                                   *  Bit = 0: No interrupt is pending
   277                                   *  Bit = 1: An interrupt is pending */
   278        }
   279
   280        /*!
   281        *  ======== DeviceRegisterConfig_t ========
   282        *  Device Register Configuration Descriptor
   283        *
   284        *  Type to describe how a register is configured for a particular
   285        *  use. The type allows setting and clearing of an arbitrary bit
   286        *  pattern inside the specified register.
   287        *
   288        *  @see #DeviceRegisterConfig_t
   289        */
   290        struct DeviceRegisterConfig_t {
   291            String              register;
   292            UInt                bitSetMask;
   293            UInt                bitClearMask;
   294        }
   295
   296        /*!
   297        *  ======== DevicePinFunction_t ========
   298        *  Device Pin Functional Descriptor
   299        *
   300        *  Type to describe how a device pin is configured for all its
   301        *  different uses that are possible. The function names are consolidated
   302        *  in one String array rather than located together with the function-
   303        *  specific data to allow easier access by Grace widgets. The functionConfig
   304        *  member contains an arbitrary-length array describing all register
   305        *  settings that need to be performed to configure a certain function.
   306        *
   307        *  @see #DevicePinFunction_t
   308        */
   309        struct DevicePinFunction_t {
   310            String                    functionName[];
   311            DeviceRegisterConfig_t    functionConfig[][];
   312        }
   313
   314        /*!
   315        *  ======== DevicePin_t ========
   316        *  Device Pin Descriptor
   317        *
   318        *  Type to describe a single device pin and all its possible
   319        *  configurations.
   320        *
   321        *  @see #DevicePin_t
   322        */
   323        struct DevicePin_t {
   324            String                    pinName;
   325            DevicePinFunction_t       pinFunction;
   326        }
   327
   328        /*!
   329        *  ======== MatchedPortFunction_t ========
   330        *  Port Function Enumeration Type
   331        *
   332        *  This type is used to store a list of applicable pins based on the
   333        *  search criteria when using the function findPinsForFunction().
   334        *
   335        *  @see #MatchedPortFunction_t
   336        */
   337        struct MatchedPortFunction_t {
   338            UInt      port[];
   339            UInt      pin[];
   340            String    pinName[];
   341            UInt      functionIndex[];
   342            String    functionName[];
   343        }
   344
   345        /*!
   346        *  ======== DevicePinFunctionSetting_t ========
   347        *  Device Pin Functional Setting Descriptor
   348        *
   349        *  Type to store the selected pin configuration and a reference
   350        *  to the object that last modified the configuration.
   351        *
   352        *  @see #DevicePinFunctionSetting_t
   353        */
   354        struct DevicePinFunctionSetting_t {
   355            UInt       functionIndex;
   356            Any        owner;
   357        }
   358
   359        /*!
   360        *  ======== ForceSetDefaultRegister_t ========
   361        *  Force Set Default Register
   362        *
   363        *  Type to store if each register needs to be forced initialized
   364        *  even if the register is in default state.
   365        *
   366        *  @see #ForceSetDefaultRegister_t
   367        */
   368        struct ForceSetDefaultRegister_t {
   369            String     register;
   370            Bool       regForceSet;
   371        }
   372
   373    instance:
   374        /*! Fordward Declaration of Device Pin Functional Configuration */
   375        config DevicePinFunctionSetting_t devicePinSetting[][];
   376
   377        /*!
   378         *  ======== findPinsForFunction ========
   379         *    Identify all device pins that can be used to serve a certain purpose
   380         *
   381         *  Function to scan through the pin configuration database to identify
   382         *    a list of device pins matching a regular expression.
   383         */
   384        MatchedPortFunction_t findPinsForFunction(String regExp);
   385
   386        /*!
   387         *  ======== pinFunctionIsActive ========
   388         *  Check if a pin is enabled for a certain function
   389         *
   390         *    This function is used to check if a certain functionality is enabled
   391         *    on a given device pins (returns 'true' in that case).
   392         */
   393        Bool pinFunctionIsActive(UInt port, UInt pin, String regExp);
   394
   395        /*!
   396         *  ======== getPinFunctionIndex ========
   397         *  Get a pin's current functional configuration
   398         *
   399         *  This function is used to obtain the current configuration of a given
   400         *    device pin. The returned value can be used as an index to obtain further
   401         *  information from the pin configuration database.
   402         */
   403        UInt getPinFunctionIndex(UInt port, UInt pin);
   404
   405        /*!
   406         *  ======== getPinOwner ========
   407         *    This function returns the current owner of the specified device pin.
   408         */
   409        Any getPinOwner(UInt port, UInt pin);
   410
   411        /*!
   412         *  ======== setPinFunctionUsingIndex ========
   413         *     Configure a device pin to a specific peripheral function
   414         *
   415         *  This function is used to configure a device pin to a specific peripheral
   416         *    function that is identified by an index. The index corresponds to an
   417         *    associated set of configuration parameters stored in the pin configuration
   418         *    database. The owner parameter can be used to protect a pin from being
   419         *    used by somebody else. A pin configuration can only be changed if the
   420         *    current owner is undefined, or of the current owner matches the
   421         *    owner specified as function parameter.
   422         */
   423        Void setPinFunctionUsingIndex(UInt port, UInt pin, UInt index, Any owner);
   424
   425        /*!
   426         *  ======== setDefaultPinFunction ========
   427         *     Configure a device pin to its default state
   428         *
   429         *  This function is used to configure a device pin to its default state
   430         *    and is typically used when a peripheral module relinquishes ownership
   431         *    of a pin so that it can be used by other peripheral modules.
   432         */
   433        Void setDefaultPinFunction(UInt port, UInt pin, Any owner);
   434    }


package ti.catalog.msp430.peripherals.gpio

     1    package ti.catalog.msp430.peripherals.gpio {
     2        module    GPIO_MSP430x22xx;
     3        interface IGPIO;
     4    }


module ti.catalog.msp430.peripherals.interrupt.Interrupt_Controller

     1    /*!
     2     *  ======== Interrupt_Controller ========
     3     *  MSP430 Interrupt_Controller
     4     */
     5    metaonly module Interrupt_Controller inherits xdc.platform.IPeripheral {
     6
     7    instance:
     8
     9        config UInt baseAddr;
    10        config UInt numInterrupts;
    11    }


package ti.catalog.msp430.peripherals.interrupt

     1    package ti.catalog.msp430.peripherals.interrupt {
     2        module Interrupt_Controller;
     3    }


module ti.catalog.msp430.peripherals.memory.Flash_2xx

     1    /*!
     2     *  ======== Flash_2xx ========
     3     *  MSP430 Flash 2xx
     4     */
     5    metaonly module Flash_2xx inherits IFlash {
     6
     7        /* FCTL1 Register */
     8        struct FCTL1_t {
     9            FWKEY_t     FWKEY;                  /*! FCTLx password */
    10            BLKWRT_t    BLKWRT;                 /*! Block write mode */
    11            WRT_t       WRT;                    /*! Write */
    12            EEIEX_t     EEIEX;                  /*! Enable Emergency Interrupt Exit */
    13            EEI_t       EEI;                    /*! Enable Erase Interrupts */
    14            MERAS_t     MERAS;                  /*! Mass erase */
    15            ERASE_t     ERASE;                  /*! Erase */
    16        }
    17
    18        /* FCTL2 Register */
    19        struct FCTL2_t {
    20            FWKEY_t     FWKEY;                  /*! FCTLx password */
    21            FSSEL_t     FSSEL;                  /*! Flash controller clock source select */
    22            FN5_t       FN5;                    /*! Flash controller clock divider bit 5 */
    23            FN4_t       FN4;                    /*! Flash controller clock divider bit 4 */
    24            FN3_t       FN3;                    /*! Flash controller clock divider bit 3 */
    25            FN3_t       FN2;                    /*! Flash controller clock divider bit 2 */
    26            FN1_t       FN1;                    /*! Flash controller clock divider bit 1 */
    27            FN0_t       FN0;                    /*! Flash controller clock divider bit 0 */
    28        }
    29
    30        /* FCTL3 Register */
    31        struct FCTL3_t {
    32            FWKEY_t     FWKEY;                  /*! FCTLx password. Always read as 096h. Must be written as 0A5h or a PUC
    33                                                 *  will be generated. */
    34            FAIL_t      FAIL;                   /*!  FAIL Bit 7 Operation failure. This bit is set if the fFTG clock source fails, or a flash
    35                                                 *  operation is aborted from an interrupt when EEIEX = 1. FAIL must be reset
    36                                                 *  with software.
    37                                                 *  0  No failure
    38                                                 *  1  Failure */
    39            LOCKA_t     LOCKA;                  /*! SegmentA and Info lock. Write a 1 to this bit to change its state. Writing 0 has
    40                                                 *  no effect.
    41                                                 *  0  Segment A unlocked and all information memory is erased during a
    42                                                 *     mass erase.
    43                                                 *  1  Segment A locked and all information memory is protected from erasure
    44                                                 *     during a mass erase. */
    45            EMEX_t      EMEX;                   /*! Emergency exit
    46                                                 *  0  No emergency exit
    47                                                 *  1  Emergency exit */
    48            LOCK_t      LOCK;                   /*! Lock. This bit unlocks the flash memory for writing or erasing. The LOCK bit
    49                                                 *  can be set anytime during a byte/word write or erase operation and the
    50                                                 *  operation will complete normally. In the block write mode if the LOCK bit is set
    51                                                 *  while BLKWRT=WAIT=1, then BLKWRT and WAIT are reset and the mode
    52                                                 *  ends normally.
    53                                                 *  0  Unlocked
    54                                                 *  1  Locked */
    55            WAIT_t      WAIT;                   /*! Wait. Indicates the flash memory is being written to.
    56                                                 *  0  The flash memory is not ready for the next byte/word write
    57                                                 *  1  The flash memory is ready for the next byte/word write */
    58            ACCVIFG_t   ACCVIFG;                /*! Access violation interrupt flag
    59                                                 *  0 No interrupt pending
    60                                                 *  1 Interrupt pending */
    61            KEYV_t      KEYV;                   /*! Flash security key violation. This bit indicates an incorrect FCTLx password
    62                                                 *  was written to any flash control register and generates a PUC when set. KEYV
    63                                                 *  must be reset with software.
    64                                                 *  0  FCTLx password was written correctly
    65                                                 *  1  FCTLx password was written incorrectly */
    66            BUSY_t      BUSY;                   /*! Busy. This bit indicates the status of the flash timing generator.
    67                                                 *  0  Not Busy
    68                                                 *  1  Busy */
    69        }
    70
    71    instance:
    72        /*! Flash Memory Control Register 1 */
    73        config FCTL1_t FCTL1 = {
    74            FWKEY   : FWKEY,
    75            BLKWRT  : BLKWRT_OFF,
    76            WRT     : WRT_OFF,
    77            EEIEX   : EEIEX_OFF,
    78            EEI     : EEI_OFF,
    79            MERAS   : MERAS_OFF,
    80            ERASE   : ERASE_OFF
    81        };
    82
    83        /*! Determine if each Register needs to be forced set or not */
    84            readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    85            [
    86                    { register : "FCTL1" , regForceSet : false }
    87            ];
    88    }


interface ti.catalog.msp430.peripherals.memory.IFlash

     1    import ti.catalog.msp430.peripherals.clock.IClock;
     2
     3    /*!
     4     *  ======== IFlash ========
     5     *  MSP430 IFlash interface
     6     */
     7    metaonly interface IFlash inherits xdc.platform.IPeripheral {
     8
     9        enum FWKEY_t {
    10            FWKEY_OFF = 0x00,
    11            FWKEY = 0xA500
    12        };
    13
    14        /*! Block write mode */
    15        enum BLKWRT_t {
    16            BLKWRT_OFF = (0x0000),              /* Block-write mode is off */
    17            BLKWRT = (0x0080)                   /* Block-write mode is on */
    18        };
    19
    20        /*! Write */
    21        enum WRT_t {
    22            WRT_OFF = (0x0000),                 /* Write mode is off */
    23            WRT = 0x0040                        /* Write mode is on */
    24        };
    25
    26        /*! Enable Emergency Interrupt Exit */
    27        enum EEIEX_t {
    28            EEIEX_OFF = (0x0000),               /* Exit interrupt disabled */
    29            EEIEX = 0x0010                      /* Exit interrupt enabled */
    30        };
    31
    32        /*! Enable Erase Interrupts */
    33        enum EEI_t {
    34            EEI_OFF = (0x0000),                 /* Interrupts during segment erase disabled */
    35            EEI = 0x0008                        /* Interrupts during segment erase enabled */
    36        };
    37
    38        /*! Mass erase */
    39        enum MERAS_t {
    40            MERAS_OFF = (0x0000),               /* Mass erase disabled */
    41            MERAS = 0x0004                      /* Mass erase enabled */
    42        };
    43
    44        /*! Erase */
    45        enum ERASE_t {
    46            ERASE_OFF = (0x0000),               /* Erase disabled */
    47            ERASE = 0x0002                      /* Erase enabled */
    48        };
    49
    50        enum FSSEL_t {
    51            FSSEL_0 = 0x0000,                   /*! ACLK */
    52            FSSEL_1 = 0x0040,                   /*! MCLK  */
    53            FSSEL_2 = 0x0080,                   /*! SMCLK */
    54            FSSEL_3 = 0x00C0                    /*! SMCLK */
    55        };
    56
    57            /*! Flash controller clock divider bit 0 */
    58        enum FN0_t {
    59            FN0_OFF = (0x0000),                /* Flash controller clock divider bit 0 */
    60            FN0 = 0x0001                       /* Flash controller clock divider bit 0 */
    61        };
    62
    63        /*! Flash controller clock divider bit 1 */
    64        enum FN1_t {
    65            FN1_OFF = (0x0000),                /* Flash controller clock divider bit 1 */
    66            FN1 = 0x0002                       /* Flash controller clock divider bit 1 */
    67        };
    68
    69        /*! Flash controller clock divider bit 2 */
    70        enum FN2_t {
    71            FN2_OFF = (0x0000),                /* Flash controller clock divider bit 2 */
    72            FN2 = 0x0004                       /* Flash controller clock divider bit 2 */
    73        };
    74
    75        /*! Flash controller clock divider bit 3 */
    76        enum FN3_t {
    77            FN3_OFF = (0x0000),                /* Flash controller clock divider bit 3 */
    78            FN3 = 0x0008                       /* Flash controller clock divider bit 3 */
    79        };
    80
    81        /*! Flash controller clock divider bit 4 */
    82        enum FN4_t {
    83            FN4_OFF = (0x0000),                /* Flash controller clock divider bit 4 */
    84            FN4 = 0x0010                       /* Flash controller clock divider bit 4 */
    85        };
    86
    87        /*! Flash controller clock divider bit 5 */
    88        enum FN5_t {
    89            FN5_OFF = (0x0000),                /* Flash controller clock divider bit 5 */
    90            FN5 = 0x0020                       /* Flash controller clock divider bit 5 */
    91        };
    92
    93        /*! Operation failure */
    94        enum FAIL_t {
    95            FAIL_OFF = (0x0000),                /* No failure */
    96            FAIL = 0x0080                       /* Failure */
    97        };
    98
    99        /*! SegmentA and Info lock */
   100        enum LOCKA_t {
   101            LOCKA_OFF = (0x0000),               /* Segment A unlocked and all information memory is erased during a mass erase */
   102            LOCKA = 0x0040                      /* Segment A locked and all information memory is protected from erasure during a mass erase */
   103        };
   104
   105        /*! Emergency exit */
   106        enum EMEX_t {
   107            EMEX_OFF = (0x0000),               /* No emergency exit */
   108            EMEX = 0x0020                      /* Emergency exit */
   109        };
   110
   111        /*! Lock */
   112        enum LOCK_t {
   113            LOCK_OFF = (0x0000),               /* Unlocked */
   114            LOCK = 0x0010                      /* Locked */
   115        };
   116
   117        /*! Wait */
   118        enum WAIT_t {
   119            WAIT_OFF = (0x0000),               /* The flash memory is not ready for the next byte/word write */
   120            WAIT = 0x0008                      /* The flash memory is ready for the next byte/word write */
   121        };
   122
   123        /*! Access violation interrupt flag */
   124        enum ACCVIFG_t {
   125            ACCVIFG_OFF = (0x0000),            /* No interrupt pending */
   126            ACCVIFG = 0x0004                   /* Interrupt pending */
   127        };
   128
   129        /*! Flash security key violation */
   130        enum KEYV_t {
   131            KEYV_OFF = (0x0000),                    /* FCTLx password was written correctly */
   132            KEYV = 0x0002                           /* FCTLx password was written incorrectly */
   133        };
   134
   135        /*! Busy */
   136        enum BUSY_t {
   137            BUSY_OFF = (0x0000),                    /* Not Busy */
   138            BUSY = 0x0001                           /* Busy */
   139        };
   140
   141        /*!
   142        *  ======== ForceSetDefaultRegister_t ========
   143        *  Force Set Default Register
   144        *
   145        *  Type to store if each register needs to be forced initialized
   146        *  even if the register is in default state.
   147        *
   148        *  @see #ForceSetDefaultRegister_t
   149        */
   150        struct ForceSetDefaultRegister_t {
   151            String     register;
   152            Bool       regForceSet;
   153        }
   154
   155        create(IClock.Instance clock);
   156
   157    instance:
   158        /*!
   159         *  ======== baseAddr ========
   160         *  Address of the peripheral's control register.
   161         *
   162         *  A peripheral's registers are commonly accessed through a structure
   163         *  that defines the offsets of a particular register from the lowest
   164         *  address mapped to a peripheral. That lowest address is specified by
   165         *  this parameter.
   166         */
   167        config UInt baseAddr;
   168
   169        /*!
   170         *  ======== intNum ========
   171         *  Interrupt source number
   172         *
   173         */
   174        config UInt intNum;
   175
   176        /*! @_nodoc */
   177        config IClock.Instance clock;
   178    }


package ti.catalog.msp430.peripherals.memory

     1    package ti.catalog.msp430.peripherals.memory {
     2        interface IFlash;
     3        module Flash_2xx;
     4    }


interface ti.catalog.msp430.peripherals.oa.IOA

     1    /*!
     2     *  ======== IOA ========
     3     *  MSP430 General Purpose Operational Amplifier
     4     */
     5    metaonly interface IOA inherits xdc.platform.IPeripheral {
     6
     7        /*! Inverting input selection */
     8        enum OAN_t {
     9          OAN_0 = (0*0x400u),     /*! OAxI0 */
    10          OAN_1 = (1*0x400u),     /*! OAxI1 */
    11          OAN_2 = (2*0x400u),     /*! OAxIA (see the device-specific data sheet for connected signal) */
    12          OAN_3 = 3*0x400u        /*! OAxIB (see the device-specific data sheet for connected signal) */
    13        };
    14
    15        /*! Non-inverting input selection */
    16        enum OAP_t {
    17          OAP_0 = (0*0x400u),     /*! OAxI0 */
    18          OAP_1 = (1*0x400u),     /*! OAxI1 */
    19          OAP_2 = (2*0x400u),     /*! OAxIA (see the device-specific data sheet for connected signal) */
    20          OAP_3 = 3*0x400u        /*! OAxIB (see the device-specific data sheet for connected signal) */
    21        };
    22
    23        /*! Slew rate select */
    24        enum OAPM_t {
    25          OAPM_0 = (0*0x400u),     /*! OAx Power mode select: Off, output high Z */
    26          OAPM_1 = (1*0x400u),     /*! OAx Power mode select: Slow */
    27          OAPM_2 = (2*0x400u),     /*! OAx Power mode select: Medium */
    28          OAPM_3 = 3*0x400u        /*! OAx Power mode select: Fast */
    29        };
    30
    31        enum OAADC0_t {
    32          OAADC0_OFF = (0x00),          /* OAx output to ADC12 input channel select 0 */
    33          OAADC0 = (0x01)               /* OAx output to ADC12 input channel select 0 */
    34        };
    35
    36        enum OAADC1_t {
    37          OAADC1_OFF = (0x00),          /* OAx output to ADC12 input channel select 1 */
    38          OAADC1 = (0x02)               /* OAx output to ADC12 input channel select 1 */
    39        };
    40
    41        /*! OAx feedback resistor select */
    42        enum OAFBR_t {
    43          OAFBR_0 = (0*0x100u),         /* OAx Feedback resistor: Tap 0 */
    44          OAFBR_1 = (1*0x100u),         /* OAx Feedback resistor: Tap 1 */
    45          OAFBR_2 = (2*0x100u),         /* OAx Feedback resistor: Tap 2 */
    46          OAFBR_3 = (3*0x100u),         /* OAx Feedback resistor: Tap 3 */
    47          OAFBR_4 = (4*0x100u),         /* OAx Feedback resistor: Tap 4 */
    48          OAFBR_5 = (5*0x100u),         /* OAx Feedback resistor: Tap 5 */
    49          OAFBR_6 = (6*0x100u),         /* OAx Feedback resistor: Tap 6 */
    50          OAFBR_7 = (7*0x100u)          /* OAx Feedback resistor: Tap 7 */
    51        };
    52
    53        /*! OAx function control */
    54        enum OAFC_t {
    55          OAFC_0 = (0*0x100u),         /* OAx Function: Gen. Purpose */
    56          OAFC_1 = (1*0x100u),         /* OAx Function: Unity gain buffer*/
    57          OAFC_2 = (2*0x100u),         /* OAx Function: Reserved */
    58          OAFC_3 = (3*0x100u),         /* OAx Function: Comparator */
    59          OAFC_4 = (4*0x100u),         /* OAx Function: Non-inverting PGA */
    60          OAFC_5 = (5*0x100u),         /* OAx Function: Cascaded non-inverting PGA */
    61          OAFC_6 = (6*0x100u),         /* OAx Function: Inverting PGA */
    62          OAFC_7 = (7*0x100u)          /* OAx Function: Differential amplifier */
    63        };
    64
    65        enum OARRIP_t {
    66          OARRIP_OFF = 0x00,            /* Rtop = AVss, Rbottom = AVcc */
    67          OARRIP     = (0x01)           /* Rtop = AVcc, Rbottom = AVss */
    68        };
    69
    70        enum OANEXT_t {
    71          OANEXT_OFF = (0x00),          /* OAx inverting input not externally available */
    72          OANEXT     = (0x02)           /* OAx inverting input externally available */
    73        };
    74
    75       /*!
    76        *  ======== OAxCTL0_t ========
    77        *  Opamp Control Register 0 Definition
    78        *
    79        *  @see #OAxCTL0_t
    80        */
    81        struct OAxCTL0_t {
    82          OAN_t     OAN;            /*! Inverting input select. These bits select the input signal for the OA inverting
    83                                      * input.
    84                                      *  00  OAxI0
    85                                      *  01  OAxI1
    86                                      *  10  OAxIA (see the device-specific data sheet for connected signal)
    87                                      *  11  OAxIB (see the device-specific data sheet for connected signal) */
    88          OAP_t     OAP;            /*! Non-inverting input select. These bits select the input signal for the OA
    89                                      * non-inverting input.
    90                                      *  00  OAxI0
    91                                      *  01  OA0I1
    92                                      *  10  OAxIA (see the device-specific data sheet for connected signal)
    93                                      *  11  OAxIB (see the device-specific data sheet for connected signal) */
    94          OAPM_t    OAPM;           /*! Slew rate select. These bits select the slew rate vs. current consumption
    95                                      * for the OA.
    96                                      *  00  Off, output high Z
    97                                      *  01  Slow
    98                                      *  10  Medium
    99                                      *  11  Fast */
   100          OAADC0_t  OAADC0;         /*! OA output select. These bits, together with the OAFCx bits, control the
   101                                      * routing of the OAx output when OAPMx > 0.
   102                                      * When OAFCx = 0:
   103                                      *  00  OAxOUT connected to external pins and ADC input A1, A3, or A5
   104                                      *  01  OAxOUT connected to external pins and ADC input A12, A13, or A14
   105                                      *  10  OAxOUT connected to external pins and ADC input A1, A3, or A5
   106                                      *  11  OAxOUT connected to external pins and ADC input A12, A13, or A14
   107                                      * When OAFCx > 0:
   108                                      *  00  OAxOUT used for internal routing only
   109                                      *  01  OAxOUT connected to external pins and ADC input A12, A13, or A14
   110                                      *  10  OAxOUT connected to external pins and ADC input A1, A3, or A5
   111                                      *  11  OAxOUT connected internally to ADC input A12, A13 , or A14.
   112                                      * External A12, A13, or A14 pin connections are disconnected from the
   113                                      * ADC. */
   114          OAADC1_t  OAADC1;         /*! OA output select. These bits, together with the OAFCx bits, control the
   115                                      * routing of the OAx output when OAPMx > 0.
   116                                      * When OAFCx = 0:
   117                                      *  00  OAxOUT connected to external pins and ADC input A1, A3, or A5
   118                                      *  01  OAxOUT connected to external pins and ADC input A12, A13, or A14
   119                                      *  10  OAxOUT connected to external pins and ADC input A1, A3, or A5
   120                                      *  11  OAxOUT connected to external pins and ADC input A12, A13, or A14
   121                                      * When OAFCx > 0:
   122                                      *  00  OAxOUT used for internal routing only
   123                                      *  01  OAxOUT connected to external pins and ADC input A12, A13, or A14
   124                                      *  10  OAxOUT connected to external pins and ADC input A1, A3, or A5
   125                                      *  11  OAxOUT connected internally to ADC input A12, A13 , or A14.
   126                                      * External A12, A13, or A14 pin connections are disconnected from the
   127                                      * ADC. */
   128        }
   129
   130        /*!
   131        *  ======== OAxCTL1_t ========
   132        *  Opamp Control Register 1 Definition
   133        *
   134        *  @see #OAxCTL1_t
   135        */
   136        struct OAxCTL1_t {
   137          OAFBR_t   OAFBR;          /*! OAx feedback resistor select
   138                                      *  000  Tap 0 - 0R/16R
   139                                      *  001  Tap 1 - 4R/12R
   140                                      *  010  Tap 2 - 8R/8R
   141                                      *  011  Tap 3 - 10R/6R
   142                                      *  100  Tap 4 - 12R/4R
   143                                      *  101  Tap 5 - 13R/3R
   144                                      *  110  Tap 6 - 14R/2R
   145                                      *  111  Tap 7 - 15R/1R */
   146          OAFC_t    OAFC;           /*! OAx function control. This bit selects the function of OAx
   147                                      *  000  General purpose opamp
   148                                      *  001  Unity gain buffer for three-opamp differential amplifier
   149                                      *  010  Unity gain buffer
   150                                      *  011  Comparator
   151                                      *  100  Non-inverting PGA amplifier
   152                                      *  101  Cascaded non-inverting PGA amplifier
   153                                      *  110  Inverting PGA amplifier
   154                                      *  111  Differential amplifier */
   155          OANEXT_t  OANEXT;         /*! OAx inverting input externally available. This bit, when set, connects the
   156                                      * inverting OAx input to the external pin when the integrated resistor network
   157                                      * is used.
   158                                      *  0  OAx inverting input not externally available
   159                                      *  1  OAx inverting input externally available */
   160          OARRIP_t  OARRIP;         /*! OAx reverse resistor connection in comparator mode
   161                                      *  0  RTOP is connected to AVSS and RBOTTOM is connected to AVCC when
   162                                      *     OAFCx = 3
   163                                      *  1  RTOP is connected to AVCC and RBOTTOM is connected to AVSS when
   164                                      *     OAFCx = 3. */
   165        }
   166
   167        /*!
   168        *  ======== ForceSetDefaultRegister_t ========
   169        *  Force Set Default Register
   170        *
   171        *  Type to store if each register needs to be forced initialized
   172        *  even if the register is in default state.
   173        *
   174        *  @see #ForceSetDefaultRegister_t
   175        */
   176        struct ForceSetDefaultRegister_t {
   177            String     register;
   178            Bool       regForceSet;
   179        }
   180
   181    instance:
   182
   183            /*! Returns the number of available OA */
   184            UChar getNumberOfOA();
   185    }


module ti.catalog.msp430.peripherals.oa.OA_2

     1    /*!
     2     *  ======== 2 OA ========
     3     *  MSP430 General Purpose Operational Amplifier
     4     */
     5    metaonly module OA_2 inherits IOA {
     6        /*!
     7         *  ======== create ========
     8         *  Create an instance of this peripheral
     9         */
    10        create();
    11
    12    instance:
    13        /*! OA0 control register 0 */
    14        config OAxCTL0_t OA0CTL0 = {
    15          OAN : OAN_0,
    16          OAP : OAP_0,
    17          OAPM : OAPM_0,
    18          OAADC0 : OAADC0_OFF,
    19          OAADC1 : OAADC1_OFF
    20        };
    21
    22        /*! OA0 control register 1 */
    23        config OAxCTL1_t OA0CTL1 = {
    24          OAFBR : OAFBR_0,
    25          OAFC : OAFC_0,
    26          OANEXT : OANEXT_OFF,
    27          OARRIP : OARRIP_OFF,
    28        };
    29
    30        /*! OA1 control register 0 */
    31        config OAxCTL0_t OA1CTL0 = {
    32          OAN : OAN_0,
    33          OAP : OAP_0,
    34          OAPM : OAPM_0,
    35          OAADC0 : OAADC0_OFF,
    36          OAADC1 : OAADC1_OFF
    37        };
    38
    39        /*! OA1 control register 1 */
    40        config OAxCTL1_t OA1CTL1 = {
    41          OAFBR : OAFBR_0,
    42          OAFC : OAFC_0,
    43          OANEXT : OANEXT_OFF,
    44          OARRIP : OARRIP_OFF,
    45        };
    46
    47        /*! Determine if each Register needs to be forced set or not */
    48            readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    49            [
    50                    { register : "OA0CTL0" , regForceSet : false },
    51                    { register : "OA0CTL1" , regForceSet : false },
    52                    { register : "OA1CTL0" , regForceSet : false },
    53                    { register : "OA1CTL1" , regForceSet : false }
    54            ];
    55    }


module ti.catalog.msp430.peripherals.oa.OA_3

     1    /*!
     2     *  ======== OA ========
     3     *  MSP430 General Purpose Operational Amplifier
     4     */
     5    metaonly module OA_3 inherits IOA {
     6        /*!
     7         *  ======== create ========
     8         *  Create an instance of this peripheral
     9         */
    10        create();
    11
    12    instance:
    13        /*! OA0 control register 0 */
    14        config OAxCTL0_t OA0CTL0 = {
    15          OAN : OAN_0,
    16          OAP : OAP_0,
    17          OAPM : OAPM_0,
    18          OAADC0 : OAADC0_OFF,
    19          OAADC1 : OAADC1_OFF
    20        };
    21
    22        /*! OA0 control register 1 */
    23        config OAxCTL1_t OA0CTL1 = {
    24          OAFBR : OAFBR_0,
    25          OAFC : OAFC_0,
    26          OANEXT : OANEXT_OFF,
    27          OARRIP : OARRIP_OFF,
    28        };
    29
    30        /*! OA1 control register 0 */
    31        config OAxCTL0_t OA1CTL0 = {
    32          OAN : OAN_0,
    33          OAP : OAP_0,
    34          OAPM : OAPM_0,
    35          OAADC0 : OAADC0_OFF,
    36          OAADC1 : OAADC1_OFF
    37        };
    38
    39        /*! OA1 control register 1 */
    40        config OAxCTL1_t OA1CTL1 = {
    41          OAFBR : OAFBR_0,
    42          OAFC : OAFC_0,
    43          OANEXT : OANEXT_OFF,
    44          OARRIP : OARRIP_OFF,
    45        };
    46
    47        /*! OA2 control register 0 */
    48        config OAxCTL0_t OA2CTL0 = {
    49          OAN : OAN_0,
    50          OAP : OAP_0,
    51          OAPM : OAPM_0,
    52          OAADC0 : OAADC0_OFF,
    53          OAADC1 : OAADC1_OFF
    54        };
    55
    56        /*! OA2 control register 1 */
    57        config OAxCTL1_t OA2CTL1 = {
    58          OAFBR : OAFBR_0,
    59          OAFC : OAFC_0,
    60          OANEXT : OANEXT_OFF,
    61          OARRIP : OARRIP_OFF,
    62        };
    63
    64        /*! Determine if each Register needs to be forced set or not */
    65        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    66        [
    67            { register : "OA0CTL0" , regForceSet : false },
    68            { register : "OA0CTL1" , regForceSet : false },
    69            { register : "OA1CTL0" , regForceSet : false },
    70            { register : "OA1CTL1" , regForceSet : false },
    71            { register : "OA2CTL0" , regForceSet : false },
    72            { register : "OA2CTL1" , regForceSet : false }
    73        ];
    74    }


package ti.catalog.msp430.peripherals.oa

     1    package ti.catalog.msp430.peripherals.oa {
     2        interface IOA;
     3        module    OA_2;
     4        module    OA_3;
     5    }


module ti.catalog.msp430.peripherals.special_function.IE1

     1    /*!
     2     *  ======== IE1 ========
     3     *  MSP430 Interrupt Enable Register 1
     4     */
     5    metaonly module IE1 inherits xdc.platform.IPeripheral {
     6
     7        enum NMIE_t {
     8            NMIE_OFF = 0x00,
     9            NMIE = 0x5A00
    10        };
    11
    12        enum WDTIE_t {
    13            WDTIE_OFF = 0x0000,
    14            WDTIE     = (0x0080)
    15        };
    16
    17        enum OFIE_t {
    18            OFIE_OFF = 0x00,    /*! Interrupt not enabled */
    19            OFIE = 0x01         /*! Interrupt enabled */
    20        };
    21
    22        /* IE1 */
    23        struct IE1_t {
    24            NMIE_t      NMIE;
    25            OFIE_t      OFIE;
    26            WDTIE_t     WDTIE;
    27        }
    28
    29        /*!
    30        *  ======== ForceSetDefaultRegister_t ========
    31        *  Force Set Default Register
    32        *
    33        *  Type to store if each register needs to be forced initialized
    34        *  even if the register is in default state.
    35        *
    36        *  @see #ForceSetDefaultRegister_t
    37        */
    38        struct ForceSetDefaultRegister_t {
    39            String     register;
    40            Bool       regForceSet;
    41        }
    42
    43    instance:
    44        /*! IE1, Interrupt Enable Register 1 */
    45        config IE1_t IE1 = {
    46            NMIE        : NMIE_OFF,
    47            OFIE        : OFIE_OFF,
    48            WDTIE       : WDTIE_OFF,
    49        };
    50
    51       /*!
    52        *  ======== getWDTIE ========
    53        *  Gets WDTIE bit
    54        *
    55        *  @see #getWDTIE
    56        */
    57        Bool    getWDTIE();
    58
    59       /*!
    60        *  ======== setWDTIE ========
    61        *  Sets WDTIE bit
    62        *
    63        *  @see #setWDTIE
    64        */
    65        Bool    setWDTIE(Bool set);
    66
    67       /*!
    68        *  ======== getOFIE ========
    69        *  Gets OFIE bit
    70        *
    71        *  @see #getOFIE
    72        */
    73        Bool    getOFIE();
    74
    75       /*!
    76        *  ======== setOFIE ========
    77        *  Sets OFIE bit
    78        *
    79        *  @see #setOFIE
    80        */
    81        Bool    setOFIE(Bool set);
    82
    83       /*!
    84        *  ======== getNMIE ========
    85        *  Gets NMIE bit
    86        *
    87        *  @see #getNMIE
    88        */
    89        Bool    getNMIE();
    90
    91       /*!
    92        *  ======== setNMIE ========
    93        *  Sets NMIE bit
    94        *
    95        *  @see #setNMIE
    96        */
    97        Bool    setNMIE(Bool set);
    98
    99        /*! Determine if each Register needs to be forced set or not */
   100        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
   101        [
   102            { register : "IE1" , regForceSet : false },
   103        ];
   104    }


module ti.catalog.msp430.peripherals.special_function.IE2

     1    /*!
     2     *  ======== IE2 ========
     3     *  MSP430 Interrupt Enable Register 2
     4     */
     5    metaonly module IE2 inherits xdc.platform.IPeripheral {
     6
     7        /* USCI_B0 transmit interrupt enable */
     8        enum UCB0TXIE_t {
     9            UCB0TXIE_OFF = 0x00,            /*! Interrupt disabled */
    10            UCB0TXIE     = 0x08             /*! Interrupt enabled */
    11        };
    12
    13        /* USCI_B0 receive interrupt enable */
    14        enum UCB0RXIE_t {
    15            UCB0RXIE_OFF = 0x00,            /*! Interrupt disabled */
    16            UCB0RXIE     = 0x04             /*! Interrupt enabled */
    17        };
    18
    19        /* USCI_A0 transmit interrupt enable */
    20        enum UCA0TXIE_t {
    21            UCA0TXIE_OFF = 0x00,            /*! Interrupt disabled */
    22            UCA0TXIE     = 0x02             /*! Interrupt enabled */
    23        };
    24
    25        /* USCI_A0 receive interrupt enable */
    26        enum UCA0RXIE_t {
    27            UCA0RXIE_OFF = 0x00,            /*! Interrupt disabled */
    28            UCA0RXIE     = 0x01             /*! Interrupt enabled */
    29        };
    30
    31
    32        /*! IE2, Interrupt Enable Register 2 */
    33        struct IE2_t {
    34            UCB0TXIE_t  UCB0TXIE;           /*! USCI_B0 transmit interrupt enable
    35                                             *  0 Interrupt disabled
    36                                             *  1 Interrupt enabled */
    37            UCB0RXIE_t  UCB0RXIE;           /*! USCI_B0 receive interrupt enable
    38                                             *  0 Interrupt disabled
    39                                             *  1 Interrupt enabled */
    40            UCA0TXIE_t  UCA0TXIE;           /*! USCI_A0 transmit interrupt enable
    41                                             *  0 Interrupt disabled
    42                                             *  1 Interrupt enabled */
    43            UCA0RXIE_t  UCA0RXIE;           /*! USCI_A0 receive interrupt enable
    44                                             *  0 Interrupt disabled
    45                                             *  1 Interrupt enabled */
    46        }
    47
    48        /*!
    49        *  ======== ForceSetDefaultRegister_t ========
    50        *  Force Set Default Register
    51        *
    52        *  Type to store if each register needs to be forced initialized
    53        *  even if the register is in default state.
    54        *
    55        *  @see #ForceSetDefaultRegister_t
    56        */
    57        struct ForceSetDefaultRegister_t {
    58            String     register;
    59            Bool       regForceSet;
    60        }
    61
    62    instance:
    63        /*! IE2, Interrupt Enable Register 2 */
    64        config IE2_t IE2 = {
    65            UCB0TXIE    : UCB0TXIE_OFF,
    66            UCB0RXIE    : UCB0RXIE_OFF,
    67            UCA0TXIE    : UCA0TXIE_OFF,
    68            UCA0RXIE    : UCA0RXIE_OFF,
    69        };
    70
    71       /*!
    72        *  ======== getUCB0TXIE ========
    73        *  Gets UCB0TXIE bit
    74        *
    75        *  @see #getUCB0TXIE
    76        */
    77        Bool    getUCB0TXIE();
    78
    79       /*!
    80        *  ======== setUCB0TXIE ========
    81        *  Sets UCB0TXIE bit
    82        *
    83        *  @see #setUCB0TXIE
    84        */
    85        Bool    setUCB0TXIE(Bool set);
    86
    87       /*!
    88        *  ======== getUCB0RXIE ========
    89        *  Gets UCB0RXIE bit
    90        *
    91        *  @see #getUCB0RXIE
    92        */
    93        Bool    getUCB0RXIE();
    94
    95       /*!
    96        *  ======== setUCB0RXIE ========
    97        *  Sets UCB0RXIE bit
    98        *
    99        *  @see #setUCB0RXIE
   100        */
   101        Bool    setUCB0RXIE(Bool set);
   102
   103       /*!
   104        *  ======== getUCA0TXIE ========
   105        *  Gets UCA0TXIE bit
   106        *
   107        *  @see #getUCA0TXIE
   108        */
   109        Bool    getUCA0TXIE();
   110
   111       /*!
   112        *  ======== setUCA0TXIE ========
   113        *  Sets UCA0TXIE bit
   114        *
   115        *  @see #setUCA0TXIE
   116        */
   117        Bool    setUCA0TXIE(Bool set);
   118
   119       /*!
   120        *  ======== getUCA0RXIE ========
   121        *  Gets UCA0RXIE bit
   122        *
   123        *  @see #getUCA0RXIE
   124        */
   125        Bool    getUCA0RXIE();
   126
   127       /*!
   128        *  ======== setUCA0RXIE ========
   129        *  Sets UCA0RXIE bit
   130        *
   131        *  @see #setUCA0RXIE
   132        */
   133        Bool    setUCA0RXIE(Bool set);
   134
   135        /*! Determine if each Register needs to be forced set or not */
   136        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
   137        [
   138            { register : "IE2" , regForceSet : false },
   139        ];
   140    }


package ti.catalog.msp430.peripherals.special_function

     1    package ti.catalog.msp430.peripherals.special_function {
     2        module IE1;
     3        module IE2;
     4    }


interface ti.catalog.msp430.peripherals.timer.ITimer_A

     1    import ti.catalog.msp430.peripherals.clock.IClock;
     2    //import ti.catalog.msp430.peripherals.gpio.GPIO_MSP430x22xx as GPIO;
     3
     4    /*!
     5     *  ======== ITimer_A ========
     6     *  MSP430 ITimer_A interface
     7     */
     8    metaonly interface ITimer_A inherits xdc.platform.IPeripheral {
     9
    10        enum TASSEL_t {
    11            TASSEL_0 = (0*0x100u),              /*! TACLK */
    12            TASSEL_1 = (1*0x100u),              /*! ACLK  */
    13            TASSEL_2 = (2*0x100u),              /*! SMCLK */
    14            TASSEL_3 = 3*0x100u                 /*! INCLK */
    15        };
    16
    17        enum TACLR_t {
    18            TACLR_OFF = (0x0000),               /* Timer A counter clear */
    19            TACLR = 0x0004                      /* Timer A counter clear */
    20        };
    21
    22        enum TAIE_t {
    23            TAIE_OFF = (0x0000),                /* Timer A counter interrupt enable */
    24            TAIE     = 0x0002                   /* Timer A counter interrupt enable */
    25        };
    26
    27        enum TAIFG_t {
    28            TAIFG_OFF = (0x000),                /* Timer A counter interrupt flag */
    29            TAIFG     = (0x0001)                /* Timer A counter interrupt flag */
    30        };
    31
    32        enum MC_t {
    33            MC_0 = (0*0x10u),                   /*! Stop Mode */
    34            MC_1 = (1*0x10u),                   /*! Up Mode */
    35            MC_2 = (2*0x10u),                   /*! Continuous Mode */
    36            MC_3 = 3*0x10u                      /*! Up/Down Mode */
    37        };
    38
    39        enum ID_t {
    40            ID_0 = (0*0x40u),                   /*! Divider - /1 */
    41            ID_1 = (1*0x40u),                   /*! Divider - /2 */
    42            ID_2 = (2*0x40u),                   /*! Divider - /4 */
    43            ID_3 = 3*0x40u                      /*! Divider - /8 */
    44        };
    45
    46        enum CM_t {
    47            CM_0 = (0*0x4000u),                 /*! No Capture */
    48            CM_1 = (1*0x4000u),                 /*! Rising Edge */
    49            CM_2 = (2*0x4000u),                 /*! Falling Edge */
    50            CM_3 = 3*0x4000u                    /*! Both Edges */
    51        };
    52
    53        enum CCIS_t {
    54            CCIS_0 = (0*0x1000u),               /*! CCIxA */
    55            CCIS_1 = (1*0x1000u),               /*! CCIxB */
    56            CCIS_2 = (2*0x1000u),               /*! GND */
    57            CCIS_3 = 3*0x1000u                  /*! Vcc */
    58        };
    59
    60        enum SCS_t {
    61            SCS_OFF = (0x0000),                 /*! Asynchronous Capture */
    62            SCS = 0x0800                        /*! Sychronous Capture  */
    63        };
    64
    65        enum SCCI_t {
    66            SCCI_OFF = (0x0000),                /*! Latched capture signal (read) */
    67            SCCI = 0x0400                       /*! Latched capture signal (read) */
    68        };
    69
    70        enum CAP_t {
    71            CAP_OFF = (0x0000),                 /*! Compare mode */
    72            CAP = 0x0100                        /*! Capture mode */
    73        };
    74
    75        enum CCIE_t {
    76            CCIE_OFF = (0x0000),                /* Capture/compare interrupt disable */
    77            CCIE = (0x0010)                     /* Capture/compare interrupt enable */
    78        };
    79
    80        enum CCI_t {
    81            CCI_OFF = (0x0008),                 /* Capture input signal (read) */
    82            CCI = (0x0008)                      /* Capture input signal (read) */
    83        };
    84
    85        enum OUT_t {
    86            OUT_OFF = (0x0000),                 /* PWM Output signal if output mode 0 */
    87            OUT = (0x0004)                      /* PWM Output signal if output mode 0 */
    88        };
    89
    90        enum COV_t {
    91            COV_OFF = (0x0000),                 /* Capture/compare overflow flag */
    92            COV = (0x0002)                      /* Capture/compare overflow flag */
    93        };
    94
    95        enum CCIFG_t {
    96            CCIFG_OFF = (0x0000),               /* Capture/compare interrupt flag */
    97            CCIFG = (0x0001)                    /* Capture/compare interrupt flag */
    98        };
    99
   100        enum OUTMOD_t {
   101            OUTMOD_0 = (0*0x20u),               /*! PWM output mode: 0 - OUT bit value */
   102            OUTMOD_1 = (1*0x20u),               /*! PWM output mode: 1 - Set */
   103            OUTMOD_2 = (2*0x20u),               /*! PWM output mode: 2 - PWM toggle/reset */
   104            OUTMOD_3 = (3*0x20u),               /*! PWM output mode: 3 - PWM set/reset */
   105            OUTMOD_4 = (4*0x20u),               /*! PWM output mode: 4 - Toggle */
   106            OUTMOD_5 = (5*0x20u),               /*! PWM output mode: 5 - Reset */
   107            OUTMOD_6 = (6*0x20u),               /*! PWM output mode: 6 - PWM toggle/set */
   108            OUTMOD_7 = 7*0x20u                  /*! PWM output mode: 7 - PWM reset/set */
   109        };
   110
   111        /*! TA3IV Definitions */
   112        enum IVValues {
   113            TAIV_NONE = 0x0000,                 /*! No Interrupt pending */
   114            TAIV_TACCR1 = 0x0002,               /*! TACCR1_CCIFG */
   115            TAIV_TACCR2 = 0x0004,               /*! TACCR2_CCIFG */
   116            TAIV_6 = 0x0006,                    /*! Reserved */
   117            TAIV_8 = 0x0008,                    /*! Reserved */
   118            TAIV_TAIFG = 0x000A                 /*! TAIFG */
   119        };
   120
   121       /*!
   122        *  ======== TACTL_t ========
   123        *  Timer_A Control Register
   124        *
   125        *  @see #TACTL_t
   126        */
   127        struct TACTL_t {
   128            TASSEL_t    TASSEL;     /*! Timer_A clock source select
   129                                      *  00  TACLK
   130                                      *  01  ACLK
   131                                      *  10  SMCLK
   132                                      *  11  INCLK */
   133            ID_t        ID;         /*! Input divider. These bits select the divider for the input clock.
   134                                      *  00 /1
   135                                      *  01 /2
   136                                      *  10 /4
   137                                      *  11 /8 */
   138            MC_t        MC;         /*! Mode control. Setting MCx = 00h when Timer_A is not in use conserves
   139                                      * power.
   140                                      *  00  Stop mode: the timer is halted.
   141                                      *  01  Up mode: the timer counts up to TACCR0.
   142                                      *  10  Continuous mode: the timer counts up to 0FFFFh.
   143                                      *  11  Up/down mode: the timer counts up to TACCR0 then down to 0000h. */
   144            TACLR_t     TACLR;      /*! Timer_A clear. Setting this bit resets TAR, the clock divider, and the count
   145                                      * direction. The TACLR bit is automatically reset and is always read as zero. */
   146            TAIE_t      TAIE;       /*! Timer_A interrupt enable. This bit enables the TAIFG interrupt request.
   147                                      *  0  Interrupt disabled
   148                                      *  1  Interrupt enabled */
   149            TAIFG_t     TAIFG;      /*! Timer_A interrupt flag
   150                                      *  0  No interrupt pending
   151                                      *  1  Interrupt pending */
   152        }
   153
   154       /*!
   155        *  ======== TACCTLx_t ========
   156        *  Capture/Compare Control Register
   157        *
   158        *  @see #TACCTLx_t
   159        */
   160        struct TACCTLx_t {
   161            CM_t       CM;          /*! Capture mode
   162                                      *  00 No capture
   163                                      *  01 Capture on rising edge
   164                                      *  10 Capture on falling edge
   165                                      *  11 Capture on both rising and falling edges */
   166            CCIS_t     CCIS;        /*! Capture/compare input select. These bits select the TACCRx input signal.
   167                                      * See the device-specific data sheet for specific signal connections.
   168                                      *  00  CCIxA
   169                                      *  01  CCIxB
   170                                      *  10  GND
   171                                      *  11  VCC */
   172            SCS_t      SCS;         /*! Synchronize capture source. This bit is used to synchronize the capture input
   173                                      * signal with the timer clock.
   174                                      *  0  Asynchronous capture
   175                                      *  1  Synchronous capture */
   176            SCCI_t     SCCI;        /*! Synchronized capture/compare input. The selected CCI input signal is
   177                                      * latched with the EQUx signal and can be read via this bit */
   178            CAP_t      CAP;         /*! Capture mode
   179                                      *  0  Compare mode
   180                                      *  1  Capture mode */
   181            OUTMOD_t   OUTMOD;      /*! Output mode. Modes 2, 3, 6, and 7 are not useful for TACCR0 because
   182                                      * EQUx = EQU0.
   183                                      *  000  OUT bit value
   184                                      *  001  Set
   185                                      *  010  Toggle/reset
   186                                      *  011  Set/reset
   187                                      *  100  Toggle
   188                                      *  101  Reset
   189                                      *  110  Toggle/set
   190                                      *  111  Reset/set */
   191            CCIE_t     CCIE;        /*! Capture/compare interrupt enable. This bit enables the interrupt request of
   192                                      * the corresponding CCIFG flag.
   193                                      *  0  Interrupt disabled
   194                                      *  1  Interrupt enabled */
   195            CCI_t      CCI;         /*! Capture/compare input. The selected input signal can be read by this bit. */
   196            OUT_t      OUT;         /*! Output. For output mode 0, this bit directly controls the state of the output.
   197                                      *  0   Output low
   198                                      *  1   Output high */
   199            COV_t      COV;         /*! Capture overflow. This bit indicates a capture overflow occurred. COV must
   200                                      *  be reset with software.
   201                                      *  0  No capture overflow occurred
   202                                      *  1  Capture overflow occurred */
   203            CCIFG_t    CCIFG;       /*! Capture/compare interrupt flag
   204                                      *  0  No interrupt pending
   205                                      *  1  Interrupt pending */
   206        }
   207
   208        /*!
   209        *  ======== ForceSetDefaultRegister_t ========
   210        *  Force Set Default Register
   211        *
   212        *  Type to store if each register needs to be forced initialized
   213        *  even if the register is in default state.
   214        *
   215        *  @see #ForceSetDefaultRegister_t
   216        */
   217        struct ForceSetDefaultRegister_t {
   218            String     register;
   219            Bool       regForceSet;
   220        }
   221
   222        create(IClock.Instance clock);
   223
   224    instance:
   225        /*!
   226         *  ======== baseAddr ========
   227         *  Address of the peripheral's control register.
   228         *
   229         *  A peripheral's registers are commonly accessed through a structure
   230         *  that defines the offsets of a particular register from the lowest
   231         *  address mapped to a peripheral. That lowest address is specified by
   232         *  this parameter.
   233         */
   234        config UInt baseAddr;
   235
   236        /*!
   237         *  ======== intNum ========
   238         *  Interrupt source number
   239         *
   240         */
   241        config UInt intNum;
   242
   243            /*! Timer_A TACLK */
   244            config float TACLK = 0;
   245
   246            /*! Timer_A INCLK */
   247            config float INCLK = 0;
   248
   249        /*! @_nodoc */
   250        config IClock.Instance clock;
   251
   252        /* Returns the number of Timers */
   253        UChar getNumberOfTimers();
   254    }


interface ti.catalog.msp430.peripherals.timer.ITimer_B

     1    import ti.catalog.msp430.peripherals.clock.IClock;
     2
     3    /*!
     4     *  ======== ITimer_B ========
     5     *  MSP430 ITimer_B interface
     6     */
     7    metaonly interface ITimer_B inherits xdc.platform.IPeripheral {
     8
     9        enum TBCLGRP_t {
    10            TBCLGRP_0 = (0*0x100u),             /* */
    11            TBCLGRP_1 = (1*0x100u),             /* */
    12            TBCLGRP_2 = (2*0x100u),             /* */
    13            TBCLGRP_3 = 3*0x100u                /* */
    14        };
    15
    16        enum CNTL_t {
    17            CNTL_0 = (0*0x100u),                /*! 16-bit, TBR(max) = 0FFFFh */
    18            CNTL_1 = (1*0x100u),                /*! 12-bit, TBR(max) = 0FFFh  */
    19            CNTL_2 = (2*0x100u),                /*! 10-bit, TBR(max) = 03FFh */
    20            CNTL_3 = 3*0x100u                   /*!  8-bit, TBR(max) = 0FFh */
    21        };
    22
    23        enum TBSSEL_t {
    24            TBSSEL_0 = (0*0x100u),              /*! TBCLK */
    25            TBSSEL_1 = (1*0x100u),              /*! ACLK  */
    26            TBSSEL_2 = (2*0x100u),              /*! SMCLK */
    27            TBSSEL_3 = 3*0x100u                 /*! INCLK */
    28        };
    29
    30        enum TBCLR_t {
    31            TBCLR_OFF = (0x0000),               /* Timer A counter clear */
    32            TBCLR = 0x0004                      /* Timer A counter clear */
    33        };
    34
    35        enum TBIE_t {
    36            TBIE_OFF = (0x0000),                /* Timer A counter interrupt enable */
    37            TBIE     = 0x0002                   /* Timer A counter interrupt enable */
    38        };
    39
    40        enum TBIFG_t {
    41            TBIFG_OFF = (0x000),                /* Timer A counter interrupt flag */
    42            TBIFG     = (0x0001)                /* Timer A counter interrupt flag */
    43        };
    44
    45        enum MC_t {
    46            MC_0 = (0*0x10u),                   /*! Stop Mode */
    47            MC_1 = (1*0x10u),                   /*! Up Mode */
    48            MC_2 = (2*0x10u),                   /*! Continuous Mode */
    49            MC_3 = 3*0x10u                      /*! Up/Down Mode */
    50        };
    51
    52        enum ID_t {
    53            ID_0 = (0*0x40u),                   /*! Divider - /1 */
    54            ID_1 = (1*0x40u),                   /*! Divider - /2 */
    55            ID_2 = (2*0x40u),                   /*! Divider - /4 */
    56            ID_3 = 3*0x40u                      /*! Divider - /8 */
    57        };
    58
    59        enum CM_t {
    60            CM_0 = (0*0x4000u),                 /*! No Capture */
    61            CM_1 = (1*0x4000u),                 /*! Rising Edge */
    62            CM_2 = (2*0x4000u),                 /*! Falling Edge */
    63            CM_3 = 3*0x4000u                    /*! Both Edges */
    64        };
    65
    66        enum CCIS_t {
    67            CCIS_0 = (0*0x1000u),               /*! CCIxA */
    68            CCIS_1 = (1*0x1000u),               /*! CCIxB */
    69            CCIS_2 = (2*0x1000u),               /*! GND */
    70            CCIS_3 = 3*0x1000u                  /*! Vcc */
    71        };
    72
    73        enum SCS_t {
    74            SCS_OFF = (0x0000),                 /* Asynchronous Capture */
    75            SCS = 0x0800                        /* Sychronous Capture  */
    76        };
    77
    78        enum CLLD_t {
    79            CLLD_0 = (0*0x1000u),               /* TBCLx loads on write to TBCCRx */
    80            CLLD_1 = (1*0x1000u),               /* TBCLx loads when TBR counts to 0 */
    81            CLLD_2 = (2*0x1000u),               /* TBCLx loads when TBR counts to 0 (up or continuous mode) */
    82            CLLD_3 = 3*0x1000u                  /* TBCLx loads when TBR counts to TBCLx */
    83        };
    84
    85        enum SCCI_t {
    86            SCCI_OFF = (0x0000),                /* Latched capture signal (read) */
    87            SCCI = 0x0400                       /* Latched capture signal (read) */
    88        };
    89
    90        enum CAP_t {
    91            CAP_OFF = (0x0000),                 /* Compare mode */
    92            CAP = 0x0100                        /* Capture mode */
    93        };
    94
    95        enum CCIE_t {
    96            CCIE_OFF = (0x0000),                /* Capture/compare interrupt disable */
    97            CCIE = (0x0010)                     /* Capture/compare interrupt enable */
    98        };
    99
   100        enum CCI_t {
   101            CCI_OFF = (0x0008),                 /* Capture input signal (read) */
   102            CCI = (0x0008)                      /* Capture input signal (read) */
   103        };
   104
   105        enum OUT_t {
   106            OUT_OFF = (0x0000),                 /* PWM Output signal if output mode 0 */
   107            OUT = (0x0004)                      /* PWM Output signal if output mode 0 */
   108        };
   109
   110        enum COV_t {
   111            COV_OFF = (0x0000),                 /* Capture/compare overflow flag */
   112            COV = (0x0002)                      /* Capture/compare overflow flag */
   113        };
   114
   115        enum CCIFG_t {
   116            CCIFG_OFF = (0x0000),               /* Capture/compare interrupt flag */
   117            CCIFG = (0x0001)                    /* Capture/compare interrupt flag */
   118        };
   119
   120        enum OUTMOD_t {
   121            OUTMOD_0 = (0*0x20u),               /*! PWM output mode: 0 - OUT bit value */
   122            OUTMOD_1 = (1*0x20u),               /*! PWM output mode: 1 - Set */
   123            OUTMOD_2 = (2*0x20u),               /*! PWM output mode: 2 - PWM toggle/reset */
   124            OUTMOD_3 = (3*0x20u),               /*! PWM output mode: 3 - PWM set/reset */
   125            OUTMOD_4 = (4*0x20u),               /*! PWM output mode: 4 - Toggle */
   126            OUTMOD_5 = (5*0x20u),               /*! PWM output mode: 5 - Reset */
   127            OUTMOD_6 = (6*0x20u),               /*! PWM output mode: 6 - PWM toggle/set */
   128            OUTMOD_7 = 7*0x20u                  /*! PWM output mode: 7 - PWM reset/set */
   129        };
   130
   131       /*!
   132        *  ======== TBCTL_t ========
   133        *  Timer_B Control Register
   134        *
   135        *  @see #TBCTL_t
   136        */
   137        struct TBCTL_t {
   138            TBCLGRP_t   TBCLGRP;    /*! TBCLx group
   139                                      *  00  Each TBCLx latch loads independently
   140                                      *  01  TBCL1+TBCL2 (TBCCR1 CLLDx bits control the update)
   141                                      *      TBCL3+TBCL4 (TBCCR3 CLLDx bits control the update)
   142                                      *      TBCL5+TBCL6 (TBCCR5 CLLDx bits control the update)
   143                                      *      TBCL0 independent
   144                                      *  10  TBCL1+TBCL2+TBCL3 (TBCCR1 CLLDx bits control the update)
   145                                      *      TBCL4+TBCL5+TBCL6 (TBCCR4 CLLDx bits control the update)
   146                                      *      TBCL0 independent
   147                                      *  11  TBCL0+TBCL1+TBCL2+TBCL3+TBCL4+TBCL5+TBCL6
   148                                      *      (TBCCR1 CLLDx bits control the update) */
   149            CNTL_t      CNTL;       /*! Counter Length
   150                                      *  00  16-bit, TBR(max) = 0FFFFh
   151                                      *  01  12-bit, TBR(max) = 0FFFh
   152                                      *  10  10-bit, TBR(max) = 03FFh
   153                                      *  11  8-bit, TBR(max) = 0FFh */
   154            TBSSEL_t    TBSSEL;     /*! Timer_B clock source select.
   155                                      *  00  TBCLK
   156                                      *  01  ACLK
   157                                      *  10  SMCLK
   158                                      *  11  Inverted TBCLK */
   159            ID_t        ID;         /*! Input divider. These bits select the divider for the input clock.
   160                                      *  00  /1
   161                                      *  01  /2
   162                                      *  10  /4
   163                                      *  11  /8 */
   164            MC_t        MC;         /*! Mode control. Setting MCx = 00h when Timer_B is not in use conserves
   165                                      * power.
   166                                      *  00  Stop mode: the timer is halted
   167                                      *  01  Up mode: the timer counts up to TBCL0
   168                                      *  10  Continuous mode: the timer counts up to the value set by CNTLx
   169                                      *  11  Up/down mode: the timer counts up to TBCL0 and down to 0000h */
   170            TBCLR_t     TBCLR;      /*! Timer_B clear. Setting this bit resets TBR, the clock divider, and the count
   171                                      * direction. The TBCLR bit is automatically reset and is always read as zero. */
   172            TBIE_t      TBIE;       /*! Timer_B interrupt enable. This bit enables the TBIFG interrupt request.
   173                                      *  0 Interrupt disabled
   174                                      *  1 Interrupt enabled */
   175            TBIFG_t     TBIFG;      /*! Timer_B interrupt flag.
   176                                      *  0 No interrupt pending
   177                                      *  1 Interrupt pending */
   178        }
   179
   180        /* TBCCTLx */
   181        struct TBCCTLx_t {
   182            CM_t       CM;          /*! Capture mode
   183                                      *  00  No capture
   184                                      *  01  Capture on rising edge
   185                                      *  10  Capture on falling edge
   186                                      *  11  Capture on both rising and falling edges */
   187            CCIS_t     CCIS;        /*! Capture/compare input select. These bits select the TBCCRx input signal.
   188                                      * See the device-specific data sheet for specific signal connections.
   189                                      *  00  CCIxA
   190                                      *  01  CCIxB
   191                                      *  10  GND
   192                                      *  11  VCC */
   193            SCS_t      SCS;         /*! Synchronize capture source. This bit is used to synchronize the capture input
   194                                      * signal with the timer clock.
   195                                      *  0  Asynchronous capture
   196                                      *  1  Synchronous capture */
   197            CLLD_t     CLLD;        /*! Compare latch load. These bits select the compare latch load event.
   198                                      *  00  TBCLx loads on write to TBCCRx
   199                                      *  01  TBCLx loads when TBR counts to 0
   200                                      *  10  TBCLx loads when TBR counts to 0 (up or continuous mode)
   201                                      *      TBCLx loads when TBR counts to TBCL0 or to 0 (up/down mode)
   202                                      *  11  TBCLx loads when TBR counts to TBCLx */
   203            CAP_t      CAP;         /*! Capture mode
   204                                      *  0  Compare mode
   205                                      *  1  Capture mode */
   206            OUTMOD_t   OUTMOD;      /*! Output mode. Modes 2, 3, 6, and 7 are not useful for TBCL0 because EQUx
   207                                      * = EQU0.
   208                                      *  000  OUT bit value
   209                                      *  001  Set
   210                                      *  010  Toggle/reset
   211                                      *  011  Set/reset
   212                                      *  100  Toggle
   213                                      *  101  Reset
   214                                      *  110  Toggle/set
   215                                      *  111  Reset/set */
   216            CCIE_t     CCIE;        /*! Capture/compare interrupt enable. This bit enables the interrupt request of
   217                                      * the corresponding CCIFG flag.
   218                                      *  0  Interrupt disabled
   219                                      *  1  Interrupt enabled */
   220            CCI_t      CCI;         /*! Capture/compare input. The selected input signal can be read by this bit. */
   221            OUT_t      OUT;         /*! Output. For output mode 0, this bit directly controls the state of the output.
   222                                      *  0  Output low
   223                                      *  1  Output high */
   224            COV_t      COV;         /*! Capture overflow. This bit indicates a capture overflow occurred. COV must
   225                                      * be reset with software.
   226                                      *  0  No capture overflow occurred
   227                                      *  1  Capture overflow occurred */
   228            CCIFG_t    CCIFG;       /*! Capture/compare interrupt flag
   229                                      *  0  No interrupt pending
   230                                      *  1  Interrupt pending */
   231        }
   232
   233        /*!
   234        *  ======== ForceSetDefaultRegister_t ========
   235        *  Force Set Default Register
   236        *
   237        *  Type to store if each register needs to be forced initialized
   238        *  even if the register is in default state.
   239        *
   240        *  @see #ForceSetDefaultRegister_t
   241        */
   242        struct ForceSetDefaultRegister_t {
   243            String     register;
   244            Bool       regForceSet;
   245        }
   246
   247        create(IClock.Instance clock);
   248
   249    instance:
   250        /*!
   251         *  ======== baseAddr ========
   252         *  Address of the peripheral's control register.
   253         *
   254         *  A peripheral's registers are commonly accessed through a structure
   255         *  that defines the offsets of a particular register from the lowest
   256         *  address mapped to a peripheral. That lowest address is specified by
   257         *  this parameter.
   258         */
   259        config UInt baseAddr;
   260
   261        /*!
   262         *  ======== intNum ========
   263         *  Interrupt source number
   264         *
   265         */
   266        config UInt intNum;
   267
   268        /*! Timer_B TBCLK */
   269            config float TBCLK = 0;
   270
   271            /*! Timer_B INCLK */
   272            config float INCLK = 0;
   273
   274        /* Returns the number of Timers */
   275        UChar getNumberOfTimers();
   276
   277        /*! @_nodoc */
   278        config IClock.Instance clock;
   279    }


package ti.catalog.msp430.peripherals.timer

     1    requires ti.catalog.msp430.peripherals.clock;
     2
     3    package ti.catalog.msp430.peripherals.timer {
     4        module Timer_A3, Timer_A5, Timer_B3, Timer_B7;
     5        interface ITimer_A, ITimer_B;
     6    }


module ti.catalog.msp430.peripherals.timer.Timer_A3

     1    /*!
     2     *  ======== Timer_A3 ========
     3     *  MSP430 Timer_A3 timer
     4     */
     5    metaonly module Timer_A3 inherits ITimer_A {
     6
     7    instance:
     8        /*! TACTL, Timer_A3 Control Register */
     9        config TACTL_t TACTL = {
    10            TASSEL : TASSEL_0,
    11            ID : ID_0,
    12            MC : MC_0,
    13            TACLR : TACLR_OFF,
    14            TAIE : TAIE_OFF,
    15            TAIFG : TAIFG_OFF
    16        };
    17
    18        /*! TACCTL0, Capture/Compare Control Register 0 */
    19        config TACCTLx_t TACCTL0 = {
    20            CM : CM_0,
    21            CCIS : CCIS_0,
    22            SCS : SCS_OFF,
    23            SCCI : SCCI_OFF,
    24            CAP : CAP_OFF,
    25            OUTMOD : OUTMOD_0,
    26            CCIE : CCIE_OFF,
    27            CCI : CCI_OFF,
    28            OUT : OUT_OFF,
    29            COV : COV_OFF,
    30            CCIFG : CCIFG_OFF
    31        };
    32
    33        /*! TACCTL1, Capture/Compare Control Register 1 */
    34        config TACCTLx_t TACCTL1 = {
    35            CM : CM_0,
    36            CCIS : CCIS_0,
    37            SCS : SCS_OFF,
    38            SCCI : SCCI_OFF,
    39            CAP : CAP_OFF,
    40            OUTMOD : OUTMOD_0,
    41            CCIE : CCIE_OFF,
    42            CCI : CCI_OFF,
    43            OUT : OUT_OFF,
    44            COV : COV_OFF,
    45            CCIFG : CCIFG_OFF
    46        };
    47
    48        /*! TACCTL2, Capture/Compare Control Register 2 */
    49        config TACCTLx_t TACCTL2 = {
    50            CM : CM_0,
    51            CCIS : CCIS_0,
    52            SCS : SCS_OFF,
    53            SCCI : SCCI_OFF,
    54            CAP : CAP_OFF,
    55            OUTMOD : OUTMOD_0,
    56            CCIE : CCIE_OFF,
    57            CCI : CCI_OFF,
    58            OUT : OUT_OFF,
    59            COV : COV_OFF,
    60            CCIFG : CCIFG_OFF
    61        };
    62
    63        /*! TACCR0, Timer_A Capture/Compare Register 0 */
    64        config int TACCR0 = 0;
    65        /*! TACCR1, Timer_A Capture/Compare Register 1 */
    66        config int TACCR1 = 0;
    67        /*! TACCR2, Timer_A Capture/Compare Register 2 */
    68        config int TACCR2 = 0;
    69
    70        /*! Determine if each Register needs to be forced set or not */
    71        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    72        [
    73            { register : "TACTL"   , regForceSet : false },
    74            { register : "TACCTL0" , regForceSet : false },
    75            { register : "TACCTL1" , regForceSet : false },
    76            { register : "TACCTL2" , regForceSet : false },
    77            { register : "TACCR0"  , regForceSet : false },
    78            { register : "TACCR1"  , regForceSet : false },
    79            { register : "TACCR2"  , regForceSet : false }
    80        ];
    81
    82        /*!
    83        *  ======== getTimer_A_OUT ========
    84        *  Returns Timer_A OUT in ms rising-edge interval based on a channel input
    85        *
    86        *  This function calculates a time base rising-edge of clock based on
    87        *  clock source, TxCCRx register and OUTMOD settings.
    88        *
    89        *  @see #getTimer_A_OUT
    90        */
    91        Float getTimer_A_OUT(UChar channel);
    92    }


module ti.catalog.msp430.peripherals.timer.Timer_A5

     1    /*!
     2     *  ======== Timer_A5 ========
     3     *  MSP430 Timer_A5 timer
     4     */
     5    metaonly module Timer_A5 inherits ITimer_A {
     6
     7    instance:
     8
     9        override config string name = "TimerA5";
    10
    11        /*! Timer A5 Control Register */
    12        config TACTL_t TAxCTL = {
    13            TASSEL : TASSEL_0,
    14            ID : ID_0,
    15            MC : MC_0,
    16            TACLR : TACLR_OFF,
    17            TAIE : TAIE_OFF,
    18            TAIFG : TAIFG_OFF
    19        };
    20
    21        /*! Capture/Compare Control 0 */
    22        config TACCTLx_t TACCTL0 = {
    23            CM : CM_0,
    24            CCIS : CCIS_0,
    25            SCS : SCS_OFF,
    26            SCCI : SCCI_OFF,
    27            CAP : CAP_OFF,
    28            OUTMOD : OUTMOD_0,
    29            CCIE : CCIE_OFF,
    30            CCI : CCI_OFF,
    31            OUT : OUT_OFF,
    32            COV : COV_OFF,
    33            CCIFG : CCIFG_OFF
    34        };
    35
    36        /*! Capture/Compare Control 1 */
    37        config TACCTLx_t TACCTL1 = {
    38            CM : CM_0,
    39            CCIS : CCIS_0,
    40            SCS : SCS_OFF,
    41            SCCI : SCCI_OFF,
    42            CAP : CAP_OFF,
    43            OUTMOD : OUTMOD_0,
    44            CCIE : CCIE_OFF,
    45            CCI : CCI_OFF,
    46            OUT : OUT_OFF,
    47            COV : COV_OFF,
    48            CCIFG : CCIFG_OFF
    49        };
    50
    51        /*! Capture/Compare Control 2 */
    52        config TACCTLx_t TACCTL2 = {
    53            CM : CM_0,
    54            CCIS : CCIS_0,
    55            SCS : SCS_OFF,
    56            SCCI : SCCI_OFF,
    57            CAP : CAP_OFF,
    58            OUTMOD : OUTMOD_0,
    59            CCIE : CCIE_OFF,
    60            CCI : CCI_OFF,
    61            OUT : OUT_OFF,
    62            COV : COV_OFF,
    63            CCIFG : CCIFG_OFF
    64        };
    65
    66        /*! Capture/Compare Control 3 */
    67        config TACCTLx_t TACCTL3 = {
    68            CM : CM_0,
    69            CCIS : CCIS_0,
    70            SCS : SCS_OFF,
    71            SCCI : SCCI_OFF,
    72            CAP : CAP_OFF,
    73            OUTMOD : OUTMOD_0,
    74            CCIE : CCIE_OFF,
    75            CCI : CCI_OFF,
    76            OUT : OUT_OFF,
    77            COV : COV_OFF,
    78            CCIFG : CCIFG_OFF
    79        };
    80
    81        /*! Capture/Compare Control 4 */
    82        config TACCTLx_t TACCTL4 = {
    83            CM : CM_0,
    84            CCIS : CCIS_0,
    85            SCS : SCS_OFF,
    86            SCCI : SCCI_OFF,
    87            CAP : CAP_OFF,
    88            OUTMOD : OUTMOD_0,
    89            CCIE : CCIE_OFF,
    90            CCI : CCI_OFF,
    91            OUT : OUT_OFF,
    92            COV : COV_OFF,
    93            CCIFG : CCIFG_OFF
    94        };
    95
    96        config int TACCR0 = 0;                         /*! Capture/Compare 0 */
    97        config int TACCR1 = 0;                         /*! Capture/Compare 1 */
    98        config int TACCR2 = 0;                         /*! Capture/Compare 2 */
    99        config int TACCR3 = 0;                         /*! Capture/Compare 3 */
   100        config int TACCR4 = 0;                         /*! Capture/Compare 4 */
   101
   102            /*! Determine if each Register needs to be forced set or not */
   103            readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
   104            [
   105                    { register : "TACTL"   , regForceSet : false },
   106                    { register : "TACCTL0" , regForceSet : false },
   107                    { register : "TACCTL1" , regForceSet : false },
   108                    { register : "TACCTL2" , regForceSet : false },
   109                    { register : "TACCTL3" , regForceSet : false },
   110                    { register : "TACCTL4" , regForceSet : false },
   111                    { register : "TACCR0"  , regForceSet : false },
   112                    { register : "TACCR1"  , regForceSet : false },
   113                    { register : "TACCR2"  , regForceSet : false },
   114                    { register : "TACCR3"  , regForceSet : false },
   115                    { register : "TACCR4"  , regForceSet : false }
   116            ];
   117    }


module ti.catalog.msp430.peripherals.timer.Timer_B3

     1    /*!
     2     *  ======== Timer_B3 ========
     3     *  MSP430 Timer_B timer
     4     */
     5    metaonly module Timer_B3 inherits ITimer_B {
     6
     7        /*! TB3IV Definitions */
     8        enum IVValues {
     9            TBIV_NONE = 0x0000,                 /*! No Interrupt pending */
    10            TBIV_TBCCR1 = 0x0002,               /*! TBCCR1_CCIFG */
    11            TBIV_TBCCR2 = 0x0004,               /*! TBCCR2_CCIFG */
    12            TBIV_6 = 0x0006,                    /*! Reserved */
    13            TBIV_8 = 0x0008,                    /*! Reserved */
    14            TBIV_TBIFG = 0x000A                 /*! TBIFG */
    15        };
    16
    17    instance:
    18        /*! TBCTL, Timer_B3 Control Register */
    19        config TBCTL_t TBCTL = {
    20            TBCLGRP : TBCLGRP_0,
    21            CNTL : CNTL_0,
    22            TBSSEL : TBSSEL_0,
    23            ID : ID_0,
    24            MC : MC_0,
    25            TBCLR : TBCLR_OFF,
    26            TBIE : TBIE_OFF,
    27            TBIFG : TBIFG_OFF
    28        };
    29
    30        /*! TBCCTL0, Capture/Compare Control Register 0 */
    31        config TBCCTLx_t TBCCTL0 = {
    32            CM : CM_0,
    33            CCIS : CCIS_0,
    34            SCS : SCS_OFF,
    35            CLLD : CLLD_0,
    36            CAP : CAP_OFF,
    37            OUTMOD : OUTMOD_0,
    38            CCIE : CCIE_OFF,
    39            CCI : CCI_OFF,
    40            OUT : OUT_OFF,
    41            COV : COV_OFF,
    42            CCIFG : CCIFG_OFF
    43        };
    44
    45        /*! TBCCTL1, Capture/Compare Control Register 1 */
    46        config TBCCTLx_t TBCCTL1 = {
    47            CM : CM_0,
    48            CCIS : CCIS_0,
    49            SCS : SCS_OFF,
    50            CLLD : CLLD_0,
    51            CAP : CAP_OFF,
    52            OUTMOD : OUTMOD_0,
    53            CCIE : CCIE_OFF,
    54            CCI : CCI_OFF,
    55            OUT : OUT_OFF,
    56            COV : COV_OFF,
    57            CCIFG : CCIFG_OFF
    58        };
    59
    60        /*! TBCCTL2, Capture/Compare Control Register 2 */
    61        config TBCCTLx_t TBCCTL2 = {
    62            CM : CM_0,
    63            CCIS : CCIS_0,
    64            SCS : SCS_OFF,
    65            CLLD : CLLD_0,
    66            CAP : CAP_OFF,
    67            OUTMOD : OUTMOD_0,
    68            CCIE : CCIE_OFF,
    69            CCI : CCI_OFF,
    70            OUT : OUT_OFF,
    71            COV : COV_OFF,
    72            CCIFG : CCIFG_OFF
    73        };
    74
    75        /*! TBCCR0, Timer_B Capture/Compare Register 0 */
    76        config int TBCCR0 = 0;
    77        /*! TBCCR1, Timer_B Capture/Compare Register 1 */
    78        config int TBCCR1 = 0;
    79        /*! TBCCR2, Timer_B Capture/Compare Register 2 */
    80        config int TBCCR2 = 0;
    81
    82            /*! Determine if each Register needs to be forced set or not */
    83            readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    84            [
    85                    { register : "TBCTL"   , regForceSet : false },
    86                    { register : "TBCCTL0" , regForceSet : false },
    87                    { register : "TBCCTL1" , regForceSet : false },
    88                    { register : "TBCCTL2" , regForceSet : false },
    89                    { register : "TBCCR0"  , regForceSet : false },
    90                    { register : "TBCCR1"  , regForceSet : false },
    91                    { register : "TBCCR2"  , regForceSet : false }
    92            ];
    93    }


module ti.catalog.msp430.peripherals.timer.Timer_B7

     1    /*!
     2     *  ======== Timer_B7 ========
     3     *  MSP430 Timer_B7 timer
     4     */
     5    metaonly module Timer_B7 inherits ITimer_B {
     6
     7        /*! TB7IV Definitions */
     8        enum IVValues {
     9            TBIV_NONE = 0x0000,                 /*! No Interrupt pending */
    10            TBIV_TBCCR1 = 0x0002,               /*! TBCCR1_CCIFG */
    11            TBIV_TBCCR2 = 0x0004,               /*! TBCCR2_CCIFG */
    12            TBIV_TBCCR3 = 0x0006,               /*! TBCCR3_CCIFG */
    13            TBIV_TBCCR4 = 0x0008,               /*! TBCCR4_CCIFG */
    14            TBIV_TBCCR5 = 0x000A,               /*! TBCCR5_CCIFG */
    15            TBIV_TBCCR6 = 0x000C,               /*! TBCCR6_CCIFG */
    16            TBIV_TBIFG = 0x000E                 /*! TBIFG */
    17        };
    18
    19    instance:
    20        /*! TBCTL, Timer_B7 Control Register */
    21        config TBCTL_t TBCTL = {
    22            TBCLGRP : TBCLGRP_0,
    23            CNTL : CNTL_0,
    24            TBSSEL : TBSSEL_0,
    25            ID : ID_0,
    26            MC : MC_0,
    27            TBCLR : TBCLR_OFF,
    28            TBIE : TBIE_OFF,
    29            TBIFG : TBIFG_OFF
    30        };
    31
    32        /*! TBCCTL0, Capture/Compare Control Register 0 */
    33        config TBCCTLx_t TBCCTL0 = {
    34            CM : CM_0,
    35            CCIS : CCIS_0,
    36            SCS : SCS_OFF,
    37            CLLD : CLLD_0,
    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        /*! TBCCTL1, Capture/Compare Control Register 1 */
    48        config TBCCTLx_t TBCCTL1 = {
    49            CM : CM_0,
    50            CCIS : CCIS_0,
    51            SCS : SCS_OFF,
    52            CLLD : CLLD_0,
    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        /*! TBCCTL2, Capture/Compare Control Register 2 */
    63        config TBCCTLx_t TBCCTL2 = {
    64            CM : CM_0,
    65            CCIS : CCIS_0,
    66            SCS : SCS_OFF,
    67            CLLD : CLLD_0,
    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        /*! TBCCTL3, Capture/Compare Control Register 3 */
    78        config TBCCTLx_t TBCCTL3 = {
    79            CM : CM_0,
    80            CCIS : CCIS_0,
    81            SCS : SCS_OFF,
    82            CLLD : CLLD_0,
    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        /*! TBCCTL4, Capture/Compare Control Register 4 */
    93        config TBCCTLx_t TBCCTL4 = {
    94            CM : CM_0,
    95            CCIS : CCIS_0,
    96            SCS : SCS_OFF,
    97            CLLD : CLLD_0,
    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        /*! TBCCTL5, Capture/Compare Control Register 5 */
   108        config TBCCTLx_t TBCCTL5 = {
   109            CM : CM_0,
   110            CCIS : CCIS_0,
   111            SCS : SCS_OFF,
   112            CLLD : CLLD_0,
   113            CAP : CAP_OFF,
   114            OUTMOD : OUTMOD_0,
   115            CCIE : CCIE_OFF,
   116            CCI : CCI_OFF,
   117            OUT : OUT_OFF,
   118            COV : COV_OFF,
   119            CCIFG : CCIFG_OFF
   120        };
   121
   122        /*! TBCCTL6, Capture/Compare Control Register 6 */
   123        config TBCCTLx_t TBCCTL6 = {
   124            CM : CM_0,
   125            CCIS : CCIS_0,
   126            SCS : SCS_OFF,
   127            CLLD : CLLD_0,
   128            CAP : CAP_OFF,
   129            OUTMOD : OUTMOD_0,
   130            CCIE : CCIE_OFF,
   131            CCI : CCI_OFF,
   132            OUT : OUT_OFF,
   133            COV : COV_OFF,
   134            CCIFG : CCIFG_OFF
   135        };
   136
   137        /*! TBCCR0, Timer_B Capture/Compare Register 0 */
   138        config int TBCCR0 = 0;
   139        /*! TBCCR1, Timer_B Capture/Compare Register 1 */
   140        config int TBCCR1 = 0;
   141        /*! TBCCR2, Timer_B Capture/Compare Register 2 */
   142        config int TBCCR2 = 0;
   143        /*! TBCCR3, Timer_B Capture/Compare Register 3 */
   144        config int TBCCR3 = 0;
   145        /*! TBCCR4, Timer_B Capture/Compare Register 4 */
   146        config int TBCCR4 = 0;
   147        /*! TBCCR5, Timer_B Capture/Compare Register 5 */
   148        config int TBCCR5 = 0;
   149        /*! TBCCR6, Timer_B Capture/Compare Register 6 */
   150        config int TBCCR6 = 0;
   151
   152            /*! Determine if each Register needs to be forced set or not */
   153            readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
   154            [
   155                    { register : "TBCTL"   , regForceSet : false },
   156                    { register : "TBCCTL0" , regForceSet : false },
   157                    { register : "TBCCTL1" , regForceSet : false },
   158                    { register : "TBCCTL2" , regForceSet : false },
   159                    { register : "TBCCTL3" , regForceSet : false },
   160                    { register : "TBCCTL4" , regForceSet : false },
   161                    { register : "TBCCTL5" , regForceSet : false },
   162                    { register : "TBCCTL6" , regForceSet : false },
   163                    { register : "TBCCR0"  , regForceSet : false },
   164                    { register : "TBCCR1"  , regForceSet : false },
   165                    { register : "TBCCR2"  , regForceSet : false },
   166                    { register : "TBCCR3"  , regForceSet : false },
   167                    { register : "TBCCR4"  , regForceSet : false },
   168                    { register : "TBCCR5"  , regForceSet : false },
   169                    { register : "TBCCR6"  , regForceSet : false }
   170            ];
   171    }


interface ti.catalog.msp430.peripherals.watchdog.IWDT

     1    /*!
     2     *  ======== IWDT ========
     3     *  MSP430 Watchdog Timer Interface
     4     */
     5    metaonly interface IWDT inherits xdc.platform.IPeripheral {
     6
     7        /*!
     8        *  ======== ForceSetDefaultRegister_t ========
     9        *  Force Set Default Register
    10        *
    11        *  Type to store if each register needs to be forced initialized
    12        *  even if the register is in default state.
    13        *
    14        *  @see #ForceSetDefaultRegister_t
    15        */
    16        struct ForceSetDefaultRegister_t {
    17            String     register;
    18            Bool       regForceSet;
    19        }
    20
    21    instance:
    22
    23    }


package ti.catalog.msp430.peripherals.watchdog

     1    requires ti.catalog.msp430.peripherals.clock;
     2    requires ti.catalog.msp430.peripherals.special_function;
     3
     4    package ti.catalog.msp430.peripherals.watchdog {
     5        module WDTPlus;
     6        interface IWDT;
     7    }


module ti.catalog.msp430.peripherals.watchdog.WDTPlus

     1    import ti.catalog.msp430.peripherals.clock.IClock;
     2    import ti.catalog.msp430.peripherals.special_function.IE1;
     3
     4    /*!
     5     *  ======== WDT+ ========
     6     *  MSP430 Watchdog Timer+
     7     */
     8    metaonly module WDTPlus inherits IWDT {
     9
    10        enum WDTPW_t {
    11            WDTPW_OFF = 0x00,
    12            WDTPW = 0x5A00
    13        };
    14
    15        enum WDTHOLD_t {
    16            WDTHOLD_OFF = 0x0000,
    17            WDTHOLD     = (0x0080)
    18        };
    19
    20        enum WDTNMIES_t {
    21            WDTNMIES_OFF = (0x0000),
    22            WDTNMIES     = (0x0040)
    23        };
    24
    25        enum WDTNMI_t {
    26            WDTNMI_OFF = (0x0000),
    27            WDTNMI     = (0x0020)
    28        };
    29
    30        enum WDTTMSEL_t {
    31            WDTTMSEL_OFF = (0x0000),
    32            WDTTMSEL     = (0x0010)
    33        };
    34
    35        enum WDTCNTCL_t {
    36            WDTCNTCL_OFF = (0x0000),
    37            WDTCNTCL     = (0x0008)
    38        };
    39
    40        enum WDTSSEL_t {
    41            WDTSSEL_OFF = (0x0000),
    42            WDTSSEL     = (0x0004)
    43        };
    44
    45        enum WDTIS1_t {
    46            WDTIS1_OFF = (0x0000),
    47            WDTIS1     = (0x0002)
    48        };
    49
    50        enum WDTIS0_t {
    51            WDTIS0_OFF = (0x0000),
    52            WDTIS0     = (0x0001)
    53        };
    54
    55        /* WDTCTL Register */
    56        struct WDTCTL_t {
    57            WDTPW_t     WDTPW;                  /*! WDT+ password */
    58            WDTHOLD_t   WDTHOLD;                /*! Watchdog timer+ hold. This bit stops the watchdog timer+. Setting
    59                                                   *WDTHOLD = 1 when the WDT+ is not in use conserves power.
    60                                                   *  0    Watchdog timer+ is not stopped
    61                                                   *  1    Watchdog timer+ is stopped
    62                                                   */
    63            WDTNMIES_t  WDTNMIES;               /*! Watchdog timer+ NMI edge select. This bit selects the interrupt edge for the
    64                                                   *NMI interrupt when WDTNMI = 1. Modifying this bit can trigger an NMI. Modify
    65                                                   *this bit when WDTIE = 0 to avoid triggering an accidental NMI.
    66                                                   *  0    NMI on rising edge
    67                                                   *  1    NMI on falling edge
    68                                                   */
    69            WDTNMI_t    WDTNMI;                 /*! Watchdog timer+ NMI select. This bit selects the function for the RST/NMI pin.
    70                                                   *  0    Reset function
    71                                                   *  1    NMI function
    72                                                   */
    73            WDTTMSEL_t  WDTTMSEL;               /*! Watchdog timer+ mode select
    74                                                   *  0    Watchdog mode
    75                                                   *  1    Interval timer mode
    76                                                   */
    77            WDTCNTCL_t  WDTCNTCL;               /*! Watchdog timer+ counter clear. Setting WDTCNTCL = 1 clears the count
    78                                                   *value to 0000h. WDTCNTCL is automatically reset.
    79                                                   *  0    No action
    80                                                   *  1    WDTCNT = 0000h
    81                                                   */
    82            WDTSSEL_t   WDTSSEL;                /*! Watchdog timer+ clock source select
    83                                                   *  0    SMCLK
    84                                                   *  1    ACLK
    85                                                   */
    86            WDTIS0_t    WDTIS0;                 /*! Watchdog timer+ interval select. These bits select the watchdog timer+
    87                                                   *interval to set the WDTIFG flag and/or generate a PUC.
    88                                                   *  00   Watchdog clock source /32768
    89                                                   *  01   Watchdog clock source /8192
    90                                                   *  10   Watchdog clock source /512
    91                                                   *  11   Watchdog clock source /64
    92                                                   */
    93            WDTIS1_t    WDTIS1;                 /*! Watchdog timer+ interval select. These bits select the watchdog timer+
    94                                                   *interval to set the WDTIFG flag and/or generate a PUC.
    95                                                   *  00   Watchdog clock source /32768
    96                                                   *  01   Watchdog clock source /8192
    97                                                   *  10   Watchdog clock source /512
    98                                                   *  11   Watchdog clock source /64
    99                                                   */
   100        }
   101
   102        create(IClock.Instance clock , IE1.Instance interruptEnableRegister1);
   103
   104    instance:
   105        /*! WDTCTL, Watchdog Timer+ Register */
   106        config WDTCTL_t WDTCTL = {
   107            WDTPW       : WDTPW,
   108            WDTHOLD     : WDTHOLD_OFF,
   109            WDTNMIES    : WDTNMIES_OFF,
   110            WDTNMI      : WDTNMI_OFF,
   111            WDTTMSEL    : WDTTMSEL_OFF,
   112            WDTCNTCL    : WDTCNTCL_OFF,
   113            WDTSSEL     : WDTSSEL_OFF,
   114            WDTIS0      : WDTIS0_OFF,
   115            WDTIS1      : WDTIS1_OFF,
   116        };
   117
   118        /*! Determine if each Register needs to be forced set or not */
   119        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
   120        [
   121            { register : "WDTCTL" , regForceSet : false }
   122        ];
   123
   124        /*!
   125         *  ======== baseAddr ========
   126         *  Address of the peripheral's control register.
   127         *
   128         *  A peripheral's registers are commonly accessed through a structure
   129         *  that defines the offsets of a particular register from the lowest
   130         *  address mapped to a peripheral. That lowest address is specified by
   131         *  this parameter.
   132         */
   133        config UInt baseAddr;
   134
   135        /*! @_nodoc */
   136        config IClock.Instance clock;
   137
   138        /*! @_nodoc */
   139        config IE1.Instance interruptEnableRegister1;
   140    }


module ti.catalog.peripherals.hdvicp2.HDVICP2

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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 HDVICP2 inherits xdc.platform.IPeripheral {
    14
    15    instance:
    16        /*!
    17         *  ======== baseAddr ========
    18         *  Address of the peripheral's control register.
    19         *
    20         *  A peripheral's registers are commonly accessed through a structure
    21         *  that defines the offsets of a particular register from the lowest
    22         *  address mapped to a peripheral. That lowest address is specified by
    23         *  this parameter.
    24         */
    25        config UInt baseAddr;
    26
    27        /*!
    28         *  ======== intNum ========
    29         *  Transfer completion Interrupt source number
    30         *
    31         */
    32        config UInt intNum;
    33    }
    34    /*
    35     *  @(#) ti.catalog.peripherals.hdvicp2; 1,0,0,51; 12-3-2010 11:43:00; /db/ztree/library/trees/platform/platform-l29x/src/
    36     */
    37


package ti.catalog.peripherals.hdvicp2

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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 ti.catalog.peripherals.hdvicp2 {
    14        module HDVICP2;
    15    }
    16    /*
    17     *  @(#) ti.catalog.peripherals.hdvicp2; 1,0,0,51; 12-3-2010 11:43:00; /db/ztree/library/trees/platform/platform-l29x/src/
    18     */
    19


package ti.catalog.t16

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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.t16 ========
    17     *  Package of devices for the t16 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.t16 [1,0,0,0] {
    24        module T16v200;
    25    }
    26    /*
    27     *  @(#) ti.catalog.t16; 1, 0, 0, 0,6; 12-3-2010 12:36:37; /db/ztree/library/trees/platform/platform-l29x/src/
    28     */
    29


module ti.catalog.t16.T16v200

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12
    13    /*
    14     *  ======== T16v200.xdc ========
    15     */
    16
    17    package ti.catalog.t16;
    18
    19    /*!
    20     *  ======== T16v200 ========
    21     *  The T16v200 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 T16v200 inherits ti.catalog.ICpuDataSheet
    28    {
    29    instance:
    30        override config string cpuCore           = "TORRENT_T16";
    31        override config string isa               = "t16";
    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             *  This segment is a workaround because the simulator does not
    45             *  support MMU and the vecs need to be placed starting at address 0.
    46             */
    47            ["CODEMEM", {
    48                comment: "256MB T16 code memory",
    49                name: "CODEMEM",
    50                base: 0x0,
    51                len:  0x10000000,
    52                space: "code",
    53                access: "RX"
    54            }],
    55
    56            ["DMEM", {
    57                comment: "32KB T16 data memory",
    58                name: "DMEM",
    59                base: 0x10020000,
    60                len:  0x8000,
    61                space: "data",
    62                access: "RW"
    63            }],
    64
    65            ["WBUF", {
    66                comment: "VCOP work buffer",
    67                name: "WBUF",
    68                base: 0x10040000,
    69                len:  0x8000,
    70                space: "data",
    71                access: "RW"
    72            }],
    73
    74            ["IBUFLA", {
    75                comment: "Image buffer low copy A",
    76                name: "IBUFLA",
    77                base: 0x10050000,
    78                len:  0x4000,
    79                space: "data",
    80                access: "RW"
    81            }],
    82
    83            ["IBUFHA", {
    84                comment: "Image buffer high copy A",
    85                name: "IBUFHA",
    86                base: 0x10054000,
    87                len:  0x4000,
    88                space: "data",
    89                access: "RW"
    90            }],
    91
    92            ["IBUFLB", {
    93                comment: "Image buffer low copy B",
    94                name: "IBUFLB",
    95                base: 0x10070000,
    96                len:  0x4000,
    97                space: "data",
    98                access: "RW"
    99            }],
   100
   101            ["IBUFHB", {
   102                comment: "Image buffer high copy B",
   103                name: "IBUFHB",
   104                base: 0x10074000,
   105                len:  0x4000,
   106                space: "data",
   107                access: "RW"
   108            }],
   109
   110            ["L3MEM", {
   111                comment:    "1MB L3 Memory",
   112                name:       "L3MEM",
   113                base:       0x7FF00000,
   114                len:        0x00100000,
   115                space:      "code/data",
   116                access:     "RWX"
   117            }],
   118        ];
   119    };
   120    /*
   121     *  @(#) ti.catalog.t16; 1, 0, 0, 0,6; 12-3-2010 12:36:37; /db/ztree/library/trees/platform/platform-l29x/src/
   122     */
   123


package ti.mcu.msp430

     1    /*!
     2     *  ======== ti.mcu.msp430 ========
     3     *  Header and linker command files for msp430 devices
     4     */
     5    package ti.mcu.msp430
     6    {
     7    }


package ti.platforms.app510

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,228; 12-3-2010 12:36:38; /db/ztree/library/trees/platform/platform-l29x/src/
    43     */
    44


module ti.platforms.app510.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,228; 12-3-2010 12:36:36; /db/ztree/library/trees/platform/platform-l29x/src/
    85     */
    86


package ti.platforms.control28027

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,68; 12-3-2010 12:37:04; /db/ztree/library/trees/platform/platform-l29x/src/
    28     */
    29


module ti.platforms.control28027.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,68; 12-3-2010 12:37:03; /db/ztree/library/trees/platform/platform-l29x/src/
    59     */
    60


package ti.platforms.control28035

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,62; 12-3-2010 12:37:13; /db/ztree/library/trees/platform/platform-l29x/src/
    28     */
    29


module ti.platforms.control28035.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,62; 12-3-2010 12:37:13; /db/ztree/library/trees/platform/platform-l29x/src/
    59     */
    60


package ti.platforms.control28335

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,116; 12-3-2010 12:37:26; /db/ztree/library/trees/platform/platform-l29x/src/
    33     */
    34


module ti.platforms.control28335.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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:      100.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,116; 12-3-2010 12:37:25; /db/ztree/library/trees/platform/platform-l29x/src/
    59     */
    60


package ti.platforms.control28346

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,71; 12-3-2010 12:37:27; /db/ztree/library/trees/platform/platform-l29x/src/
    28     */
    29


module ti.platforms.control28346.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,71; 12-3-2010 12:37:27; /db/ztree/library/trees/platform/platform-l29x/src/
    72     */
    73


package ti.platforms.dsk5402

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,306; 12-3-2010 12:37:58; /db/ztree/library/trees/platform/platform-l29x/src/
    28     */
    29


module ti.platforms.dsk5402.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,306; 12-3-2010 12:37:57; /db/ztree/library/trees/platform/platform-l29x/src/
    69     */
    70


package ti.platforms.dsk5416

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,306; 12-3-2010 12:38:11; /db/ztree/library/trees/platform/platform-l29x/src/
    28     */
    29


module ti.platforms.dsk5416.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,306; 12-3-2010 12:38:10; /db/ztree/library/trees/platform/platform-l29x/src/
    73     */
    74


package ti.platforms.dsk5505

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,98; 12-3-2010 12:38:24; /db/ztree/library/trees/platform/platform-l29x/src/
    28     */
    29


module ti.platforms.dsk5505.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,98; 12-3-2010 12:38:23; /db/ztree/library/trees/platform/platform-l29x/src/
    63     */
    64


package ti.platforms.dsk5510

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,306; 12-3-2010 12:38:33; /db/ztree/library/trees/platform/platform-l29x/src/
    28     */
    29


module ti.platforms.dsk5510.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,306; 12-3-2010 12:38:31; /db/ztree/library/trees/platform/platform-l29x/src/
    69     */
    70


package ti.platforms.dsk6211

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,307; 12-3-2010 12:38:59; /db/ztree/library/trees/platform/platform-l29x/src/
    28     */
    29


module ti.platforms.dsk6211.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,307; 12-3-2010 12:38:58; /db/ztree/library/trees/platform/platform-l29x/src/
    93     */
    94


package ti.platforms.dsk6416

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,307; 12-3-2010 12:39:13; /db/ztree/library/trees/platform/platform-l29x/src/
    39     */
    40


module ti.platforms.dsk6416.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,307; 12-3-2010 12:39:13; /db/ztree/library/trees/platform/platform-l29x/src/
   107     */
   108


package ti.platforms.dsk6455

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,292; 12-3-2010 12:39:09; /db/ztree/library/trees/platform/platform-l29x/src/
    44     */
    45


module ti.platforms.dsk6455.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,292; 12-3-2010 12:39:09; /db/ztree/library/trees/platform/platform-l29x/src/
    95     */
    96


package ti.platforms.dsk6711

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,307; 12-3-2010 12:39:39; /db/ztree/library/trees/platform/platform-l29x/src/
    28     */
    29


module ti.platforms.dsk6711.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,307; 12-3-2010 12:39:38; /db/ztree/library/trees/platform/platform-l29x/src/
    91     */
    92


package ti.platforms.dsk6713

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,307; 12-3-2010 12:39:47; /db/ztree/library/trees/platform/platform-l29x/src/
    28     */
    29


module ti.platforms.dsk6713.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,307; 12-3-2010 12:39:46; /db/ztree/library/trees/platform/platform-l29x/src/
   121     */
   122


package ti.platforms.dskTCI6482

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,292; 12-3-2010 12:40:06; /db/ztree/library/trees/platform/platform-l29x/src/
    44     */
    45


module ti.platforms.dskTCI6482.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,292; 12-3-2010 12:40:05; /db/ztree/library/trees/platform/platform-l29x/src/
    95     */
    96


package ti.platforms.evm2530

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,209; 12-3-2010 12:40:29; /db/ztree/library/trees/platform/platform-l29x/src/
    45     */
    46


module ti.platforms.evm2530.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,209; 12-3-2010 12:40:28; /db/ztree/library/trees/platform/platform-l29x/src/
    97     */
    98


package ti.platforms.evm3530

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,205; 12-3-2010 12:40:35; /db/ztree/library/trees/platform/platform-l29x/src/
    45     */
    46


module ti.platforms.evm3530.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,205; 12-3-2010 12:40:35; /db/ztree/library/trees/platform/platform-l29x/src/
    97     */
    98


package ti.platforms.evm5505

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,55; 12-3-2010 12:40:58; /db/ztree/library/trees/platform/platform-l29x/src/
    28     */
    29


module ti.platforms.evm5505.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,55; 12-3-2010 12:40:57; /db/ztree/library/trees/platform/platform-l29x/src/
    63     */
    64


package ti.platforms.evm5505ext

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,73; 12-3-2010 12:41:01; /db/ztree/library/trees/platform/platform-l29x/src/
    28     */
    29


module ti.platforms.evm5505ext.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,73; 12-3-2010 12:41:00; /db/ztree/library/trees/platform/platform-l29x/src/
    70     */
    71


package ti.platforms.evm5509A

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,305; 12-3-2010 12:41:19; /db/ztree/library/trees/platform/platform-l29x/src/
    28     */
    29


module ti.platforms.evm5509A.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,305; 12-3-2010 12:41:18; /db/ztree/library/trees/platform/platform-l29x/src/
    69     */
    70


package ti.platforms.evm5515

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,31; 12-3-2010 12:41:34; /db/ztree/library/trees/platform/platform-l29x/src/
    28     */
    29


module ti.platforms.evm5515.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,31; 12-3-2010 12:41:33; /db/ztree/library/trees/platform/platform-l29x/src/
    70     */
    71


package ti.platforms.evm6424

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,266; 12-3-2010 12:41:35; /db/ztree/library/trees/platform/platform-l29x/src/
    44     */
    45


module ti.platforms.evm6424.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,266; 12-3-2010 12:41:35; /db/ztree/library/trees/platform/platform-l29x/src/
    96     */
    97


package ti.platforms.evm6452

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,257; 12-3-2010 12:41:48; /db/ztree/library/trees/platform/platform-l29x/src/
    44     */
    45


module ti.platforms.evm6452.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,257; 12-3-2010 12:41:47; /db/ztree/library/trees/platform/platform-l29x/src/
    92     */
    93


package ti.platforms.evm6457

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,136; 12-3-2010 12:42:10; /db/ztree/library/trees/platform/platform-l29x/src/
    44     */
    45


module ti.platforms.evm6457.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,136; 12-3-2010 12:42:10; /db/ztree/library/trees/platform/platform-l29x/src/
    90     */
    91


package ti.platforms.evm6472

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,45; 12-3-2010 12:42:17; /db/ztree/library/trees/platform/platform-l29x/src/
    44     */
    45


module ti.platforms.evm6472.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,45; 12-3-2010 12:42:15; /db/ztree/library/trees/platform/platform-l29x/src/
    91     */
    92


package ti.platforms.evm6474

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,104; 12-3-2010 12:42:49; /db/ztree/library/trees/platform/platform-l29x/src/
    44     */
    45


module ti.platforms.evm6474.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,104; 12-3-2010 12:42:46; /db/ztree/library/trees/platform/platform-l29x/src/
    91     */
    92


package ti.platforms.evm6670

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,4; 12-3-2010 12:42:49; /db/ztree/library/trees/platform/platform-l29x/src/
    43     */
    44


module ti.platforms.evm6670.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,4; 12-3-2010 12:42:48; /db/ztree/library/trees/platform/platform-l29x/src/
    76     */
    77


package ti.platforms.evm6678

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,4; 12-3-2010 12:43:13; /db/ztree/library/trees/platform/platform-l29x/src/
    43     */
    44


module ti.platforms.evm6678.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,4; 12-3-2010 12:43:12; /db/ztree/library/trees/platform/platform-l29x/src/
    76     */
    77


package ti.platforms.evm6747

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,171; 12-3-2010 12:43:20; /db/ztree/library/trees/platform/platform-l29x/src/
    39     */
    40


module ti.platforms.evm6747.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,171; 12-3-2010 12:43:20; /db/ztree/library/trees/platform/platform-l29x/src/
    97     */
    98


package ti.platforms.evm6748

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,127; 12-3-2010 12:43:41; /db/ztree/library/trees/platform/platform-l29x/src/
    39     */
    40


module ti.platforms.evm6748.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,127; 12-3-2010 12:43:40; /db/ztree/library/trees/platform/platform-l29x/src/
    98     */
    99


package ti.platforms.evmC6A8168

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,12; 12-3-2010 12:43:47; /db/ztree/library/trees/platform/platform-l29x/src/
    45     */
    46


module ti.platforms.evmC6A8168.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,12; 12-3-2010 12:43:46; /db/ztree/library/trees/platform/platform-l29x/src/
   117     */
   118


package ti.platforms.evmDA830

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,108; 12-3-2010 12:44:13; /db/ztree/library/trees/platform/platform-l29x/src/
    39     */
    40


module ti.platforms.evmDA830.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,108; 12-3-2010 12:44:12; /db/ztree/library/trees/platform/platform-l29x/src/
   111     */
   112


package ti.platforms.evmDA850

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,23; 12-3-2010 12:44:15; /db/ztree/library/trees/platform/platform-l29x/src/
    39     */
    40


module ti.platforms.evmDA850.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,23; 12-3-2010 12:44:15; /db/ztree/library/trees/platform/platform-l29x/src/
   112     */
   113


package ti.platforms.evmDM355

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,233; 12-3-2010 12:44:44; /db/ztree/library/trees/platform/platform-l29x/src/
    39     */
    40


module ti.platforms.evmDM355.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,233; 12-3-2010 12:44:44; /db/ztree/library/trees/platform/platform-l29x/src/
    78     */
    79


package ti.platforms.evmDM357

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,171; 12-3-2010 12:44:37; /db/ztree/library/trees/platform/platform-l29x/src/
    40     */
    41


module ti.platforms.evmDM357.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,171; 12-3-2010 12:44:37; /db/ztree/library/trees/platform/platform-l29x/src/
    90     */
    91


package ti.platforms.evmDM365

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,159; 12-3-2010 12:45:12; /db/ztree/library/trees/platform/platform-l29x/src/
    39     */
    40


module ti.platforms.evmDM365.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,159; 12-3-2010 12:45:11; /db/ztree/library/trees/platform/platform-l29x/src/
    73     */
    74


package ti.platforms.evmDM420

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,291; 12-3-2010 12:45:13; /db/ztree/library/trees/platform/platform-l29x/src/
    44     */
    45


module ti.platforms.evmDM420.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,291; 12-3-2010 12:45:13; /db/ztree/library/trees/platform/platform-l29x/src/
    91     */
    92


package ti.platforms.evmDM642

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,306; 12-3-2010 12:45:33; /db/ztree/library/trees/platform/platform-l29x/src/
    39     */
    40


module ti.platforms.evmDM642.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,306; 12-3-2010 12:45:33; /db/ztree/library/trees/platform/platform-l29x/src/
    98     */
    99


package ti.platforms.evmDM6437

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,281; 12-3-2010 12:45:46; /db/ztree/library/trees/platform/platform-l29x/src/
    44     */
    45


module ti.platforms.evmDM6437.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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: 0x00200000}],
    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,281; 12-3-2010 12:45:46; /db/ztree/library/trees/platform/platform-l29x/src/
    92     */
    93


package ti.platforms.evmDM6446

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,291; 12-3-2010 12:46:07; /db/ztree/library/trees/platform/platform-l29x/src/
    43     */
    44


module ti.platforms.evmDM6446.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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        config Bool singleCore = true;
    85
    86        /*!
    87         *  ======== singleCore ========
    88         *  no longer used!
    89         * @_nodoc
    90         */
    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.evmDM6446; 1, 0, 0, 1,291; 12-3-2010 12:46:06; /db/ztree/library/trees/platform/platform-l29x/src/
   118     */
   119


package ti.platforms.evmDM6467

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,266; 12-3-2010 12:46:11; /db/ztree/library/trees/platform/platform-l29x/src/
    44     */
    45


module ti.platforms.evmDM6467.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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        config Bool singleCore = true;
    91
    92        /*!
    93         *  ======== singleCore ========
    94         *  no longer used!
    95         * @_nodoc
    96         */
    97
    98        /*
    99         *  ======== l1PMode ========
   100         *  Define the amount of L1P RAM used for L1 Program Cache.
   101         *
   102         *  Check the device documentation for valid values.
   103         */
   104        config String l1PMode = "32k";
   105
   106        /*
   107         *  ======== l1DMode ========
   108         *  Define the amount of L1D RAM used for L1 Data Cache.
   109         *
   110         *  Check the device documentation for valid values.
   111         */
   112        config String l1DMode = "32k";
   113
   114        /*
   115         *  ======== l2Mode ========
   116         *  Define the amount of L2 RAM used for L2 Cache.
   117         *
   118         *  Check the device documentation for valid values.
   119         */
   120        config String l2Mode = "0k";
   121    }
   122    /*
   123     *  @(#) ti.platforms.evmDM6467; 1, 0, 0, 0,266; 12-3-2010 12:46:11; /db/ztree/library/trees/platform/platform-l29x/src/
   124     */
   125


package ti.platforms.evmDM6467T

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,45; 12-3-2010 12:46:27; /db/ztree/library/trees/platform/platform-l29x/src/
    44     */
    45


module ti.platforms.evmDM6467T.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,45; 12-3-2010 12:46:27; /db/ztree/library/trees/platform/platform-l29x/src/
   123     */
   124


package ti.platforms.evmDM648

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,280; 12-3-2010 12:46:48; /db/ztree/library/trees/platform/platform-l29x/src/
    44     */
    45


module ti.platforms.evmDM648.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,280; 12-3-2010 12:46:48; /db/ztree/library/trees/platform/platform-l29x/src/
    95     */
    96


package ti.platforms.evmDM8148

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,12; 12-3-2010 12:47:04; /db/ztree/library/trees/platform/platform-l29x/src/
    45     */
    46


module ti.platforms.evmDM8148.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,12; 12-3-2010 12:47:04; /db/ztree/library/trees/platform/platform-l29x/src/
   117     */
   118


package ti.platforms.evmDM8168

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,15; 12-3-2010 12:47:08; /db/ztree/library/trees/platform/platform-l29x/src/
    45     */
    46


module ti.platforms.evmDM8168.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,15; 12-3-2010 12:47:07; /db/ztree/library/trees/platform/platform-l29x/src/
   117     */
   118


package ti.platforms.evmDRA416

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,116; 12-3-2010 12:47:29; /db/ztree/library/trees/platform/platform-l29x/src/
    44     */
    45


module ti.platforms.evmDRA416.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,116; 12-3-2010 12:47:28; /db/ztree/library/trees/platform/platform-l29x/src/
    98     */
    99


package ti.platforms.evmDRA446

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,276; 12-3-2010 12:47:44; /db/ztree/library/trees/platform/platform-l29x/src/
    44     */
    45


module ti.platforms.evmDRA446.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,276; 12-3-2010 12:47:44; /db/ztree/library/trees/platform/platform-l29x/src/
    92     */
    93


package ti.platforms.evmDRA459

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,68; 12-3-2010 12:47:57; /db/ztree/library/trees/platform/platform-l29x/src/
    44     */
    45


module ti.platforms.evmDRA459.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,68; 12-3-2010 12:47:56; /db/ztree/library/trees/platform/platform-l29x/src/
    93     */
    94


package ti.platforms.evmLM3S8962

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,69; 12-3-2010 12:48:13; /db/ztree/library/trees/platform/platform-l29x/src/
    39     */
    40


module ti.platforms.evmLM3S8962.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,69; 12-3-2010 12:48:12; /db/ztree/library/trees/platform/platform-l29x/src/
    63     */
    64


package ti.platforms.evmLM3S9B92

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,69; 12-3-2010 12:48:24; /db/ztree/library/trees/platform/platform-l29x/src/
    39     */
    40


module ti.platforms.evmLM3S9B92.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,69; 12-3-2010 12:48:24; /db/ztree/library/trees/platform/platform-l29x/src/
    63     */
    64


package ti.platforms.evmOMAPL137

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,97; 12-3-2010 12:48:44; /db/ztree/library/trees/platform/platform-l29x/src/
    40     */
    41


module ti.platforms.evmOMAPL137.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,97; 12-3-2010 12:48:44; /db/ztree/library/trees/platform/platform-l29x/src/
   111     */
   112


package ti.platforms.evmOMAPL138

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,68; 12-3-2010 12:48:59; /db/ztree/library/trees/platform/platform-l29x/src/
    40     */
    41


module ti.platforms.evmOMAPL138.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,68; 12-3-2010 12:48:58; /db/ztree/library/trees/platform/platform-l29x/src/
   112     */
   113


package ti.platforms.evmTCI6484

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,133; 12-3-2010 12:49:14; /db/ztree/library/trees/platform/platform-l29x/src/
    44     */
    45


module ti.platforms.evmTCI6484.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,133; 12-3-2010 12:49:13; /db/ztree/library/trees/platform/platform-l29x/src/
    91     */
    92


package ti.platforms.evmTCI6486

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,109; 12-3-2010 12:49:27; /db/ztree/library/trees/platform/platform-l29x/src/
    44     */
    45


module ti.platforms.evmTCI6486.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,109; 12-3-2010 12:49:26; /db/ztree/library/trees/platform/platform-l29x/src/
    91     */
    92


package ti.platforms.evmTCI6488

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,276; 12-3-2010 12:49:45; /db/ztree/library/trees/platform/platform-l29x/src/
    44     */
    45


module ti.platforms.evmTCI6488.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,276; 12-3-2010 12:49:45; /db/ztree/library/trees/platform/platform-l29x/src/
    91     */
    92


package ti.platforms.evmTI814X

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,4; 12-3-2010 12:49:57; /db/ztree/library/trees/platform/platform-l29x/src/
    45     */
    46


module ti.platforms.evmTI814X.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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:      800.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:      250.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:      1000.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,4; 12-3-2010 12:49:56; /db/ztree/library/trees/platform/platform-l29x/src/
   146     */
   147


package ti.platforms.evmTI816X

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,7; 12-3-2010 12:50:12; /db/ztree/library/trees/platform/platform-l29x/src/
    45     */
    46


module ti.platforms.evmTI816X.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,7; 12-3-2010 12:50:12; /db/ztree/library/trees/platform/platform-l29x/src/
   146     */
   147


package ti.platforms.evmTMS570

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,144; 12-3-2010 12:50:30; /db/ztree/library/trees/platform/platform-l29x/src/
    39     */
    40


module ti.platforms.evmTMS570.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,144; 12-3-2010 12:50:29; /db/ztree/library/trees/platform/platform-l29x/src/
    88     */
    89


package ti.platforms.evmTMS570LS20216

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,45; 12-3-2010 12:50:45; /db/ztree/library/trees/platform/platform-l29x/src/
    39     */
    40


module ti.platforms.evmTMS570LS20216.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,45; 12-3-2010 12:50:44; /db/ztree/library/trees/platform/platform-l29x/src/
    87     */
    88


package ti.platforms.evmTMS570PSF762

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,45; 12-3-2010 12:50:40; /db/ztree/library/trees/platform/platform-l29x/src/
    39     */
    40


module ti.platforms.evmTMS570PSF762.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,45; 12-3-2010 12:50:40; /db/ztree/library/trees/platform/platform-l29x/src/
    87     */
    88


package ti.platforms.evmTNETV107X

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,45; 12-3-2010 12:51:09; /db/ztree/library/trees/platform/platform-l29x/src/
    43     */
    44


module ti.platforms.evmTNETV107X.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,45; 12-3-2010 12:51:08; /db/ztree/library/trees/platform/platform-l29x/src/
   117     */
   118


package ti.platforms.evmTNETV2685

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,257; 12-3-2010 12:51:20; /db/ztree/library/trees/platform/platform-l29x/src/
    43     */
    44


module ti.platforms.evmTNETV2685.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,257; 12-3-2010 12:51:19; /db/ztree/library/trees/platform/platform-l29x/src/
    91     */
    92


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

     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.expOMAPL138

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,64; 12-3-2010 12:51:38; /db/ztree/library/trees/platform/platform-l29x/src/
    39     */
    40


module ti.platforms.expOMAPL138.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,64; 12-3-2010 12:51:38; /db/ztree/library/trees/platform/platform-l29x/src/
   110     */
   111


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

     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:      16.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

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,306; 12-3-2010 12:51:57; /db/ztree/library/trees/platform/platform-l29x/src/
    33     */
    34


module ti.platforms.ezdsp2808.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,306; 12-3-2010 12:51:56; /db/ztree/library/trees/platform/platform-l29x/src/
    58     */
    59


package ti.platforms.ezdsp2812

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,306; 12-3-2010 12:52:10; /db/ztree/library/trees/platform/platform-l29x/src/
    28     */
    29


module ti.platforms.ezdsp2812.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,306; 12-3-2010 12:52:10; /db/ztree/library/trees/platform/platform-l29x/src/
    72     */
    73


package ti.platforms.ezdsp28235

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,207; 12-3-2010 12:52:10; /db/ztree/library/trees/platform/platform-l29x/src/
    28     */
    29


module ti.platforms.ezdsp28235.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,207; 12-3-2010 12:52:09; /db/ztree/library/trees/platform/platform-l29x/src/
    73     */
    74


package ti.platforms.ezdsp28335

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,249; 12-3-2010 12:52:33; /db/ztree/library/trees/platform/platform-l29x/src/
    28     */
    29


module ti.platforms.ezdsp28335.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,249; 12-3-2010 12:52:32; /db/ztree/library/trees/platform/platform-l29x/src/
    73     */
    74


package ti.platforms.ezdsp5505

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,73; 12-3-2010 12:52:38; /db/ztree/library/trees/platform/platform-l29x/src/
    28     */
    29


module ti.platforms.ezdsp5505.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,73; 12-3-2010 12:52:37; /db/ztree/library/trees/platform/platform-l29x/src/
    63     */
    64


package ti.platforms.generic

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,306; 12-3-2010 12:52:48; /db/ztree/library/trees/platform/platform-l29x/src/
   107     */
   108


module ti.platforms.generic.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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 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     *  @(#) ti.platforms.generic; 1, 0, 0, 1,306; 12-3-2010 12:52:47; /db/ztree/library/trees/platform/platform-l29x/src/
    88     */
    89


package ti.platforms.h2omap1610

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,305; 12-3-2010 12:53:11; /db/ztree/library/trees/platform/platform-l29x/src/
    32     */
    33


package ti.platforms.h3omap1710

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,305; 12-3-2010 12:53:06; /db/ztree/library/trees/platform/platform-l29x/src/
    32     */
    33


package ti.platforms.h4omap2420

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,305; 12-3-2010 12:53:11; /db/ztree/library/trees/platform/platform-l29x/src/
    32     */
    33


package ti.platforms.innovator1510

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,305; 12-3-2010 12:53:29; /db/ztree/library/trees/platform/platform-l29x/src/
    28     */
    29


module ti.platforms.innovator1510.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,305; 12-3-2010 12:53:28; /db/ztree/library/trees/platform/platform-l29x/src/
    63     */
    64


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,53; 12-3-2010 12:53:39; /db/ztree/library/trees/platform/platform-l29x/src/
    38     */
    39


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,53; 12-3-2010 12:53:38; /db/ztree/library/trees/platform/platform-l29x/src/
   117     */
   118


package ti.platforms.msp430

     1    requires xdc.platform [1,0,1];
     2    requires ti.catalog.msp430;
     3
     4    /*!
     5     *  ======== ti.platforms.msp430 ========
     6     */
     7    package ti.platforms.msp430 [1,0,0] {
     8        module Platform;
     9    }


module ti.platforms.msp430.Platform

     1    /*
     2     *  ======== Platform.xdc ========
     3     */
     4    package ti.platforms.msp430;
     5
     6    /*!
     7     *  ======== Platform ========
     8     *  A generic platform that supports any MSP430 device
     9     *
    10     *  The device to be used by this platform is passed as the platform instance
    11     *  name. On the `xdc.tools.configuro` command line, it is done in the
    12     *  following way:
    13     *  @p(code)
    14     *  xs xdc.tools.configuro ... -p "ti.platforms.msp430:MSP430F2274"
    15     *  @p
    16     *
    17     *  In package.bld, the platform instance is selected as in:
    18     *  @p(code)
    19     *  Pkg.addExecutable("test", target, "ti.platforms.msp430:MSP430F5438");
    20     *  @
    21     */
    22    metaonly module Platform inherits xdc.platform.IPlatform
    23    {
    24        config xdc.platform.IPlatform.Board BOARD = {
    25            id:             "0",
    26            boardName:      "msp430",
    27            boardFamily:    null,
    28            boardRevision:  null
    29        };
    30
    31    instance:
    32
    33        config xdc.platform.IExeContext.Cpu CPU = {
    34            id:             "0",
    35            clockRate:      0,
    36            catalogName:    "ti.catalog.msp430",
    37            deviceName:     "MSP430",
    38            revision:       "",
    39        };
    40
    41        /*!
    42         *  ======== deviceName ========
    43         *  The name of an `ICpuDataSheet` module for the device
    44         *
    45         *  This parameter is optional; the device name name also be specified
    46         *  in the name of the the instance.
    47         */
    48        config string deviceName;
    49
    50        /*!
    51         *  ======== clockRate ========
    52         *  The clock rate for this device.
    53         */
    54        config Double clockRate = 0;
    55
    56        override config string codeMemory = null;
    57
    58        override config string dataMemory = null;
    59
    60        override config string stackMemory = null;
    61    };
    62


package ti.platforms.osk5912

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,305; 12-3-2010 12:54:09; /db/ztree/library/trees/platform/platform-l29x/src/
    38     */
    39


module ti.platforms.osk5912.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,305; 12-3-2010 12:54:08; /db/ztree/library/trees/platform/platform-l29x/src/
    68     */
    69


package ti.platforms.padk6727

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,306; 12-3-2010 12:54:13; /db/ztree/library/trees/platform/platform-l29x/src/
    39     */
    40


module ti.platforms.padk6727.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,306; 12-3-2010 12:54:11; /db/ztree/library/trees/platform/platform-l29x/src/
    98     */
    99


package ti.platforms.sdbTitan

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,305; 12-3-2010 12:54:32; /db/ztree/library/trees/platform/platform-l29x/src/
    32     */
    33


package ti.platforms.sdp2430

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,291; 12-3-2010 12:54:31; /db/ztree/library/trees/platform/platform-l29x/src/
    44     */
    45


module ti.platforms.sdp2430.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,291; 12-3-2010 12:54:31; /db/ztree/library/trees/platform/platform-l29x/src/
    97     */
    98


package ti.platforms.sdp3430

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,276; 12-3-2010 12:54:41; /db/ztree/library/trees/platform/platform-l29x/src/
    45     */
    46


module ti.platforms.sdp3430.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,276; 12-3-2010 12:54:40; /db/ztree/library/trees/platform/platform-l29x/src/
    99     */
   100


package ti.platforms.sdp4430

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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.cortexm3;
    20    requires xdc.platform [1,0,1];
    21
    22    /*!
    23     *  ======== ti.platforms.sdp4430 ========
    24     *  Platform package for the Tesla functional simulator.
    25     *
    26     *  This package implements the interfaces (xdc.platform.IPlatform)
    27     *  necessary to build and run executables on the Tesla simulator 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.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,23; 12-3-2010 12:55:04; /db/ztree/library/trees/platform/platform-l29x/src/
    45     */
    46


module ti.platforms.sdp4430.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,23; 12-3-2010 12:55:03; /db/ztree/library/trees/platform/platform-l29x/src/
   118     */
   119


package ti.platforms.sim2810

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,306; 12-3-2010 12:55:10; /db/ztree/library/trees/platform/platform-l29x/src/
    33     */
    34


module ti.platforms.sim2810.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,306; 12-3-2010 12:55:09; /db/ztree/library/trees/platform/platform-l29x/src/
    72     */
    73


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,53; 12-3-2010 12:55:25; /db/ztree/library/trees/platform/platform-l29x/src/
    27     */
    28


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,53; 12-3-2010 12:55:25; /db/ztree/library/trees/platform/platform-l29x/src/
   107     */
   108


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,53; 12-3-2010 12:55:38; /db/ztree/library/trees/platform/platform-l29x/src/
    39     */
    40


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,53; 12-3-2010 12:55:38; /db/ztree/library/trees/platform/platform-l29x/src/
    83     */
    84


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,53; 12-3-2010 12:56:02; /db/ztree/library/trees/platform/platform-l29x/src/
    27     */
    28


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,53; 12-3-2010 12:56:01; /db/ztree/library/trees/platform/platform-l29x/src/
    97     */
    98


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,53; 12-3-2010 12:56:15; /db/ztree/library/trees/platform/platform-l29x/src/
    27     */
    28


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,53; 12-3-2010 12:56:13; /db/ztree/library/trees/platform/platform-l29x/src/
   106     */
   107


package ti.platforms.sim62xx

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,306; 12-3-2010 12:56:26; /db/ztree/library/trees/platform/platform-l29x/src/
    28     */
    29


module ti.platforms.sim62xx.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,306; 12-3-2010 12:56:25; /db/ztree/library/trees/platform/platform-l29x/src/
    93     */
    94


package ti.platforms.sim64Pxx

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,306; 12-3-2010 12:56:46; /db/ztree/library/trees/platform/platform-l29x/src/
    44     */
    45


module ti.platforms.sim64Pxx.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,306; 12-3-2010 12:56:45; /db/ztree/library/trees/platform/platform-l29x/src/
   112     */
   113


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,53; 12-3-2010 12:57:22; /db/ztree/library/trees/platform/platform-l29x/src/
    38     */
    39


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,53; 12-3-2010 12:57:22; /db/ztree/library/trees/platform/platform-l29x/src/
   135     */
   136


package ti.platforms.simArctic

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,1; 12-3-2010 12:58:00; /db/ztree/library/trees/platform/platform-l29x/src/
    39     */
    40


module ti.platforms.simArctic.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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 T16 = {
    46            id:             "0",
    47            clockRate:      200.0,
    48            catalogName:    "ti.catalog.t16",
    49            deviceName:     "T16v200",
    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 T16.
    66         */
    67        override readonly config xdc.platform.IPlatform.Memory
    68            externalMemoryMap[string] = [
    69                ["DDR",  {name: "DDR",  base: 0x80000000, len: 0x80000000}],
    70            ];
    71
    72        /*
    73         *  ======== sectMap ========
    74         *  Define a placement of compiler generated output sections into
    75         *  memory regions defined in the memTab above.
    76         */
    77        override config string codeMemory = "DDR";
    78
    79        override config string dataMemory = "DDR";
    80
    81        override config string stackMemory = "DDR";
    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.simArctic; 1, 0, 0,1; 12-3-2010 12:57:59; /db/ztree/library/trees/platform/platform-l29x/src/
   109     */
   110


package ti.platforms.simCM3

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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.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,146; 12-3-2010 12:57:59; /db/ztree/library/trees/platform/platform-l29x/src/
    28     */
    29


module ti.platforms.simCM3.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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",
    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,146; 12-3-2010 12:57:59; /db/ztree/library/trees/platform/platform-l29x/src/
    95     */
    96


package ti.platforms.simDM420

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,306; 12-3-2010 12:58:02; /db/ztree/library/trees/platform/platform-l29x/src/
    39     */
    40


module ti.platforms.simDM420.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,306; 12-3-2010 12:58:02; /db/ztree/library/trees/platform/platform-l29x/src/
    88     */
    89


package ti.platforms.simDM730

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,61; 12-3-2010 12:58:33; /db/ztree/library/trees/platform/platform-l29x/src/
    39     */
    40


module ti.platforms.simDM730.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,61; 12-3-2010 12:58:32; /db/ztree/library/trees/platform/platform-l29x/src/
   109     */
   110


package ti.platforms.simDM740

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,127; 12-3-2010 12:58:27; /db/ztree/library/trees/platform/platform-l29x/src/
    43     */
    44


module ti.platforms.simDM740.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,127; 12-3-2010 12:58:26; /db/ztree/library/trees/platform/platform-l29x/src/
   109     */
   110


package ti.platforms.simDM8168

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,23; 12-3-2010 12:59:02; /db/ztree/library/trees/platform/platform-l29x/src/
    45     */
    46


module ti.platforms.simDM8168.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,23; 12-3-2010 12:59:02; /db/ztree/library/trees/platform/platform-l29x/src/
   116     */
   117


package ti.platforms.simDucati

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,109; 12-3-2010 12:59:02; /db/ztree/library/trees/platform/platform-l29x/src/
    39     */
    40


module ti.platforms.simDucati.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,109; 12-3-2010 12:59:01; /db/ztree/library/trees/platform/platform-l29x/src/
    90     */
    91


package ti.platforms.simT16

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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.t16;
    14    requires xdc.platform [1,0,1];
    15
    16    /*!
    17     *  ======== ti.platforms.simT16 ========
    18     *  Platform package for the simT16 platform.
    19     *
    20     *  This package implements the interfaces (xdc.platform.IPlatform)
    21     *  necessary to build and run executables on the simT16 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.simT16.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.simT16 [1,0,1,0] {
    35        module Platform;
    36    }
    37    /*
    38     *  @(#) ti.platforms.simT16; 1, 0, 1, 0,6; 12-3-2010 12:59:20; /db/ztree/library/trees/platform/platform-l29x/src/
    39     */
    40


module ti.platforms.simT16.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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.simT16;
    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:      "simT16",
    45            boardFamily:    "simT16",
    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.t16",
    61            deviceName:     "T16v200",
    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                ["DDR", {
    76                    comment: "DDR",
    77                    name: "DDR",
    78                    base: 0x80000000,
    79                    len:  0x10000000
    80                }],
    81
    82            ];
    83
    84        override config string codeMemory = "CMDMEM";
    85        override config string dataMemory = "DATMEM";
    86        override config string stackMemory = "DATMEM";
    87    };
    88    /*
    89     *  @(#) ti.platforms.simT16; 1, 0, 1, 0,6; 12-3-2010 12:59:20; /db/ztree/library/trees/platform/platform-l29x/src/
    90     */
    91


package ti.platforms.simTCI6498

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,74; 12-3-2010 12:59:33; /db/ztree/library/trees/platform/platform-l29x/src/
    44     */
    45


module ti.platforms.simTCI6498.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,74; 12-3-2010 12:59:33; /db/ztree/library/trees/platform/platform-l29x/src/
    71     */
    72


package ti.platforms.simTCI6608

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,13; 12-3-2010 12:59:52; /db/ztree/library/trees/platform/platform-l29x/src/
    44     */
    45


module ti.platforms.simTCI6608.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,13; 12-3-2010 12:59:52; /db/ztree/library/trees/platform/platform-l29x/src/
    76     */
    77


package ti.platforms.simTCI6616

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,17; 12-3-2010 13:00:06; /db/ztree/library/trees/platform/platform-l29x/src/
    44     */
    45


module ti.platforms.simTCI6616.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,17; 12-3-2010 13:00:05; /db/ztree/library/trees/platform/platform-l29x/src/
    77     */
    78


package ti.platforms.simTesla

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,78; 12-3-2010 13:00:23; /db/ztree/library/trees/platform/platform-l29x/src/
    44     */
    45


module ti.platforms.simTesla.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,78; 12-3-2010 13:00:22; /db/ztree/library/trees/platform/platform-l29x/src/
    89     */
    90


package ti.platforms.teb5561

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and 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,305; 12-3-2010 13:00:52; /db/ztree/library/trees/platform/platform-l29x/src/
    28     */
    29


module ti.platforms.teb5561.Platform

     1    /*
     2     *  Copyright (c) 2010 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is 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,305; 12-3-2010 13:00:52; /db/ztree/library/trees/platform/platform-l29x/src/
    63     */
    64


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

     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         */
    53        readonly config xdc.platform.IExeContext.Cpu CPU = {
    54            id:             "0",
    55            clockRate:      8.0,
    56            catalogName:    "ti.catalog.msp430",
    57            deviceName:     "MSP430F5529",
    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    };


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.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  */


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", "data"],
   153            [".data", "data"],
   154            [".cinit", "code"],
   155            [".bss", "data"],
   156            [".ebss", "data"],
   157            [".econst", "data"],
   158            [".const", "code"],
   159            [".stack", "stack"],
   160            [".sysmem", "data"],
   161            [".esysmem", "data"],
   162            [".pinit", "code"],
   163            [".args", "data"],
   164            [".cio", "data"],
   165            [".reset", "code"],
   166        ];
   167
   168        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
   169            t_IArg          : { size: 2, align: 2 },
   170            t_Char          : { size: 1, align: 1 },
   171            t_Double        : { size: 2, align: 2 },
   172            t_Float         : { size: 2, align: 2 },
   173            t_Fxn           : { size: 2, align: 1 }, /* near */
   174            t_Int           : { size: 1, align: 1 },
   175            t_Int8          : { size: 1, align: 1 },
   176            t_Int16         : { size: 1, align: 1 },
   177            t_Int32         : { size: 2, align: 2 },
   178            t_Int64         : { size: 4, align: 2 },
   179            t_Long          : { size: 2, align: 2 },
   180            t_LDouble       : { size: 2, align: 2 },
   181            t_LLong         : { size: 4, align: 2 },
   182            t_Ptr           : { size: 1, align: 1 },
   183            t_Short         : { size: 1, align: 1 },
   184            t_Size          : { size: 2, align: 2 },
   185        };
   186
   187        override readonly config Int bitsPerChar = 16;
   188    }
   189    /*
   190     *  @(#) ti.targets; 1, 0, 3,429; 12-7-2010 14:48:16; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   191
   192     */
   193


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,429; 12-7-2010 14:48:16; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   210
   211     */
   212


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,429; 12-7-2010 14:48:16; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   198
   199     */
   200


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,429; 12-7-2010 14:48:16; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   195
   196     */
   197


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,429; 12-7-2010 14:48:16; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   184
   185     */
   186


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: ""
    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,429; 12-7-2010 14:48:16; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   156
   157     */
   158


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: ""
    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,429; 12-7-2010 14:48:16; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   164
   165     */
   166


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: ""
    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,429; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   145
   146     */
   147


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: ""
    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,429; 12-7-2010 14:48:16; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   165
   166     */
   167


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,429; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   153
   154     */
   155


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,429; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   123
   124     */
   125


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,429; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   130
   131     */
   132


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,429; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   130
   131     */
   132


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,429; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   184
   185     */
   186


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,429; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   185
   186     */
   187


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,429; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   177
   178     */
   179


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,429; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   178
   179     */
   180


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            shortEnums: true
    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.simTCI6616";
    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: "-mv6600 --abi=coffabi"
    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: "-mv6600 --abi=coffabi"
    52        };
    53
    54        override readonly config xdc.bld.ITarget2.Command lnk = {
    55            cmd: "lnk6x",
    56            opts: "--abi=coffabi"
    57        };
    58
    59        /*!
    60         *  ======== profiles ========
    61         *  The options in "profile" and "coverage" profiles are supported only
    62         *  for the compiler version 6.1 and newer, for this target. If the target
    63         *  is used with the compiler version 6.0, these options are removed
    64         *  from the command line.
    65         */
    66        override config xdc.bld.ITarget.OptionSet profiles[string] = [
    67            ["debug", {
    68                compileOpts: {
    69                    copts: "--symdebug:dwarf",
    70                    defs:  "-D_DEBUG_=1",
    71                }
    72            }],
    73            ["release", {
    74                compileOpts: {
    75                    copts: "-O2",
    76                },
    77            }],
    78            ["profile", {
    79                compileOpts: {
    80                    copts: "--gen_profile_info",
    81                },
    82            }],
    83            ["coverage", {
    84                compileOpts: {
    85                    copts: "--gen_profile_info",
    86                },
    87            }],
    88            ["whole_program", {
    89                compileOpts: {
    90                    copts: "-oe -O2 -mo",
    91                },
    92            }],
    93            ["whole_program_debug", {
    94                compileOpts: {
    95                    copts: "-oe --symdebug:dwarf -mo",
    96                },
    97            }],
    98        ];
    99
   100        /*!
   101         *  ======== asmOpts ========
   102         *  User configurable assembler options.
   103         *
   104         *  Defaults:
   105         *  @p(dlist)
   106         *      -`-qq`
   107         *          super quiet mode
   108         */
   109        override config xdc.bld.ITarget2.Options asmOpts = {
   110            prefix: "-qq",
   111            suffix: ""
   112        };
   113
   114        /*!
   115         *  ======== ccOpts ========
   116         *  User configurable compiler options.
   117         *
   118         *  Defaults:
   119         *  @p(dlist)
   120         *      -`-qq`
   121         *          super quiet mode
   122         *      -`-pdsw225`
   123         *          generate a warning for implicitly declared functions; i.e.,
   124         *          functions without prototypes
   125         */
   126        override config xdc.bld.ITarget2.Options ccOpts = {
   127            prefix: "-qq -pdsw225",
   128            suffix: ""
   129        };
   130
   131        /*!
   132         *  ======== ccConfigOpts ========
   133         *  User configurable compiler options for the generated config C file.
   134         *
   135         *  -mo places all functions into subsections
   136         *  --no_compress helps with compile time with no real difference in
   137         *  code size since the generated config.c is mostly data and small
   138         *  function stubs.
   139         */
   140        override config xdc.bld.ITarget2.Options ccConfigOpts = {
   141            prefix: "$(ccOpts.prefix) -mo",
   142            suffix: "$(ccOpts.suffix)"
   143        };
   144
   145        /*!
   146         *  ======== lnkOpts ========
   147         *  User configurable linker options.
   148         *
   149         *  Defaults:
   150         *  @p(dlist)
   151         *      -`-w`
   152         *          Display linker warnings
   153         *      -`-q`
   154         *          Quite run
   155         *      -`-u`
   156         *          Place unresolved external symbol into symbol table
   157         *      -`-c`
   158         *          ROM autoinitialization model
   159         *      -`-m`
   160         *          create a map file
   161         *      -`-l`
   162         *          archive library file as linker input
   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/rts6600_coff.lib"
   167        };
   168
   169        override config string includeOpts = "-I$(rootDir)/include";
   170
   171        final override readonly config string sectMap[string] =
   172            ti.targets.C62.sectMap;
   173
   174        override readonly config xdc.bld.ITarget.StdTypes stdTypes =
   175            ti.targets.C62.stdTypes;
   176
   177        override readonly config Int bitsPerChar =
   178            ti.targets.C62.bitsPerChar;
   179    }
   180
   181    /*
   182     *  @(#) ti.targets; 1, 0, 3,429; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   183
   184     */
   185


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            shortEnums: true
    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.simTCI6616";
    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: "-mv6600 -me --abi=coffabi"
    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: "-mv6600 -me --abi=coffabi"
    52        };
    53
    54        override readonly config xdc.bld.ITarget2.Command lnk = {
    55            cmd: "lnk6x",
    56            opts: "--abi=coffabi"
    57        };
    58
    59        /*!
    60         *  ======== profiles ========
    61         *  The options in "profile" and "coverage" profiles are supported only
    62         *  for the compiler version 6.1 and newer, for this target. If the target
    63         *  is used with the compiler version 6.0, these options are removed
    64         *  from the command line.
    65         */
    66        override config xdc.bld.ITarget.OptionSet profiles[string] = [
    67            ["debug", {
    68                compileOpts: {
    69                    copts: "--symdebug:dwarf",
    70                    defs:  "-D_DEBUG_=1",
    71                }
    72            }],
    73            ["release", {
    74                compileOpts: {
    75                    copts: "-O2",
    76                },
    77            }],
    78            ["profile", {
    79                compileOpts: {
    80                    copts: "--gen_profile_info",
    81                },
    82            }],
    83            ["coverage", {
    84                compileOpts: {
    85                    copts: "--gen_profile_info",
    86                },
    87            }],
    88            ["whole_program", {
    89                compileOpts: {
    90                    copts: "-oe -O2 -mo",
    91                },
    92            }],
    93            ["whole_program_debug", {
    94                compileOpts: {
    95                    copts: "-oe --symdebug:dwarf -mo",
    96                },
    97            }],
    98        ];
    99
   100        /*!
   101         *  ======== asmOpts ========
   102         *  User configurable assembler options.
   103         *
   104         *  Defaults:
   105         *  @p(dlist)
   106         *      -`-qq`
   107         *          super quiet mode
   108         */
   109        override config xdc.bld.ITarget2.Options asmOpts = {
   110            prefix: "-qq",
   111            suffix: ""
   112        };
   113
   114        /*!
   115         *  ======== ccOpts ========
   116         *  User configurable compiler options.
   117         *
   118         *  Defaults:
   119         *  @p(dlist)
   120         *      -`-qq`
   121         *          super quiet mode
   122         *      -`-pdsw225`
   123         *          generate a warning for implicitly declared functions; i.e.,
   124         *          functions without prototypes
   125         */
   126        override config xdc.bld.ITarget2.Options ccOpts = {
   127            prefix: "-qq -pdsw225",
   128            suffix: ""
   129        };
   130
   131        /*!
   132         *  ======== ccConfigOpts ========
   133         *  User configurable compiler options for the generated config C file.
   134         *
   135         *  -mo places all functions into subsections
   136         *  --no_compress helps with compile time with no real difference in
   137         *  code size since the generated config.c is mostly data and small
   138         *  function stubs.
   139         */
   140        override config xdc.bld.ITarget2.Options ccConfigOpts = {
   141            prefix: "$(ccOpts.prefix) -mo",
   142            suffix: "$(ccOpts.suffix)"
   143        };
   144
   145        /*!
   146         *  ======== lnkOpts ========
   147         *  User configurable linker options.
   148         *
   149         *  Defaults:
   150         *  @p(dlist)
   151         *      -`-w`
   152         *          Display linker warnings
   153         *      -`-q`
   154         *          Quite run
   155         *      -`-u`
   156         *          Place unresolved external symbol into symbol table
   157         *      -`-c`
   158         *          ROM autoinitialization model
   159         *      -`-m`
   160         *          create a map file
   161         *      -`-l`
   162         *          archive library file as linker input
   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/rts6600e_coff.lib"
   167        };
   168
   169        override config string includeOpts = "-I$(rootDir)/include";
   170
   171        final override readonly config string sectMap[string] =
   172            ti.targets.C62.sectMap;
   173
   174        override readonly config xdc.bld.ITarget.StdTypes stdTypes =
   175            ti.targets.C62.stdTypes;
   176
   177        override readonly config Int bitsPerChar =
   178            ti.targets.C62.bitsPerChar;
   179    }
   180
   181    /*
   182     *  @(#) ti.targets; 1, 0, 3,429; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   183
   184     */
   185


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,429; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   130
   131     */
   132


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,429; 12-7-2010 14:48:18; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   130
   131     */
   132


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,429; 12-7-2010 14:48:18; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   130
   131     */
   132


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,429; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   188
   189     */
   190


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,429; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   187
   188     */
   189


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     *  @(#) ti.targets; 1, 0, 3,429; 12-7-2010 14:48:18; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   290
   291     */
   292


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     *  ======== package.xdc ========
    14     *
    15     */
    16
    17    requires xdc.bld [1,0,1];
    18
    19    /*!
    20     *  ======== ti.targets ========
    21     *  Package of targets for TI code generation tools
    22     *
    23     *  The modules in this package implement the xdc.bld.ITarget interface; this
    24     *  interface "wraps" the compiler tool-chain with an abstract interface
    25     *  that enables these tools to to be used by the XDC Build Engine.
    26     */
    27    package ti.targets [1,0,3] {
    28        module C62, C62_big_endian;
    29        module C64, C64_big_endian;
    30        module C64P, C64P_big_endian, C674, C674_big_endian;
    31        module C67, C67_big_endian;
    32        module C67P;
    33        module C64T, C64T_big_endian, C66, C66_big_endian;
    34        module C54, C54_far;
    35        module C55, C55_large, C55_huge, C55P_word;
    36        module C28, C28_large, C28_float;
    37        module TMS470, TMS470_big_endian;
    38
    39        interface ITarget;
    40    }
    41    /*
    42     *  @(#) ti.targets; 1, 0, 3,429; 12-7-2010 14:48:18; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    43
    44     */
    45


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,429; 12-7-2010 14:48:18; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   206
   207     */
   208


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,429; 12-7-2010 14:48:18; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   198
   199     */
   200


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,246; 12-7-2010 14:48:16; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    62
    63     */
    64


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,246; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    62
    63     */
    64


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,246; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    58
    59     */
    60


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,246; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    59
    60     */
    61


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,246; 12-7-2010 14:48:16; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    61
    62     */
    63


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,246; 12-7-2010 14:48:16; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    62
    63     */
    64


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: "-g",
   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,246; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   179
   180     */
   181


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,246; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    36
    37     */
    38


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,246; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    37
    38     */
    39


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,246; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    31
    32     */
    33


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,246; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    31
    32     */
    33


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,246; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    40
    41     */
    42


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,246; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    41
    42     */
    43


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     *  ======== package.xdc ========
    14     *
    15     */
    16
    17    requires xdc.bld [1,0,1];
    18    requires ti.targets;
    19
    20    /*!
    21     *  ======== ti.targets.arm ========
    22     *  Package of Arm targets for TI code generation tools
    23     *
    24     */
    25    package ti.targets.arm [2,0,1,0] {
    26        interface IArm;
    27        module Arm7, Arm7_big_endian, Arm9, Arm9t;
    28        module Arm11, Arm11_big_endian;
    29        interface IM3, IM3_big_endian;
    30        module M3, M3_big_endian;
    31        interface IR4, IR4_big_endian;
    32        module R4, R4_big_endian;
    33        module R4t, R4t_big_endian;
    34    }
    35    /*
    36     *  @(#) ti.targets.arm; 2, 0, 1, 0,246; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    37
    38     */
    39


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,246; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    45
    46     */
    47


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,246; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    45
    46     */
    47


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,246; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    46
    47     */
    48


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,246; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    46
    47     */
    48


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,178; 12-7-2010 14:48:16; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    45
    46     */
    47


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,178; 12-7-2010 14:48:16; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    46
    47     */
    48


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,178; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    60
    61     */
    62


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,178; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    61
    62     */
    63


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,178; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    59
    60     */
    61


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,178; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    60
    61     */
    62


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        override readonly config xdc.bld.ITarget.Module base = ti.targets.arm.Arm9;
    21
    22        override config string platform   = "ti.platforms.evmDM8168";
    23
    24        override readonly config xdc.bld.ITarget2.Command lnk = {
    25            cmd:  "lnk470",
    26            opts: "--silicon_version=7A8 --strict_compatibility=on"
    27        };
    28    }
    29    /*
    30     *  @(#) ti.targets.arm.elf; 1, 0, 0,178; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    31
    32     */
    33


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 = "-I$(rootDir)/include/rts -I$(rootDir)/include ";
    24
    25        override readonly config xdc.bld.ITarget.Model model = {
    26            shortEnums: true,
    27        };
    28
    29        override readonly config xdc.bld.ITarget2.Command ar = {
    30            cmd:  "ar470",
    31            opts: "rq"
    32        };
    33
    34        override readonly config xdc.bld.ITarget2.Command vers = {
    35            cmd:  "cl470",
    36            opts: "--compiler_revision"
    37        };
    38
    39        override readonly config xdc.bld.ITarget2.Command lnk = {
    40            cmd:  "lnk470",
    41            opts: ""
    42        };
    43
    44        /*!
    45         *  ======== ccOpts ========
    46         *  User configurable compiler options.
    47         *
    48         *  Defaults:
    49         *  @p(dlist)
    50         *      -`-qq`
    51         *          super quiet mode
    52         *      -`-pdsw225`
    53         *          generate a warning for implicitly declared functions; i.e.,
    54         *          functions without prototypes
    55         */
    56        override config xdc.bld.ITarget2.Options ccOpts = {
    57            prefix: "-qq -pdsw225",
    58            suffix: ""
    59        };
    60
    61        /*!
    62         *  ======== ccConfigOpts ========
    63         *  User configurable compiler options for the generated config C file.
    64         */
    65        override config xdc.bld.ITarget2.Options ccConfigOpts = {
    66            prefix: "$(ccOpts.prefix) -ms",
    67            suffix: "$(ccOpts.suffix)"
    68        };
    69
    70        /*!
    71         *  ======== asmOpts ========
    72         *  User configurable assembler options.
    73         *
    74         *  Defaults:
    75         *  @p(dlist)
    76         *      -`-qq`
    77         *          super quiet mode
    78         */
    79        override config xdc.bld.ITarget2.Options asmOpts = {
    80            prefix: "-qq",
    81            suffix: ""
    82        };
    83
    84        /*!
    85         *  ======== lnkOpts ========
    86         *  User configurable linker options.
    87         *
    88         *  Defaults:
    89         *  @p(dlist)
    90         *      -`-w`
    91         *          Display linker warnings
    92         *      -`-q`
    93         *          Quite run
    94         *      -`-u`
    95         *          Place unresolved external symbol into symbol table
    96         *      -`-c`
    97         *          ROM autoinitialization model
    98         *      -`-m`
    99         *          create a map file
   100         */
   101        override config xdc.bld.ITarget2.Options lnkOpts = {
   102            prefix: "-w -q -u _c_int00",
   103            suffix: "-c -m $(XDCCFGDIR)/$@.map " /* + -l $(rootDir)/lib/linkLib */
   104        };
   105
   106        /*!
   107         *  ======== profiles ========
   108         *  Standard options profiles for the TI tool-chain.
   109         */
   110        override config xdc.bld.ITarget.OptionSet profiles[string] = [
   111            ["debug", {
   112                compileOpts: {
   113                    copts: "--symdebug:dwarf",
   114                    defs:  "-D_DEBUG_=1",
   115                }
   116            }],
   117            ["release", {
   118                compileOpts: {
   119                    copts: "-O2",
   120                },
   121            }],
   122            ["profile", {
   123                compileOpts: {
   124                    copts: "--symdebug:dwarf",
   125                },
   126            }],
   127            ["coverage", {
   128                compileOpts: {
   129                    copts: "--symdebug:dwarf",
   130                },
   131            }],
   132            ["whole_program", {
   133                compileOpts: {
   134                    copts: "-oe -O2 -ms",
   135                },
   136            }],
   137            ["whole_program_debug", {
   138                compileOpts: {
   139                    copts: "-oe --symdebug:dwarf -ms",
   140                },
   141            }],
   142        ];
   143
   144        final override readonly config string sectMap[string] = [
   145            [".text", "code"],
   146            [".stack", "stack"],
   147            [".bss", "data"],
   148            [".cinit", "code"],
   149            [".init_array", "code"],
   150            [".const", "code"],
   151            [".data", "data"],
   152            [".rodata", "data"],
   153            [".neardata", "data"],
   154            [".fardata", "data"],
   155            [".switch", "data"],
   156            [".sysmem", "data"],
   157            [".far", "data"],
   158            [".args", "data"],
   159            [".cio", "data"],
   160        ];
   161
   162        override readonly config Int bitsPerChar = 8;
   163
   164        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
   165            t_IArg          : { size: 4, align: 4 },
   166            t_Char          : { size: 1, align: 1 },
   167            t_Double        : { size: 8, align: 8 },
   168            t_Float         : { size: 4, align: 4 },
   169            t_Fxn           : { size: 4, align: 4 },
   170            t_Int           : { size: 4, align: 4 },
   171            t_Int8          : { size: 1, align: 1 },
   172            t_Int16         : { size: 2, align: 2 },
   173            t_Int32         : { size: 4, align: 4 },
   174            t_Int64         : { size: 8, align: 8 },
   175            t_Long          : { size: 4, align: 4 },
   176            t_LDouble       : { size: 8, align: 8 },
   177            t_LLong         : { size: 8, align: 8 },
   178            t_Ptr           : { size: 4, align: 4 },
   179            t_Short         : { size: 2, align: 2 },
   180            t_Size          : { size: 4, align: 4 },
   181        };
   182
   183        override config String binaryParser = "ti.targets.omf.elf.Elf32";
   184    }
   185
   186    /*
   187     *  @(#) ti.targets.arm.elf; 1, 0, 0,178; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   188
   189     */
   190


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,178; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    37
    38     */
    39


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,178; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    38
    39     */
    40


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,178; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    31
    32     */
    33


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,178; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    31
    32     */
    33


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,178; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    41
    42     */
    43


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,178; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    41
    42     */
    43


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     *  ======== package.xdc ========
    14     *
    15     */
    16
    17    requires xdc.bld [1,0,1];
    18
    19    /*!
    20     *  ======== ti.targets.arm.elf ========
    21     *  Package of Arm targets for TI code generation tools for ELF
    22     *
    23     */
    24    package ti.targets.arm.elf [1,0,0] {
    25        interface IArm, IR4, IR4_big_endian;
    26        interface IA8, IM3, IM3_big_endian;
    27        module Arm7, Arm7_big_endian, Arm9, Arm9t;
    28        module M3, M3_big_endian;
    29        module A8F, A8Ft;
    30        module R4, R4_big_endian;
    31        module R4t, R4t_big_endian;
    32        module R4F, R4F_big_endian;
    33        module R4Ft, R4Ft_big_endian;
    34    }
    35    /*
    36     *  @(#) ti.targets.arm.elf; 1, 0, 0,178; 12-7-2010 14:48:18; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    37
    38     */
    39


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,178; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    46
    47     */
    48


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,178; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    46
    47     */
    48


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,178; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    45
    46     */
    47


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,178; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    45
    46     */
    47


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,178; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    46
    47     */
    48


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,178; 12-7-2010 14:48:17; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    46
    47     */
    48


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,178; 12-7-2010 14:48:18; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    47
    48     */
    49


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,178; 12-7-2010 14:48:18; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    47
    48     */
    49


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,106; 12-7-2010 15:19:33; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    28
    29     */
    30


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=elfabi"
    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=elfabi"
    57        };
    58
    59        override readonly config xdc.bld.ITarget2.Command lnk = {
    60            cmd: "lnk6x",
    61            opts: "--abi=elfabi"
    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,196; 12-7-2010 14:48:22; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   140
   141     */
   142


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=elfabi"
    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=elfabi"
    53        };
    54
    55        override readonly config xdc.bld.ITarget2.Command lnk = {
    56            cmd: "lnk6x",
    57            opts: "--abi=elfabi"
    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,196; 12-7-2010 14:48:22; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   135
   136     */
   137


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=elfabi"
    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=elfabi"
    53        };
    54
    55        override readonly config xdc.bld.ITarget2.Command lnk = {
    56            cmd: "lnk6x",
    57            opts: "--abi=elfabi"
    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,196; 12-7-2010 14:48:22; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   139
   140     */
   141


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=elfabi"
    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=elfabi"
    53        };
    54
    55        override readonly config xdc.bld.ITarget2.Command lnk = {
    56            cmd: "lnk6x",
    57            opts: "--abi=elfabi"
    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,196; 12-7-2010 14:48:22; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   135
   136     */
   137


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        override readonly config string rts = "ti.targets.rts6000";
    32        override config string platform     = "ti.platforms.simTCI6616";
    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: "-mv6600 --abi=elfabi"
    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: "-mv6600 --abi=elfabi"
    52        };
    53
    54        override readonly config xdc.bld.ITarget2.Command lnk = {
    55            cmd: "lnk6x",
    56            opts: "--abi=elfabi"
    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/rts6600_elf.lib"
   126        };
   127
   128        override config string includeOpts = "-I$(rootDir)/include";
   129
   130        override readonly config xdc.bld.ITarget.StdTypes stdTypes =
   131            ti.targets.C62.stdTypes;
   132
   133        override readonly config Int bitsPerChar =
   134            ti.targets.C62.bitsPerChar;
   135    }
   136
   137    /*
   138     *  @(#) ti.targets.elf; 1, 0, 0,196; 12-7-2010 14:48:22; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   139
   140     */
   141


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        override readonly config string rts = "ti.targets.rts6000";
    32        override config string platform     = "ti.platforms.simTCI6616";
    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: "-me -mv6600 --abi=elfabi"
    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: "-me -mv6600 --abi=elfabi"
    52        };
    53
    54        override readonly config xdc.bld.ITarget2.Command lnk = {
    55            cmd: "lnk6x",
    56            opts: "--abi=elfabi"
    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/rts6600e_elf.lib"
   126        };
   127
   128        override config string includeOpts = "-I$(rootDir)/include";
   129
   130        override readonly config xdc.bld.ITarget.StdTypes stdTypes =
   131            ti.targets.C62.stdTypes;
   132
   133        override readonly config Int bitsPerChar =
   134            ti.targets.C62.bitsPerChar;
   135    }
   136
   137    /*
   138     *  @(#) ti.targets.elf; 1, 0, 0,196; 12-7-2010 14:48:22; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   139
   140     */
   141


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=elfabi"
    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=elfabi"
    52        };
    53
    54        override readonly config xdc.bld.ITarget2.Command lnk = {
    55            cmd: "lnk6x",
    56            opts: "--abi=elfabi"
    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 xdc.bld.ITarget.StdTypes stdTypes =
   131            ti.targets.C62.stdTypes;
   132
   133        override readonly config Int bitsPerChar =
   134            ti.targets.C62.bitsPerChar;
   135    }
   136
   137    /*
   138     *  @(#) ti.targets.elf; 1, 0, 0,196; 12-7-2010 14:48:22; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   139
   140     */
   141


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=elfabi"
    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=elfabi"
    57        };
    58
    59        override readonly config xdc.bld.ITarget2.Command lnk = {
    60            cmd: "lnk6x",
    61            opts: "--abi=elfabi"
    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,196; 12-7-2010 14:48:22; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   143
   144     */
   145


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=elfabi"
    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=elfabi"
    58        };
    59
    60        override readonly config xdc.bld.ITarget2.Command lnk = {
    61            cmd: "lnk6x",
    62            opts: " --abi=elfabi"
    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,196; 12-7-2010 14:48:22; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   140
   141     */
   142


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            [".init_array", "data"],
    64            [".const", "data"],
    65            [".data", "data"],
    66            [".rodata", "data"],
    67            [".neardata", "data"],
    68            [".fardata", "data"],
    69            [".switch", "data"],
    70            [".sysmem", "data"],
    71            [".far", "data"],
    72            [".args", "data"],
    73            [".cio", "data"],
    74            [".ti.handler_table", "data"],
    75        ];
    76
    77        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
    78            t_IArg          : { size: 4, align: 4 },
    79            t_Char          : { size: 1, align: 1 },
    80            t_Double        : { size: 8, align: 8 },
    81            t_Float         : { size: 4, align: 4 },
    82            t_Fxn           : { size: 4, align: 4 },
    83            t_Int           : { size: 4, align: 4 },
    84            t_Int8          : { size: 1, align: 1 },
    85            t_Int16         : { size: 2, align: 2 },
    86            t_Int32         : { size: 4, align: 4 },
    87            t_Int64         : { size: 8, align: 8 },
    88            t_Long          : { size: 4, align: 4 },
    89            t_LDouble       : { size: 8, align: 8 },
    90            t_LLong         : { size: 8, align: 8 },
    91            t_Ptr           : { size: 4, align: 4 },
    92            t_Short         : { size: 2, align: 2 },
    93            t_Size          : { size: 4, align: 4 },
    94        };
    95
    96        override config String stdInclude = "ti/targets/elf/std.h";
    97
    98        override config String binaryParser = "ti.targets.omf.elf.Elf32";
    99    }
   100    /*
   101     *  @(#) ti.targets.elf; 1, 0, 0,196; 12-7-2010 14:48:23; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   102
   103     */
   104


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     *  ======== package.xdc ========
    14     *
    15     */
    16
    17    requires xdc.bld [1,0,1];
    18
    19    /*!
    20     *  ======== ti.targets.elf ========
    21     *  Package of targets for TI code generation tools for ELF
    22     *
    23     */
    24    package ti.targets.elf [1,0,0] {
    25        interface ITarget;
    26        module C64P, C674, C64T, C67P;
    27        module C64P_big_endian, C674_big_endian, C64T_big_endian;
    28        module C66, C66_big_endian;
    29        module TMS470;
    30        module T16;
    31    }
    32    /*
    33     *  @(#) ti.targets.elf; 1, 0, 0,196; 12-7-2010 14:48:23; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    34
    35     */
    36


module ti.targets.elf.T16

     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     *  ======== T16.xdc ========
    14     *
    15     */
    16
    17    /*!
    18     *  ======== T16 ========
    19     *  TI T16 default runtime model (little endian)
    20     */
    21    metaonly module T16 inherits ITarget {
    22        override readonly config string name            = "T16";
    23        override readonly config string suffix          = "et16";
    24        override readonly config string isa             = "t16";
    25        override readonly config xdc.bld.ITarget.Model model = {
    26            endian: "little"
    27        };
    28        override readonly config string rts = "ti.targets.elf.rtst16";
    29        override config string platform     = "ti.platforms.simT16";
    30
    31        override readonly config xdc.bld.ITarget2.Command ar = {
    32            cmd: "art16",
    33            opts: "rq"
    34        };
    35
    36        override readonly config xdc.bld.ITarget2.Command cc = {
    37            cmd: "clt16 -c",
    38            opts: "--silicon_version=v210"
    39        };
    40
    41        override readonly config xdc.bld.ITarget2.Command asm = {
    42            cmd: "clt16 -c",
    43            opts: "--silicon_version=v210"
    44        };
    45
    46        override readonly config xdc.bld.ITarget2.Command lnk = {
    47            cmd: "lnkt16",
    48            opts: ""
    49        };
    50
    51        override readonly config xdc.bld.ITarget2.Command vers = {
    52            cmd: "clt16",
    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         *  ======== 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/rtst16_v200.lib"
   118        };
   119
   120        override config string includeOpts = "-I$(rootDir)/include";
   121
   122        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
   123            t_IArg          : { size: 4, align: 4 },
   124            t_Char          : { size: 1, align: 1 },
   125            t_Double        : { size: 8, align: 8 },
   126            t_Float         : { size: 4, align: 4 },
   127            t_Fxn           : { size: 4, align: 4 },
   128            t_Int           : { size: 4, align: 4 },
   129            t_Int8          : { size: 1, align: 1 },
   130            t_Int16         : { size: 2, align: 2 },
   131            t_Int32         : { size: 4, align: 4 },
   132            t_Int40         : { size: 8, align: 8 },
   133            t_Int64         : { size: 8, align: 8 },
   134            t_Long          : { size: 8, align: 8 },
   135            t_LDouble       : { size: 8, align: 8 },
   136            t_LLong         : { size: 8, align: 8 },
   137            t_Ptr           : { size: 4, align: 4 },
   138            t_Short         : { size: 2, align: 2 },
   139            t_Size          : { size: 4, align: 4 },
   140        };
   141
   142        override readonly config Int bitsPerChar = 8;
   143
   144        /*!
   145         *  ======== profiles ========
   146         *  Standard options profiles for the TI tool-chain.
   147         */
   148        override config xdc.bld.ITarget.OptionSet profiles[string] = [
   149            ["debug", {
   150                compileOpts: {
   151                    copts: "-g",
   152                    defs:  "-D_DEBUG_=1",
   153                }
   154            }],
   155            ["release", {
   156                compileOpts: {
   157                    copts: "-O2",
   158                },
   159            }],
   160            ["profile", {
   161                compileOpts: {
   162                    copts: "--symdebug:dwarf",
   163                },
   164            }],
   165            ["coverage", {
   166                compileOpts: {
   167                    copts: "--symdebug:dwarf",
   168                },
   169            }],
   170            ["whole_program", {
   171                compileOpts: {
   172                    copts: "-oe -O2 --gen_func_subsections",
   173                },
   174            }],
   175            ["whole_program_debug", {
   176                compileOpts: {
   177                    copts: "-oe --symdebug:dwarf --gen_func_subsections",
   178                },
   179            }],
   180        ];
   181    }
   182
   183    /*
   184     *  @(#) ti.targets.elf; 1, 0, 0,196; 12-7-2010 14:48:23; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   185
   186     */
   187


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: "-g",
   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,196; 12-7-2010 14:48:23; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
   211
   212     */
   213


package ti.targets.elf.rtst16

     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..elf.rtst16 ========
    16     *  Runtime support package for the t16 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.elf.rtst16 [1,0,0,0] {
    25    }
    26    /*
    27     *  @(#) ti.targets.elf.rtst16; 1, 0, 0, 0,10; 12-7-2010 15:19:26; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    28
    29     */
    30


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     */
    16
    17    /*!
    18     *  ======== MSP430.xdc ========
    19     *  MSP430 small code, small data model, little endian
    20     *
    21     *  This target corresponds to the TI default runtime model for MSP430 devices.
    22     */
    23    metaonly module MSP430 inherits ti.targets.ITarget {
    24        override readonly config string name    = "MSP430";
    25        override readonly config string suffix  = "430";
    26        override readonly config string isa     = "430";
    27        override readonly config string rts     = "ti.targets.msp430.rts430";
    28        override readonly config xdc.bld.ITarget.Model model = {
    29            endian: "little",
    30            codeModel: "small",
    31            dataModel: "small"
    32        };
    33
    34        override readonly config string stdInclude = "ti/targets/msp430/std.h";
    35
    36        override readonly config ti.targets.ITarget.Command ar = {
    37            cmd:  "ar430",
    38            opts: "rq"
    39        };
    40
    41        override readonly config ti.targets.ITarget.Command cc = {
    42            cmd:  "cl430 -c",
    43            opts: " -vmsp"
    44        };
    45
    46        override readonly config ti.targets.ITarget.Command vers = {
    47            cmd:  "cl430",
    48            opts: "--compiler_revision"
    49        };
    50
    51        override readonly config ti.targets.ITarget.Command asm = {
    52            cmd:  "cl430 -c",
    53            opts: " -vmsp"
    54        };
    55
    56        override readonly config ti.targets.ITarget.Command lnk = {
    57            cmd:  "lnk430",
    58            opts: ""
    59        };
    60
    61        /*!
    62         *  ======== asmOpts ========
    63         *  User configurable assembler options.
    64         *
    65         *  Defaults:
    66         *  @p(dlist)
    67         *      -`-qq`
    68         *          super quiet mode
    69         */
    70        override config ti.targets.ITarget.Options asmOpts = {
    71            prefix: "-qq",
    72            suffix: ""
    73        };
    74
    75        /*!
    76         *  ======== ccOpts ========
    77         *  User configurable compiler options.
    78         *
    79         *  Defaults:
    80         *  @p(dlist)
    81         *      -`-qq`
    82         *          super quiet mode
    83         *      -`-pdsw225`
    84         *          generate a warning for implicitly declared functions; i.e.,
    85         *          functions without prototypes
    86         */
    87        override config ti.targets.ITarget.Options ccOpts = {
    88            prefix: "-qq -pdsw225",
    89            suffix: ""
    90        };
    91
    92        /*!
    93         *  ======== ccConfigOpts ========
    94         *  User configurable compiler options for the generated config C file.
    95         */
    96        override config ti.targets.ITarget.Options ccConfigOpts = {
    97            prefix: "$(ccOpts.prefix)",
    98            suffix: "$(ccOpts.suffix)"
    99        };
   100
   101        /*!
   102         *  ======== linkLib ========
   103         *  Default MSP430 cgtools runtime library to link with
   104         *  (options: rts16e.lib, rts32e.lib)
   105         */
   106        config string linkLib = "rts430.lib";
   107
   108        /*!
   109         *  ======== lnkOpts ========
   110         *  User configurable linker options.
   111         *
   112         *  Defaults:
   113         *  @p(dlist)
   114         *      -`-w`
   115         *          Display linker warnings
   116         *      -`-q`
   117         *          Quite run
   118         *      -`-u`
   119         *          Place unresolved external symbol into symbol table
   120         *      -`-c`
   121         *          ROM autoinitialization model
   122         *      -`-m`
   123         *          create a map file
   124         */
   125        override config ti.targets.ITarget.Options lnkOpts = {
   126            prefix: "-w -q -u _c_int00",
   127            suffix: "-c -m $(XDCCFGDIR)/$@.map " /* + -l $(rootDir)/lib/linkLib */
   128        };
   129
   130        /*!
   131         *  ======== profiles ========
   132         *  Standard options profiles for the TI tool-chain.
   133         */
   134        override config xdc.bld.ITarget.OptionSet profiles[string] = [
   135            ["debug", {
   136                compileOpts: {
   137                    copts: "-g",
   138                    defs:  "-D_DEBUG_=1",
   139                }
   140            }],
   141            ["release", {
   142                compileOpts: {
   143                    copts: "-O2",
   144                },
   145            }],
   146            ["profile", {
   147                compileOpts: {
   148                    copts: "-gp",
   149                },
   150            }],
   151            ["coverage", {
   152                compileOpts: {
   153                    copts: "-gp",
   154                },
   155            }],
   156            ["whole_program", {
   157                compileOpts: {
   158                    copts: "-oe -O2",
   159                },
   160            }],
   161            ["whole_program_debug", {
   162                compileOpts: {
   163                    copts: "-oe --symdebug:dwarf",
   164                },
   165            }],
   166        ];
   167
   168        override config string includeOpts = "-I$(rootDir)/include ";
   169
   170        final override readonly config string sectMap[string] = [
   171            [".text", "code"],
   172            [".cinit", "code"],
   173            [".const", "code"],
   174            [".pinit", "code"],
   175
   176            [".bss", "data"],
   177            [".sysmem", "data"],
   178            [".stack", "stack"],
   179            [".args", "data"],
   180            [".cio", "data"],
   181            [".reset", "data"],
   182        ];
   183
   184        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
   185            t_IArg          : { size: 2, align: 2 },
   186            t_Char          : { size: 1, align: 1 },
   187            t_Double        : { size: 4, align: 2 },
   188            t_Float         : { size: 4, align: 2 },
   189            t_Fxn           : { size: 2, align: 2 },
   190            t_Int           : { size: 2, align: 2 },
   191            t_Int8          : { size: 1, align: 1 },
   192            t_Int16         : { size: 2, align: 2 },
   193            t_Int32         : { size: 4, align: 2 },
   194            t_Long          : { size: 4, align: 2 },
   195            t_LDouble       : { size: 4, align: 2 },
   196            t_LLong         : { size: 4, align: 2 },
   197            t_Ptr           : { size: 2, align: 2 },
   198            t_Short         : { size: 2, align: 2 },
   199            t_Size          : { size: 2, align: 2 },
   200        };
   201    };


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",
   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",
   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

     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",
   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",
   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

     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    }


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

     1    /*
     2     *  Copyright 2010 by Texas Instruments Incorporated.
     3     *
     4     */
     5
     6    /*
     7     *  ======== package.xdc ========
     8     */
     9    package ti.targets.omf.cof {
    10        module Settings;
    11    };
    12    /*
    13     *  @(#) ti.targets.omf.cof; 1,0,0,49; 12-7-2010 15:19:26; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    14
    15     */
    16


module ti.targets.omf.cof.Settings

     1    /*
     2     *  Copyright 2010 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,49; 12-7-2010 15:19:25; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    37
    38     */
    39


package ti.targets.omf.elf

     1    /*
     2     *  Copyright 2010 by Texas Instruments Incorporated.
     3     *
     4     */
     5
     6    /*
     7     *  ======== ti.targets.omf.elf ========
     8     *  Elf file support
     9     */
    10    package ti.targets.omf.elf {
    11    }
    12    /*
    13     *  @(#) ti.targets.omf.elf; 1,0,0,56; 12-7-2010 15:19:43; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    14
    15     */
    16


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,323; 12-7-2010 15:19:42; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    28
    29     */
    30


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,323; 12-7-2010 15:19:52; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    28
    29     */
    30


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,323; 12-7-2010 15:19:50; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    28
    29     */
    30


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,324; 12-7-2010 15:19:54; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    28
    29     */
    30


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,323; 12-7-2010 15:20:10; /db/ztree/library/trees/xdctargets/xdctargets-c37x/src/ xlibrary
    28
    29     */
    30


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 relative to the package path or 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,298; 11-16-2010 11:19:56; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   435     */
   436


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,298; 11-16-2010 11:19:56; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   337     */
   338


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 the `xdc`
   366         *                      tool.
   367         *                   -  `xdc.bld.INVALID_PACKAGE`
   368         *                      This error is reported when a consumer tries to
   369         *                      use a corrupted package. Try rebuilding the
   370         *                      package causing the problem.
   371         *
   372         *  @see xdc.bld.Release#Desc
   373         */
   374        Release.DescArray getReleaseDescs(String pname);
   375
   376        /*!
   377         *  ======== initializeModel ========
   378         *  @_nodoc
   379         *  Initialize the build model
   380         *
   381         *  @param(args)    - an array of arguments whose first element is
   382         *                    the path to a config.bld script and subsequent
   383         *                    arguments are the argument (usually) specified
   384         *                    by `XDCARGS`.
   385         */
   386        function initializeModel(args);
   387    }
   388    /*
   389     *  @(#) xdc.bld; 1, 0, 2,297; 11-16-2010 11:20:04; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   390     */
   391


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 RunTime Support (RTS) package that
   187         *          will be implicitly loaded prior to running the executable's
   188         *          configuration script.  If this field is set to `null`, then
   189         *          no RTS package will be loaded.  If this field is not set (or
   190         *          set to `undefined`), the RTS package specified by this
   191         *          executable's target will be used (see
   192         *          {@link xdc.bld.ITarget#rts}) .
   193         *
   194         *  @field(cpuArgs)  This field is a hash-table of name-value pairs
   195         *          interpreted by the CPU as register settings that exist at the
   196         *          time that the executable is loaded; e.g., it is possible to
   197         *          specify a non-reset value for the `PMST` register on a C54xx
   198         *          CPU by setting this parameter to `{PMST: 0xffff}`.
   199         *
   200         *  @field(exportCfg)  If this field is set to true, the configuration
   201         *          script will be part of the releases named in the releases
   202         *          array.  If it is unspecified (or set to `null`) and the
   203         *          release specifies that configurations are to be exported,
   204         *          the configuration script will be part of the release.  In
   205         *          all other cases, the configuration is not part of the
   206         *          release.
   207         *
   208         *  @field(exportSrc)  If this field is set to true, the sources
   209         *          specified via `{@link xdc.bld.Executable#addObjects()}`
   210         *          will be part of the releases named in the releases
   211         *          array.  If it is unspecified (or set to `null`) and the
   212         *          release specifies that sources are to be exported,
   213         *          the sources will be part of the release.  In
   214         *          all other cases, the sources are not added to the
   215         *          release.
   216         *
   217         *  @field(exportExe)  If this field is set to true, the executable
   218         *          will be part of the releases named in the releases
   219         *          array.  If it is unspecified (or set to `null`) and the
   220         *          release specifies that configurations are to be exported,
   221         *          the executable will be part of the release.  In
   222         *          all other cases, the executable is not part of the
   223         *          release.
   224         *
   225         *  @field(releases)  This array contains releases that will contain the
   226         *          executable.  Thus, a single executable can be part of any set
   227         *          of releases.  Each executable is always added to the
   228         *          package's "default release" in addition to any releases
   229         *          specified in the releases array.
   230         *
   231         *  @field(test) If this field is set, it defines default attributes for
   232         *          tests added to this executable, including the implicitly
   233         *          added test (see {@link xdc.bld.PackageContents#addExecutable}).
   234         *
   235         *  @field(linkTemplate) If this field is set, it defines the linker
   236         *          command file template to be used to link this executable.
   237         *          This specification may, however, be overridden by the
   238         *          configuration script (see
   239         *          {@link xdc.cfg.Program#linkTemplate}).
   240         *
   241         *          As with configuration scripts, if the specified file does not
   242         *          exist in the package where the executable is being built and
   243         *          the name does not begin with `"./"`, it is searched for along
   244         *          the package path.  Thus, it is possible to use templates in
   245         *          other packages to build executables; e.g., to use the linker
   246         *          command file "`myExe.cmd`" from the `ti.bios.examples.hello`
   247         *          package, `linkTemplate` should be set to
   248         *          `"ti/bios/examples/hello/myExe.cmd"`.
   249         *
   250         *  @see #attrs
   251         *  @see xdc.bld.PackageContents#Attrs
   252         */
   253        struct Attrs {
   254            String  profile;        /*! target options profile */
   255            String  aopts;          /*! asm options for objs added to this exe */
   256            String  copts;          /*! C/C++ options for objs added to this exe */
   257            String  cfgcopts;       /*! C/C++ options for the C config file */
   258            String  defs;           /*! definitions for objs added to this exe */
   259            String  incs;           /*! include opts for objs added to this exe */
   260            String  lopts;          /*! linker options for this exe */
   261            String  tcopts;         /*! `tconf` options for this exe */
   262            String  xsopts;         /*! `xs` options for this exe */
   263            String  cpuId;          /*! optional id of CPU on platform */
   264            String  rtsName;        /*! optional run time support package name */
   265            any     cpuArgs;        /*! optional register settings */
   266            String  cfgScript;      /*! optional name of config script */
   267            String  cfgHome;        /*! optional home package of config model */
   268            String  cfgArgs;        /*! optional arguments passed to cfgScript */
   269            Bool    cfgArgsEncoded; /*! if true, cfgArgs is encoded via escape() */
   270            Bool    exportExe;      /*! export executable's exe file? */
   271            Bool    exportCfg;      /*! export executable's config script? */
   272            Bool    exportSrc;      /*! if true, export exe sources to releases */
   273            Release.Instance releases[]; /*! releases that this exe is a part of */
   274            Test.Attrs  test;       /*! test attrs for tests added to this exe */
   275            String  linkTemplate;   /*! linker command file template for this exe*/
   276            Bool    isRom;          /*! if true, exe is a ROMable sub-assembly */
   277        };
   278
   279    instance:
   280        /*!
   281         *  ======== create ========
   282         *  @_nodoc
   283         *  Instances should only be created via PackageContents.addExecutable()
   284         */
   285        create();
   286
   287        /*!
   288         *  ======== name ========
   289         *  Base name of the executable.
   290         *
   291         *  This name is used to construct the final executable file name as
   292         *  follows:
   293         *  @p(code)
   294         *      <name>.x<target_suffix>
   295         *  @p
   296         *  where `<name>` is name and `<target_suffix>` is the suffix defined
   297         *  by each target that the file is built for. See NOTE in
   298         * `{@link xdc.bld}` for filename rules.
   299         *
   300         *  Note: if the same executable is to be built for different platforms
   301         *  (having the same target), then name must "encode" the platform's
   302         *  name.
   303         */
   304        config String name;
   305
   306        /*!
   307         *  ======== platform ========
   308         *  The name of the platform that will run this executable.
   309         *
   310         *  Platforms are modeled as packages that have a module called
   311         *  "Platform"; thus the platform name is really a package name.
   312         */
   313        config String platform;
   314
   315        /*!
   316         *  ======== target ========
   317         *  The target (on a platform) that executable should be built for.
   318         *
   319         *  This parameter is used to determine the target to use for any
   320         *  objects added to the executable.
   321         *
   322         *  During configuration, the executable's platform package can
   323         *  validate that the target is compatible with the configuration of
   324         *  the platform; the target object is accessible via the expression
   325         *  `Program.build.target`.
   326         */
   327        config ITarget.Module target;
   328
   329        /*!
   330         *  ======== attrs ========
   331         *  This executable's optional attributes.
   332         *
   333         *  These attributes are "inherited" by all objects added to this
   334         *  executable; i.e., any object attribute that is undefined but is
   335         *  defined here will be assigned the value from these attributes.
   336         *
   337         *  Similarly, any unspecified attributes that also appear in
   338         *  `{@link xdc.bld.PackageContents#Attrs}` are inherited from
   339         *  `{@link xdc.bld.PackageContents#attrs}`.
   340         *
   341         *  @see xdc.bld.PackageContents#Attrs
   342         */
   343        config Executable.Attrs attrs;
   344
   345        /*!
   346         *  ======== addObjects ========
   347         *  Add specified object to be built and linked into this executable.
   348         *
   349         *  All objects added to the executable are built with the symbol
   350         *  `xdc_cfg__header__` defined to be the name of the executable-specific
   351         *  C header generated by the program configuration tool.  This symbol
   352         *  is used by the `xdc/cfg/global.h` header to include the generated
   353         *  header file; see `{@link xdc.cfg.Program#global}`.  Thus, it is
   354         *  possible to portably include configuration specific definitions in a
   355         *  source file that is used in many different configurations.
   356         *
   357         *  For example, a portable `main.c` might be structured as follows:
   358         *  @p(code)
   359         *      #include <xdc/std.h>
   360         *      #include <ti/bios/include/log.h>
   361         *
   362         *      #include <xdc/cfg/global.h>    // include declaration of trace
   363         *
   364         *      int main(int argc, char *argv[])
   365         *      {
   366         *          LOG_printf(trace, "hello world");
   367         *              :
   368         *      }
   369         *  @p
   370         *
   371         *  @a(Examples)
   372         *
   373         *      1. Locate a source file whose name starts with "hello" with
   374         *      an extension supported by the executable's target, compile it
   375         *      and link it into the executable `myExe`:
   376         *      @p(code)
   377         *          myExe.addObjects(["hello"]);
   378         *      @p
   379         *      If hello.c exists, compile and add to `myExe`, if hello.asm exists
   380         *      assemble and add to `myExe`, etc.  If no such file is located,
   381         *      a warning is emitted.
   382         *
   383         *      2. Compile hello.c and add to the executable `myExe`:
   384         *      @p(code)
   385         *          myExe.addObjects(["hello.c"]);
   386         *      @p
   387         *      3. Names may include sub-directory prefixes.  In this case, the
   388         *      source will be located in a sub-directory of the current
   389         *      package.  The following statement declares that the file
   390         *      "`foo/hello.c`" should be compiled and linked into the executable
   391         *      `myExe`:
   392         *      @p(code)
   393         *          myExe.addObjects(["foo/hello.c"]);
   394         *      @p
   395         *      As in the previous examples, the extension ".c" is optional.
   396         *      In case an extension is not supplied, each extension
   397         *      understood by the target will be tried until a source file
   398         *      is located.
   399         *
   400         *      4. It is also possible to supply file specific compilation
   401         *      options.
   402         *      @p(code)
   403         *          myExe.addObjects(["fir.c", "iir.c"], {defs: "-D_DEBUG"});
   404         *      @p
   405         *      In this case, both files fir.c and iir.c will be compiled
   406         *      with the "`-D_DEBUG`" flag.  Any setting of `attrs.defs` in the
   407         *      executable or package is overridden by this definition.
   408         *
   409         *  @param(names)       array of base names of the sources of object files
   410         *                      to be created and linked into the executable.
   411         *                      See NOTE in `{@link xdc.bld}` for filename rules.
   412         *  @param(objAttrs)    optional `{@link xdc.bld.Object#Attrs}` for the
   413         *                      array of objects added; all objects named by names
   414         *                      will be given the attributes `objAttrs`.
   415         *  @a(returns)         `void`
   416         *
   417         *  @a(throws)          `Error` exceptions are thrown for fatal errors
   418         *
   419         *  @see xdc.cfg.Program#global
   420         */
   421        Void addObjects(String names[], Object.Attrs objAttrs = {});
   422
   423        /*!
   424         *  ======== addTest ========
   425         *  Add specified test to executable.
   426         *
   427         *  A test encapsulates an executable and a set of arguments passed to
   428         *  the executable when it is run.
   429         *
   430         *  Tests are run by naming the goal "`<test_name>.test`" on the xdc
   431         *  command line; `<test_name>` is the test's name.
   432         *
   433         *  Multiple tests may have the same name; in this case, it is possible
   434         *  to run all tests using the single goal "`<test_name>.test`"
   435         *
   436         *  @param(testAttrs)   test attrs object (`{@link xdc.bld.Test#Attrs}`)
   437         *
   438         *  @a(returns)         the `{@link xdc.bld.Test}` instance object created
   439         *
   440         *  @a(throws)          `Error` exceptions are thrown for fatal errors
   441         */
   442        Test.Instance addTest(Test.Attrs testAttrs);
   443    }
   444    /*
   445     *  @(#) xdc.bld; 1, 0, 2,297; 11-16-2010 11:20:04; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   446     */
   447


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     *  ======== ITarget.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     *  @(#) xdc.bld; 1, 0, 2,297; 11-16-2010 11:20:04; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   149     */
   150


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         *  @field(defs)    a string of macro definitions each of the form
   567         *                  "`-Dname=value`" separated by white space
   568         *  @field(incs)    a string of include directories each of the form
   569         *                  "`-Idir`" separated by white space
   570         *
   571         *  @a(Predefined Macros)
   572         *  The XDC Build Engine automatically adds several predefined macros via
   573         *  `-D` definitions that enable conditional compilation of source files
   574         *  based on build-specific attributes.
   575         *  @p(dlist)
   576         *      - `xdc_bld__profile_`{profile_name}
   577         *          this symbol is always defined and {profile_name} is the
   578         *          compile goal's (see `{@link #CompileGoal}`) profile name.
   579         *  @p
   580         *
   581         *  In addition, each target defines a set of macros that enable clients
   582         *  to portably support big/little endian targets, for example.  These
   583         *  macros are indirectly included by sources that include `xdc/std.h`;
   584         *  see `{@link xdc}`.
   585         *
   586         *  @see #OptionSet
   587         *  @see #CompileGoal
   588         *  @see xdc
   589         */
   590        struct CompileOptions {
   591            String aopts;       /*! goal specific ASM options */
   592            String copts;       /*! goal specific C compiler options */
   593            String cfgcopts;    /*! goal specific C config file options */
   594            String defs;        /*! goal specific C/ASM definition options */
   595            String incs;        /*! goal specific C/ASM include options */
   596        };
   597
   598        /*!
   599         *  ======== OptionSet ========
   600         *  Collection of tool-chain options.
   601         *
   602         *  This structure is used to define a collection of tool-chain
   603         *  options that are used as a group to achieve some effect supported
   604         *  by the tool-chain.  For example, some compilers require that
   605         *  specific options be passed to the compiler *and* linker in order
   606         *  to generate execution profile information or code coverage
   607         *  statistics.
   608         *
   609         *  @field(compilerOptions) a set of compiler/assembler options
   610         *  @field(linkOpts)        a string of target-specific linker options
   611         *  @field(archiveOpts)     a string of target-specific archiver options
   612         *  @field(filters)         an array of filters applied (in order) to
   613         *                          tool-chain commands
   614         *
   615         *  @see #profiles
   616         */
   617        struct OptionSet {
   618            CompileOptions  compileOpts;    /*! profile-specific compiler opts */
   619            String          linkOpts;       /*! profile-specific linker opts */
   620            String          archiveOpts;    /*! profile-specific archiver opts */
   621
   622            ITargetFilter.InstDesc  filters[]; /*! ITargetFilter instance descs */
   623        };
   624
   625        /*!
   626         *  ======== profiles ========
   627         *  Profiles supported by this target.
   628         *
   629         *  A profile is a collection of tool options used to create a
   630         *  library or executable that supports a certain "flavor" of library
   631         *  or executable; e.g., "debug" or "release".
   632         *
   633         *  Some profile names are supported by all targets even though the
   634         *  targets use different compilers (and therefore different options).
   635         *  These profile names makes it possible for a package to build
   636         *  libraries or executables in a "debug" (or "release") profile
   637         *  independent of the target, for example.
   638         *
   639         *  All targets are required to support "debug" and "release" profile
   640         *  names.
   641         *
   642         *  Profile options are added to beginning of any goal specific options
   643         *  specified by the user before being passed to the target.
   644         */
   645        config OptionSet profiles[string] = [
   646            ["release", {}],
   647            ["debug", {}],
   648        ];
   649
   650        /*!
   651         *  ======== CompileGoal ========
   652         *  The goal specification passed to the `{@link #compile}`
   653         *  function.
   654         *
   655         *  @see #compile
   656         *  @see #scompile
   657         */
   658        struct CompileGoal {
   659            String base;        /*! base name of the source and destination */
   660            String dstPrefix;   /*! directory prefix of destination file */
   661            String dstSuffix;   /*! suffix of destination file; e.g., ".o62" */
   662            String srcSuffix;   /*! optional suffix of source file; e.g., ".c" */
   663            String srcPrefix;   /*! optional directory prefix of source file */
   664            String profile;     /*! index into profiles map */
   665            CompileOptions opts;/*! goal specific compiler options */
   666            Bool configOpts;    /*! true if compiling the generated C config file */
   667        };
   668
   669        /*!
   670         *  ======== LinkGoal ========
   671         *  The goal specification passed to the `{@link #link}` function.
   672         *
   673         *  @see #link
   674         */
   675        struct LinkGoal {
   676            String base;        /*! base name of the source and destination */
   677            String dstPrefix;   /*! directory prefix of destination file */
   678            String dstSuffix;   /*! suffix of destination file; e.g., ".x62" */
   679            String files;       /*! string of files to link with */
   680            String profile;     /*! index into profiles map */
   681            String opts;        /*! goal specific linker options */
   682            Bool dllMode;       /*! true if we're linking an assembly */
   683            Bool isRom;         /*! reflects the `isRom` attribute */
   684        };
   685
   686        /*!
   687         *  ======== ArchiveGoal ========
   688         *  The goal specification passed to the `{@link #archive}`
   689         *  function.
   690         *
   691         *  @see #archive
   692         */
   693        struct ArchiveGoal {
   694            String base;        /*! base name of the source and destination */
   695            String dstPrefix;   /*! directory prefix of destination file */
   696            String dstSuffix;   /*! suffix of destination file; e.g., ".a62" */
   697            String files;       /*! String of files to archive */
   698            String profile;     /*! index into profiles map */
   699            String opts;        /*! goal specific archiver options */
   700        };
   701
   702        /*!
   703         *  ======== CommandSet ========
   704         *  The commands necessary to create a specified goal.
   705         *
   706         *  This structure is the return value of the `{@link #compile}`,
   707         *  `{@link #link}` and `{@link #archive}` functions.  This value is then
   708         *  used to generate a makefile or any other files necessary to generate
   709         *  a specified goal.
   710         *
   711         *  @field(msg)     a brief synopsis of the commands specified by `cmds`;
   712         *                  this string is output in lieu of `cmds` when building
   713         *                  in "non-verbose" mode.
   714         *
   715         *  @field(cmds)    a single string of commands that must be executed
   716         *                  to complete the specified operation.  Multiple
   717         *                  commands may be specified by separating each command
   718         *                  with the '\n' character.
   719         *
   720         *                  To facilitate the creation of "portable" makefiles and
   721         *                  to simplify the implementation of targets, certain
   722         *                  distinguished "macros" may be embedded in this string.
   723         *                  The build engine replaces these macros with the
   724         *                  values described below.
   725         *                  @p(dlist)
   726         *                      - `$(rootDir)`
   727         *                          the target's `{@link #rootDir}` configuration
   728         *                          parameter
   729         *                      - `$(packageBase)`
   730         *                          the target package's
   731         *                          `{@link xdc.IPackage#packageBase}` property
   732         *                      - `$(XDCINCS)`
   733         *                          a set of "-I" options that names each
   734         *                          repository in the package path
   735         *                  @p
   736         *
   737         *  @field(envs)    an array of "name=value" strings that represent
   738         *                  environment variables that are defined prior to the
   739         *                  execution of the commands specified by `cmds`
   740         *
   741         *  @field(path)    an array of directory names that are used to compose
   742         *                  the PATH environment variable that is in effect when
   743         *                  the commands specified by `cmds` are run.
   744         *
   745         *  @see #archive
   746         *  @see #compile
   747         *  @see #scompile
   748         *  @see #link
   749         */
   750        struct CommandSet {
   751            String msg;         /*! brief message describing subsequent commands */
   752            String cmds;        /*! commands necessary to generate goal */
   753            String path[];      /*! host-independent representation of PATH */
   754            String envs[];      /*! environment variable settings for the cmds */
   755        };
   756
   757        /*!
   758         *  ======== archive ========
   759         *  Create an archive.
   760         *
   761         *  This function is called during makefile generation to convert build
   762         *  goals into specific commands that generate the specified goal.
   763         *
   764         *  @param(goal) the `{@link #ArchiveGoal}` defining the archive to build.
   765         *
   766         *  @a(returns)
   767         *  This function returns a `{@link #CommandSet}`.  If non-`null`, this
   768         *  object defines the commands that must be executed to create the
   769         *  specified object file.  If `null`, then goal can not be achieved.
   770         *
   771         *  @a(throws)  `Error` exceptions are thrown for fatal errors.
   772         */
   773        CommandSet* archive(ArchiveGoal *goal);
   774
   775        /*!
   776         *  ======== compile ========
   777         *  Compile a source file into an object file.
   778         *
   779         *  This function is called during makefile generation to convert build
   780         *  goals into specific commands that generate the specified object
   781         *  file goal.
   782         *
   783         *  @param(goal) a `{@link #CompileGoal}` that specifies what file to
   784         *               compile, the output file name, and any goal-specific
   785         *               options to use
   786         *
   787         *  @a(returns)
   788         *  This function retuns a `{@link #CommandSet}`.  If non-`null`,
   789         *  this object defines the commands that must be executed to create the
   790         *  specified object file.  If `null`, then goal can not be achieved.
   791         *
   792         *  @a(throws)  `Error` exceptions are thrown for fatal errors.
   793         */
   794        CommandSet* compile(CompileGoal *goal);
   795
   796        /*!
   797         *  ======== scompile ========
   798         *  Compile a source file into an assembly language file.
   799         *
   800         *  This function is called during makefile generation to convert build
   801         *  goals into specific commands that generate the specified assembly
   802         *  language source goal.
   803         *
   804         *  @param(goal) a `{@link #CompileGoal}` that specifies what file to
   805         *               compile, the output file name, and any goal-specific
   806         *               options to use
   807         *
   808         *  @a(returns)
   809         * This function returns a `{@link #CommandSet}`.  If non-`null`, this
   810         * object defines the commands that must be executed to create the
   811         * specified assembly language file.  If `null`, then goal
   812         * can not be achieved or is unnecessary (e.g., because
   813         * the source file is already an asm file).
   814         *
   815         *  @a(throws)  `Error` exceptions are thrown for fatal errors.
   816         */
   817        CommandSet* scompile(CompileGoal *goal);
   818
   819        /*!
   820         *  ======== link ========
   821         *  Link object files to produce an executable.
   822         *
   823         *  This function is called during makefile generation to convert build
   824         *  goals into specific commands that generate the specified goal.
   825         *
   826         *  @param(goal) a `{@link #LinkGoal}` that specifies the output file
   827         *               name, a list of files to link with, and any goal-specific
   828         *               options to use
   829         *
   830         *  @a(returns)
   831         *  This function returns a `{@link #CommandSet}`.  If non-`null`, this
   832         *  object defines the commands that must be executed to create the
   833         *  specified object file.  If `null`, then goal can not be
   834         *  achieved.
   835         *
   836         *  @a(throws)  `Error` exceptions are thrown for fatal errors.
   837         */
   838        CommandSet* link(LinkGoal *goal);
   839
   840        /*!
   841         *  ======== getVersion ========
   842         *  Get a target-specific Compatibility Key string
   843         *
   844         *  This function is called during makefile generation to obtain a
   845         *  target-specific Compatibility Key string.  This string is of the
   846         *  form:
   847         *  @p(code)
   848         *      "<pkg>.<mod>{<d0>,<d1>,<d2>,<d3>"
   849         *  @p
   850         *  where, `<pkg>.<mod>` is the name of the target, and `<d0>`, `<d1>`,
   851         *  etc. forms a Compatibility Key.
   852         *
   853         *  @a(returns)
   854         *  This function returns a string that encodes the name of the target
   855         *  and its Compatibility Key.
   856         *
   857         *  @a(throws)  `Error` exceptions are thrown for fatal errors.
   858         */
   859        String getVersion();
   860
   861        typedef String StringArray[];
   862
   863        /*!
   864         *  ======== getISAChain ========
   865         *  Get this target's ISA "is compatible with" relation.
   866         *
   867         *  Returns an array of ISA names (including this target's ISA) that
   868         *  represents the "is a" relation between ISA's.  The array starts with
   869         *  the most general ISA and ends with this target's ISA or with the
   870         *  optionally specified argument.  This relation is used to:
   871         *  @p(nlist)
   872         *      - pre-define macro definitions that enable code to be
   873         *        conditionally compiled based on compatible versions of a
   874         *        target's ISA.
   875         *
   876         *      - locate appropriate source files during makefile generation;
   877         *        each ISA named in a chain causes the extensions ".s"isa to be
   878         *        added to the ITarget.extensions table (in the reverse order
   879         *        that they appear in the chain).  For example, if a target's
   880         *        ISA is "64P" and the returned chain is ["62", "64", "64P"],
   881         *        the following assembly language suffixes are added to
   882         *        the target's extensions table: ".s64P", ".s64", ".s62".
   883         *
   884         *      - determine the assembly language suffix used during legacy BIOS
   885         *        configuration; the first element of the target's ISA chain
   886         *        defines the suffix.  For example, if a target's ISA is "64P"
   887         *        and the returned chain is ["62", "64", "64P"], the assembly
   888         *        suffix is ".s62".
   889         *  @p
   890         *
   891         *  This relation may also be used in the future to help validate
   892         *  combinations of targets and platforms; a target's CPU ISA must
   893         *  appear on the chain specified by the platform's CPU ISA.
   894         *
   895         *  @param(isa) the ISA identifier string for the ISA to lookup; if null
   896         *              then the target's ISA is used (ITarget.isa).
   897         *
   898         *  @a(returns)
   899         *  This function returns an array of ISA strings where the last string
   900         *  is the optionally specified ISA string or this target's ISA,
   901         *  and the first string is the "base" ISA in the
   902         *  is source compatible" relationship.
   903         *  If the specified ISA string is not in this target's chain
   904         *  of compatible targets, `null` is returned.
   905         *
   906         *  @a(throws)  `Error` exceptions are thrown for fatal errors.
   907         *
   908         */
   909        function getISAChain(isa);
   910
   911        /*!
   912         *  ======== findSuffix ========
   913         *  Find the suffix that is compatible with this target.
   914         *
   915         *  This function determines the list of targets supported by the
   916         *  package given as the argument. From that list, this function
   917         *  returns the suffix of a target that is compatible with this target.
   918         *  Compatibility in this case means that object files created by a
   919         *  target having the suffix returned by this function can be linked
   920         *  into an executable produced using this target. In the case where more
   921         *  than one suffix is compatible, this function returns a suffix in the
   922         *  following order of preference:
   923         *  @p(nlist)
   924         *      - if this target's suffix is in the list, that suffix is returned.
   925         *
   926         *      - suffixes from `compatibleSuffixes` are matched against the list
   927         *        from the first to the last, and the first one with the match is
   928         *        returned.
   929         *  @p
   930         *
   931         *  @param(pkg) a package object or an array of target suffix strings
   932         *              (see `{@link #suffix}`).
   933         *
   934         *  @a(returns)
   935         *  This function returns the suffix string of a target compatible with
   936         *  this target or `null` if `pkg` does not support any target compatible
   937         *  with this target.
   938         *
   939         */
   940        function findSuffix(pkg);
   941
   942        /*!
   943         *  ======== selectSuffix ========
   944         *  Select the suffix that is compatible with this target.
   945         *
   946         *  From a list of suffixes supplied as an argument, this function
   947         *  returns the suffix compatible with this target. Compatibility in
   948         *  this case means that object files created by a target having the
   949         *  suffix returned by this function can be linked into an executable
   950         *  produced using this target. In the case where more than one suffix
   951         *  is compatible, this function returns a suffix in the following order
   952         *  of preference:
   953         *  @p(nlist)
   954         *      - if this target's suffix is in the list, that suffix is returned.
   955         *
   956         *      - suffixes from `compatibleSuffixes` are matched against the list
   957         *        from the first to the last, and the first one with the match is
   958         *        returned.
   959         *  @p
   960         *
   961         *  @param(suffixList)      an array of target suffix strings
   962         *                          (see `{@link #suffix}`).
   963         *
   964         *  @a(returns)
   965         *  This function returns the suffix string of a target compatible with
   966         *  this target or `null` if no such suffix is found in the list of
   967         *  suffixes specified by the first argument.
   968         *
   969         */
   970        String selectSuffix(StringArray suffixList);
   971
   972        /*!
   973         *  ======== sectMap ========
   974         *  Output section name to segment type mapping
   975         *
   976         *  This hash table is used to determine whether a particular object file
   977         *  output section (".text", ".stack", etc.) requires 'data', 'code' or
   978         *  'stack' memory segment.
   979         *
   980         *  This `sectMap` is referenced by linker command file templates during
   981         *  generation to create linker command files. The Platform defines the
   982         *  default memory segments for code and data, and based on this map and
   983         *  the default segments, the linker command file template places an
   984         *  output section into a physical memory segment.
   985         *
   986         *  Note that the `{@link xdc.cfg.Program}` object and the
   987         *  `{@link xdc.platform.IPlatform}` instance have a
   988         *  `sectMap` parameter. Both the `Program`'s and `IPlatform`'s `sectMap`
   989         *  can augment and/or override the placement for a section, but
   990         *  `{@link xdc.cfg.Program#sectMap}` takes precedence. Therefore, this
   991         *  `sectMap` and the default segments from the platform define an
   992         *  initial section map which is then augmented by the `Program`'s and
   993         *  `IPlatform`'s section map.
   994         */
   995        readonly config String sectMap[string];
   996
   997        /*!
   998         *  ======== TypeInfo ========
   999         *  @_nodoc
  1000         *
  1001         *  @see #StdTypes
  1002         */
  1003        struct TypeInfo {
  1004            int size;
  1005            int align;
  1006        }
  1007
  1008        /*!
  1009         *  ======== StdTypes ========
  1010         *  Standard base types supported by all targets
  1011         *
  1012         *  @see #stdTypes
  1013         */
  1014        struct StdTypes {
  1015            TypeInfo t_IArg;
  1016            TypeInfo t_Char;
  1017            TypeInfo t_Double;
  1018            TypeInfo t_Float;
  1019            TypeInfo t_Fxn;
  1020            TypeInfo t_Int;
  1021            TypeInfo t_Int8;
  1022            TypeInfo t_Int16;
  1023            TypeInfo t_Int32;
  1024            TypeInfo t_Int40;
  1025            TypeInfo t_Int64;
  1026            TypeInfo t_Long;
  1027            TypeInfo t_LDouble;
  1028            TypeInfo t_LLong;
  1029            TypeInfo t_Ptr;
  1030            TypeInfo t_Short;
  1031            TypeInfo t_Size;
  1032        }
  1033
  1034        /*!
  1035         *  ======== stdInclude ========
  1036         *  Standard C/C++ types header
  1037         *
  1038         *  This string identifies a header containing the C/C++ definitions
  1039         *  required to enable use of `xdc/std.h` in C/C++ sources; see
  1040         *  `{@link xdc}`.
  1041         *
  1042         *  The value of this string is used by `xdc/std.h` to include
  1043         *  target-specific definitions of the types `Int8`, `Int16`, etc.  In
  1044         *  addition, this header supplies target-specific definitions of the
  1045         *  predefined `xdc_target__*` macros required by `{@link xdc xdc/std.h}`.
  1046         *
  1047         *  Since this header must supply target-specific values for
  1048         *  target-independent names the structure of this header is usually of
  1049         *  the form:
  1050         *  @p(code)
  1051         *      // if target macros are not already defined,
  1052         *      #if !defined(xdc_target_macros_include__)
  1053         *          // include target-specific definitions
  1054         *          #if defined(TARGET1)
  1055         *              #include "target1.h"
  1056         *          #elif defined(TARGET2)
  1057         *              #include "target2.h"
  1058         *          #elif ...
  1059         *              :
  1060         *          #else
  1061         *              #error unsupported target
  1062         *          #endif
  1063         *      #endif
  1064         *      // include common definitions
  1065         *          :
  1066         *  @p
  1067         *  The check of the symbol `xdc_target_macros_include__` exists to
  1068         *  allow others that define new targets to include this header to
  1069         *  get common definitions for a family of related targets.
  1070         *
  1071         *  To simplify the creation of the target-specific header files, the
  1072         *  template file `stddefs.xdt` in this package can be used to
  1073         *  automatically generate the required definitions from each target's
  1074         *  `.xdc` specification.
  1075         */
  1076        readonly config String stdInclude;
  1077
  1078        /*!
  1079         *  ======== stdTypes ========
  1080         *  Size and alignment for standard base types
  1081         *
  1082         *  The values of size are the values returned by the
  1083         *  target-specific `sizeof()` operator applied to the specified
  1084         *  type (as defined by the C language).  The align value is the number
  1085         *  of chars used in the alignment of the specified type.
  1086         */
  1087        readonly config StdTypes stdTypes = {
  1088            t_IArg          : { size: 0, align: 0 },
  1089            t_Char          : { size: 0, align: 0 },
  1090            t_Double        : { size: 0, align: 0 },
  1091            t_Float         : { size: 0, align: 0 },
  1092            t_Fxn           : { size: 0, align: 0 },
  1093            t_Int           : { size: 0, align: 0 },
  1094            t_Int8          : { size: 0, align: 0 },
  1095            t_Int16         : { size: 0, align: 0 },
  1096            t_Int32         : { size: 0, align: 0 },
  1097            t_Int40         : { size: 0, align: 0 },
  1098            t_Int64         : { size: 0, align: 0 },
  1099            t_Long          : { size: 0, align: 0 },
  1100            t_LDouble       : { size: 0, align: 0 },
  1101            t_LLong         : { size: 0, align: 0 },
  1102            t_Ptr           : { size: 0, align: 0 },
  1103            t_Short         : { size: 0, align: 0 },
  1104            t_Size          : { size: 0, align: 0 },
  1105        };
  1106
  1107        /*!
  1108         *  ======== bitsPerChar ========
  1109         *  The number of bits in a variable of type `char`
  1110         *
  1111         *  This constant allows one to determine the precise number of bits in
  1112         *  each of the types specified in the stdTypes map.  For example, the
  1113         *  number of bits in the target t's `int` type is
  1114         *  @p(code)
  1115         *      t.stdTypes.t_Int.size * t.bitsPerChar
  1116         *  @p
  1117         */
  1118        readonly config Int bitsPerChar = 8;
  1119    }
  1120    /*
  1121     *  @(#) xdc.bld; 1, 0, 2,297; 11-16-2010 11:20:04; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
  1122     */
  1123


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(archArgs)    `{@link xdc.bld.ITarget#ArchiveGoal}`
   123         *  @param(result)      `{@link xdc.bld.ITarget#CommandSet}`
   124         */
   125        function archive(container, lib, objList, archArgs, result);
   126
   127        /*!
   128         *  ======== compile ========
   129         *  Compile command filter
   130         *
   131         *  This method is called for every object created by the package's
   132         *  build script (via `{@link xdc.bld.Executable#addObjects()}`,
   133         *  `{@link xdc.bld.Library#addObjects()}`, ...).
   134         *
   135         *  @param(container)   String
   136         *  @param(target)      `{@link xdc.bld.ITarget}.Module`
   137         *  @param(goal)        String goal file
   138         *  @param(compArgs)    `{@link xdc.bld.ITarget#CompileGoal}` the file to
   139         *                      compile
   140         *  @param(result)      `{@link xdc.bld.ITarget#CommandSet}`
   141         */
   142        function compile(container, target, goal, compArgs, result);
   143
   144        /*!
   145         *  ======== getGenTab ========
   146         *  Get table of files to be generated during configuration
   147         *
   148         *  This method is called during makefile generation to obtain
   149         *  a list of additional files to be generated during configuration.
   150         *
   151         *  @param(prog)        `{@link xdc.bld.Executable}` or Assembly
   152         *  @param(cfgDir)      String directory where generated config files are
   153         *                      placed
   154         *  @param(configName)  String base name of the configuration
   155         *  @a(RETURNS)         array of `{@link #GenDesc}`
   156         */
   157        function getGenTab(prog, cfgDir, configName);
   158
   159        /*!
   160         *  ======== getDefs ========
   161         *  Get table of macro definitions
   162         *
   163         *  This method is called during makefile generation to obtain
   164         *  a list of macro definitions that are to be added to the
   165         *  generated makefile.  These macros can then be referenced by
   166         *  commands added via a filter function (`{@link #archive()}`,
   167         *  `{@link #compile()}` or `{@link #link()}`).
   168         *
   169         *  @a(RETURNS)         array of `{@link #MacroDesc}`
   170         */
   171        function getDefs();
   172
   173        /*!
   174         *  ======== link ========
   175         *  Link command filter
   176         *
   177         *  This method is called for every executable created by the package's
   178         *  build script (via `{@link xdc.bld.PackageContents#addExecutable()}`,
   179         *  ...).
   180         *
   181         *  @param(container)   String
   182         *  @param(cfgbase)     String
   183         *  @param(prog)        Executable or Assembly
   184         *  @param(objList)     String
   185         *  @param(linkArgs)    `{@link xdc.bld.ITarget#LinkGoal}`
   186         *  @param(result)      `{@link xdc.bld.ITarget#CommandSet}`
   187         */
   188        function link(container, cfgBase, prog, objList, linkArgs, result);
   189    }
   190    /*
   191     *  @(#) xdc.bld; 1, 0, 2,297; 11-16-2010 11:20:04; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   192     */
   193


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,297; 11-16-2010 11:20:04; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   239     */
   240


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     *  developent 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,297; 11-16-2010 11:20:04; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   243     */
   244


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,297; 11-16-2010 11:20:04; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   144     */
   145


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;
    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,297; 11-16-2010 11:20:04; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    95     */
    96


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 specidied 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         *  ======== onInit ========
   786         *  @_nodoc this function is called from the bld package's
   787         *          initialization function to initialize this module.
   788         *
   789         *  @a(throws)       `XDCException` exceptions are thrown for fatal
   790         *                    errors. The following error codes are
   791         *                    reported in the exception message:
   792         *                    @p(dlist)
   793         *                    - `xdc.bld.INCORRECT_PACKAGE_NAME`
   794         *                      This error is reported whenever package name does
   795         *                      not match the directory name. Package names should
   796         *                      match the directory layout. For example the
   797         *                      package `ti.sdo.ce.osal` should be created in the
   798         *                      directory `ti\sdo\ce\osal`.
   799         *                    - `xdc.bld.CREATE_DIR_ERROR`
   800         *                      This error is reported whenever there is an error
   801         *                      in creating package directories. This maybe
   802         *                      related with issues with the host filesystem.
   803         *                      Check whether directories
   804         *                      can be created manually in the `package`
   805         *                      sub-directory.
   806         */
   807        function onInit();
   808    }
   809    /*
   810     *  @(#) xdc.bld; 1, 0, 2,297; 11-16-2010 11:20:04; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   811     */
   812


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,297; 11-16-2010 11:20:04; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   250     */
   251


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,297; 11-16-2010 11:20:04; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   114     */
   115


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,297; 11-16-2010 11:20:04; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    93     */
    94


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 that this test is a
    82         *                      a member of.
    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            int    refExitCode; /*! expected exit code (default = 0) */
   114        };
   115
   116    instance:
   117        /*!
   118         *  ======== create ========
   119         *  @_nodoc
   120         *  Instances should only be created via Executable.addTest()
   121         */
   122        create();
   123
   124        /*!
   125         *  ======== attrs ========
   126         *  Optional attributes for this test instance.
   127         *
   128         *  Default values for each of the fields in attrs:
   129         *  @p(dlist)
   130         *     - `groupName`
   131         *          name of the program "containing" this test
   132         *
   133         *     - `execCmd`
   134         *          the first non-`null` value in:
   135         *              `prog.attrs.test.exec,
   136         *              xdc.cfg.Program.execCmd`,
   137         *              `prog.platform.getExecCmd()`.
   138         *
   139         *     - execArgs
   140         *          the first non-`null` value in:
   141         *              `prog.attrs.test.execArgs`,
   142         *              "".
   143         *
   144         *     - args
   145         *          the first non-`null` value in:
   146         *              `prog.attrs.test.args`,
   147         *              "".
   148         */
   149        config Test.Attrs attrs;
   150    }
   151    /*
   152     *  @(#) xdc.bld; 1, 0, 2,297; 11-16-2010 11:20:04; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   153     */
   154


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,297; 11-16-2010 11:20:04; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   101     */
   102


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    }
   115    /*
   116     *  @(#) xdc.cfg; 1, 0, 2, 0,296; 11-16-2010 11:20:05; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   117     */
   118


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     *  configuration settings are for the executable represented by this
    23     *  object. Program configuration scripts reference this module via the
    24     *  global variable `Program`; i.e., `Program` 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 XDC runtime
    31     *  generates the following files:
    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.
    42     *
    43     *  The generated linker command file must also be used during this final
    44     *  link step.  This linker command file is produced by expanding a template
    45     *  specified by `{@link xdc.cfg.Program#linkTemplate}`.
    46     *  Each template is responsible for expanding templates specified by each
    47     *  imported package's `getSects` method (see `{@link xdc.IPackage#getSects}`).
    48     *  This allows each package participating in the configuration of an
    49     *  executable to contribute a portion of the executable's linker command file.
    50     */
    51
    52    @Template("./Program.xdt")
    53
    54    metaonly module Program {
    55
    56        /*!
    57         *  ======== GenerationOptions ========
    58         *  Options that control the files generated as part of program
    59         *  configuration.
    60         *
    61         *  @field(debuggerFiles) If set to `true` in a configuration script,
    62         *          debugger project files will be generated as part of the
    63         *          configuration step.  If set to `false`, these files will not
    64         *          be generated.
    65         *
    66         *          If it is not set (or set to undefined) and the environment
    67         *          variable `environment["xdc.cfg.gen.debuggerFiles"]` is
    68         *          non-`null`, then the default value of this parameter is taken
    69         *          to be the value of the following expression:
    70         *          @p(code)
    71         *              environment["xdc.cfg.gen.debuggerFiles"] == "true"
    72         *          @p
    73         *          This makes it is possible to enable the generation of
    74         *          debugger project files from build scripts by passing
    75         *          the option `-Dxdc.cfg.gen.debuggerFiles=true` to the
    76         *          configuration tool (see
    77         *          `{@link xdc.bld.Executable#Attrs.xsopts}` or
    78         *          `{@link xdc.bld.PackageContents#Attrs.xsopts}`).
    79         *
    80         *          Finally, if `debuggerFiles` is not set (or set to `undefined`)
    81         *          and the environment variable above is not defined,
    82         *          the generation of debugger project files occurs only if
    83         *          `{@link xdc.cfg.Program#build.profile}` contains
    84         *          the string `"debug"`.  So, unless otherwise specified, debug
    85         *          profiles result in debugger project files being generated.
    86         */
    87        struct GenerationOptions {
    88            Bool debuggerFiles; /*! if `true`, generate debugger "project" files */
    89        };
    90
    91        /*!
    92         *  ======== SectionSpec ========
    93         *  Map that instructs the linker where to place output sections.
    94         *
    95         *  This structure contains some fields that are specific to TI targets.
    96         *  On non-TI targets, such fields are ignored.
    97         *
    98         *  @field(runSegment) Defines the memory segment where the section is
    99         *          to be run.
   100         *
   101         *  @field(loadSegment) Defines the memory segment where the section is
   102         *          to be loaded. If 'runSegment' or 'loadSegment' is defined,
   103         *          but not both, the linker is instructed to use the defined
   104         *          field as the load and run allocation for the section.
   105         *
   106         *  @field(runAddress) Defines the memory address where the section is
   107         *          to be run. It is an error if both 'runSegment' and 'runAddress'
   108         *          are specified.
   109         *
   110         *  @field(loadAddress) Defines the memory address where the section is
   111         *          to be loaded. It is an error if both 'loadSegment' and
   112         *          'loadAddress' are specified. If 'runAddress' or 'loadAddress'
   113         *          is defined, but not both, the linker is instructed to use the
   114         *          defined field as the load and run address for the section.
   115         *
   116         *  @field(runAlign) If runSegment is specified, runAlign determines the
   117         *          alignment. It is an error if both 'runAlign' and 'runAddress'
   118         *          are specified.
   119         *
   120         *  @field(loadAlign) If runSegment is specified, runAlign determins the
   121         *          alignment. It is an error if both 'loadAlign' and 'loadAddress'
   122         *          are specified.
   123         *
   124         *  @field(type) Defines flags for special section types (COPY, DSECT,
   125         *          NOLOAD).
   126         *
   127         *  @field(fill) Defines the value to initialize an uninitialized
   128         *  section.
   129         */
   130        struct SectionSpec {
   131            String runSegment;  /*! segment where section contents are run */
   132            String loadSegment; /*! segment where section contents are loaded */
   133            UInt runAddress;    /*! start address of section when run */
   134            UInt loadAddress;   /*! start address of section when loaded */
   135            UInt runAlign;      /*! alignment of section within runSegment */
   136            UInt loadAlign;     /*! alignment of section within loadSegment */
   137            String type;        /*! target-specific flags */
   138            UInt fill;          /*! fill value */
   139        };
   140
   141        /*!
   142         *  ======== gen ========
   143         *  Generation options for this executable
   144         *
   145         *  This configuration parameter allows the program configuration script
   146         *  to control (to some extent) what files are generated as part of the
   147         *  configuration process.
   148         */
   149        config GenerationOptions gen;
   150
   151        /*!
   152         *  ======== globalSection ========
   153         *  UNDER CONSTRUCTION
   154         *  @_nodoc
   155         *
   156         *  Section where `{@link #globals}` are placed.
   157         *
   158         *  All globals specified in the application configuration file
   159         *  are placed into this section.
   160         *
   161         *  The default is `null`, which means the `{@link #dataSection}` is used.
   162         */
   163        config String globalSection = null;
   164
   165        /*!
   166         *  ======== sysStack ========
   167         *  The size of the executable's initial system stack
   168         *
   169         *  On platforms that support a separate "system stack", this
   170         *  parameter sets its initial size (in units of chars).
   171         */
   172        config UInt sysStack = 0x1000;
   173
   174        /*!
   175         *  ======== stack ========
   176         *  The size of the executable's initial stack
   177         *
   178         *  On platforms that enable control of the initial stack size (the
   179         *  stack that exists immediately after reset), this parameter specifies
   180         *  its initial size (in units of chars).
   181         */
   182        config UInt stack = 0x1000;
   183
   184        /*!
   185         *  ======== heap ========
   186         *  The size of the executable's initial heap
   187         *
   188         *  On platforms that enable control of the size of the heap managed by
   189         *  the run-time support function malloc(), this parameter specifies
   190         *  its initial size (in units of chars).
   191         */
   192        config UInt heap = 0x1000;
   193
   194        /*!
   195         *  ======== argSize ========
   196         *  The size allocated for command line args to the executable
   197         *
   198         *  On platforms that require static allocation of space to hold
   199         *  command line arguments, this parameter specifies its maximum size
   200         *  (in units of chars).
   201         */
   202        config UInt argSize = 0x200;
   203
   204        /*!
   205         *  ======== execCmd ========
   206         *  The command used to run this executable
   207         *
   208         *  If it is not set by the configuration script, it is set by the
   209         *  program's platform package (during program configuration).
   210         *
   211         *  This command is run as follows:
   212         *  @p(code)
   213         *      execCmd <prog> <args>
   214         *  @p
   215         *  where, `<prog>` is the name of the executable
   216         *
   217         *  @a(Note)
   218         *  This parameter is ignored if the exec command is specified as part
   219         *  of the test; see `{@link xdc.bld.Test#Attrs}`.
   220         *  and `<args>` are the arguments specified in the test (if any).
   221         */
   222        config String execCmd;
   223
   224        /*!
   225         *  ======== linkTemplate ========
   226         *  The template for the Program's linker command file
   227         *
   228         *  A template is used to create the linker command file for each
   229         *  program.  It can be optionally specified by setting this
   230         *  configuration parameter in the program's configuration script.  If
   231         *  `linkTemplate` it is not set or set to `null`, the template is
   232         *  obtained from the platform associated with this program (i.e., the
   233         *  platform named by the `{@link #platform}` config in this module).
   234         *  See `{@link xdc.platform.IPlatform#getLinkTemplate IPlatform.getLinkTemplate}`.
   235         *
   236         *  The `linkTemplate` string names a package path relative path; e.g.,
   237         *  if the linker template you want to specify is
   238         *  `"templates/big_n_hairy.xdt"` in the package `myCompany.myPackage`,
   239         *  `linkTemplate` should be set to:
   240         *  @p(code)
   241         *      "myCompany/myPackage/templates/big_n_hairy.xdt"
   242         *  @p
   243         *  If `linkTemplate` begins with the string `"./"`, the file is NOT
   244         *  searched for along the package path; instead the file name is taken
   245         *  to specify a file relative to the current working directory.
   246         *
   247         *  In any case, if `linkTemplate` is non-`null`, the file must exist;
   248         *  otherwise, the configuration step will fail.
   249         */
   250        config String linkTemplate = null;
   251
   252        /*!
   253         *  ======== main ========
   254         *  The main entry point for the program
   255         *
   256         *  This parameter is optionally set by the user's program
   257         *  configuration script.  If it is not set, then a "legacy" `main()`
   258         *  function is assumed to be linked into the program; otherwise,
   259         *  the value of `main` is used as the "main" entry point to the
   260         *  program.
   261         */
   262        config Int (*main)(Int, Char*[]);
   263
   264        /*!
   265         *  ======== sectMap ========
   266         *  A section name to SectionSpec mapping
   267         *
   268         *  This is a program specific mapping of output section names to
   269         *  {@link #SectionSpec} objects. The map supports mapping of section
   270         *  names to memory names; see {@link xdc.platform.IPlatform#sectMap}.
   271         *
   272         *  This parameter enables program configurations to place named
   273         *  sections in platform specific memory regions.  During generation of
   274         *  the linker command file, sections are mapped to named memories by
   275         *  first consulting this table; if the table does not contain a mapping,
   276         *  the target classifies each section as either "code", "data" or
   277         *  "stack" {@link xdc.bld.ITarget#sectMap} and the platform defines a
   278         *  memory region for each of these section types
   279         *  ({@link xdc.platform.IPlatform#codeMemory}/
   280         *  {@link xdc.platform.IPlatform#dataMemory}).  If
   281         *  this does not produce a result, an error is generated.
   282         *  It is important to note that `sectMap` does not contain the complete
   283         *  section allocation for the program. It only contains the entries
   284         *  explicitly added to `sectMap`. To get the complete section
   285         *  allocation, a user should call {@link #getSectMap}.
   286         *
   287         *  Suppose for example that the platform defines a memory segment
   288         *  named "DDR2".  The following configuration statement places
   289         *  everything from the ".text" section into the "DDR2" segment.
   290         *
   291         *  @p(code)
   292         *      Program.sectMap[".text"] = new Program.SectionSpec();
   293         *      Program.sectMap[".text"].loadSegment = "DDR2";
   294         *  @p
   295         *
   296         *  @a(Note)
   297         *  If BIOS 5 configuration script (Tconf script) is executed, the
   298         *  section allocations configured in the Tconf script take precedence
   299         *  over any settings for the same sections in this parameter.
   300         *
   301         *  @see #SectionSpec
   302         *  @see xdc.platform.IPlatform#sectMap
   303         *  @see xdc.bld.ITarget#sectMap
   304         */
   305        config Any sectMap[string]; /* section name => SectionSpec */
   306
   307        /*!
   308         *  ======== sectionsExclude ========
   309         *  Sections to exclude from linker command file generation
   310         *
   311         *  The `sectionsExclude` string is a JavaScript regular expression
   312         *  that is used to identify names of section that should NOT be
   313         *  be handled by the normal linker command file generation process.
   314         *
   315         *  Sections whose name matches `sectionsExclude` must be handled
   316         *  using a custom linker command file or by specifying a custom template
   317         *  (see `{@link #sectionsTemplate}` or `{@link #linkTemplate}`).
   318         *  @a(Examples)
   319         *  To completely override the placement of all output sections you can
   320         *  define `sectionsExclude` to match any string.
   321         *  @p(code)
   322         *      // Note: the '.' below represents _any_ character, not just "."
   323         *      Program.sectionsExclude = ".*";
   324         *  @p
   325         *  To override output sections that begin with '.' you must specify
   326         *  the literal character '.' and use the '^' character to match the
   327         *  beginning of the string.
   328         *  @p(code)
   329         *      // the sequence '^\.' matches just "." at the start of the name
   330         *      Program.sectionsExclude = "^\.";
   331         *  @p
   332         *  To override a specific sections you should be careful to supply a
   333         *  regular expression that matches the entire section name.  You can
   334         *  use '$' to match the end of the name.
   335         *  @p(code)
   336         *      // match only ".const" or ".text"
   337         *      Program.sectionsExclude = "^\.const$|^\.text$";
   338         *  @p
   339         */
   340        config String sectionsExclude = null;
   341
   342        /*!
   343         *  ======== sectionsTemplate ========
   344         *  Replace the sections portion of the generated linker command file
   345         *
   346         *  The `sectionsTemplate` string names a template that is used to replace
   347         *  the "`SECTIONS`" content to the generated linker command file.  This
   348         *  is useful especially when excluding specific sections via
   349         *  `{@link #sectionsExclude}` or when taking full control of the linker
   350         *  command file via `{@link #linkTemplate}` is unnecessary. The original
   351         *  "`SECTIONS`" content is computed and passed as an argument to this
   352         *  template, which makes it relatively simple to perform small changes to
   353         *  the "`SECTIONS`" content without having to explicitly handle every
   354         *  section required by the compiler toolchain.
   355         *
   356         *  The `sectionsTemplate` string names a package path relative path; e.g.,
   357         *  if the linker template you want to specify is
   358         *  `"templates/mySections.xdt"` in the package `myCompany.myPackage`,
   359         *  `sectionsTemplate` should be set to:
   360         *  @p(code)
   361         *      "myCompany/myPackage/templates/mySections.xdt"
   362         *  @p
   363         *  If `sectionsTemplate` begins with the string `"./"`, the file is NOT
   364         *  searched for along the package path; instead the file name is taken
   365         *  to specify a file relative to the current working directory.
   366         *
   367         *  In any case, if `sectionsTemplate` is non-`null`, the file must exist;
   368         *  otherwise, the configuration step will fail.
   369         *
   370         *  During expansion of this template, there are three "parameters"
   371         *  that can be referenced to generate new content.
   372         *  @p(dlist)
   373         *      - `this`
   374         *          reference to the `{@link Program}` object
   375         *      - `$args[0]`
   376         *         is the complete section map derived from
   377         *         `{@link Program#sectMap}`; some special sections relavent to
   378         *         XDCtools are added to the map defined by `Program.sectMap`.
   379         *      - `$args[1]`
   380         *         is a string that contains the content that would have been
   381         *         placed in the `SECTIONS` portion of the generated linker
   382         *         command file.  This allows templates to easily modify this
   383         *         content or simply add statements before or after it.
   384         *  @p
   385         *  @a(Example)
   386         *  The following template, specific to TI compiler tools, adds start
   387         *  and size symbols for the `.stack` section and ensures that the stack
   388         *  is the first section to be allocated in its designated memory segment.
   389         *  @p(code)
   390         *    %// first output allocation for the .stack section
   391         *    %var sectMap = $args[0];
   392         *    %var stack = sectMap[".stack"];
   393         *       .stack: >`stack.loadSegment` START(_stack_start) SIZE(_stack_size)
   394         *    %
   395         *    %// now append the normally generated content
   396         *    `$args[1]`
   397         *  @p
   398         *  Note: this example requires that the `.stack` section be excluded
   399         *  from the normal generation via `{@link sectionsExclude}`; otherwise
   400         *  this section will be specified twice by the template shown above.
   401         *  @p(code)
   402         *      Program.sectionsExclude = "^\.stack$";
   403         *  @p
   404         */
   405        config String sectionsTemplate = null;
   406
   407        /*!
   408         *  ======== system ========
   409         *  @_nodoc
   410         *  A facade for the {@link xdc.runtime.System#SupportProxy} parameter
   411         *
   412         *  The program configuration script may select an implementation of
   413         *  the `xdc.runtime.ISystemSupport` interface and "bind" it by setting
   414         *  this parameter. If the module assigned to this parameter does not
   415         *  inherit from `xdc.runtime.ISystemSupport`, the configuration will fail.
   416         *
   417         *  If this parameter is not set (or set to `undefined`), then a default
   418         *  implementation is used: `xdc.runtime.SysStd` or, if
   419         *  `Program.build.target.os` is `null`, `xdc.runtime.SysMin`.  Recall that
   420         *  `Program.build.target.os` is specified in the Build Object Model;
   421         *  `Program.build.target` is the target specified when the executable was
   422         *  added to the package.
   423         *
   424         *  If this parameter is set to `null`, then the `System` module is not
   425         *  linked into the application (unless 'Memory' is used); any references
   426         *  to `System`'s methods will result in a linker error.  By setting this
   427         *  parameter to `null`, one is asserting that `System`'s methods will not
   428         *  be used.
   429         */
   430        config Any system;
   431
   432        /*!
   433         *  ======== name ========
   434         *  The name of the executable file
   435         *
   436         *  This is the full file name (relative to the package's base) of the
   437         *  executable that results from this configuration.
   438         *
   439         *  @a(readonly)
   440         *  This parameter is set by the generated program configuration script
   441         *  and must not be modified.
   442         */
   443        config String name;
   444
   445        /*!
   446         *  ======== buildPackage ========
   447         *  The name of the executable's package
   448         *
   449         *  This is the full package name (relative to the package's repository)
   450         *  of the package that contains the executable being configured.
   451         *
   452         *  @a(readonly)
   453         *  This parameter is set by the generated program configuration script
   454         *  and must not be modified.
   455         */
   456        config String buildPackage;
   457
   458        /*!
   459         *  ======== endian ========
   460         *  The endianess of the executable
   461         *
   462         *  This parameter is an alias for `build.target.model.dataModel` and is
   463         *  set to one of the following values: `"big"`, `"little"`, or `null`.
   464         *
   465         *  @a(readonly)
   466         *  This parameter is set by the generated program configuration script
   467         *  and must not be modified.
   468         */
   469        config String endian = null;
   470
   471        /*!
   472         *  ======== codeModel ========
   473         *  The memory model for code
   474         *
   475         *  This parameter is an alias for `build.target.model.codeModel` and is
   476         *  set to one of the following target-specific values: `"near"`, `"far"`,
   477         *  `"large"`, or `null`.
   478         *
   479         *  @a(readonly)
   480         *  This parameter is set by the generated program configuration script
   481         *  and must not be modified.
   482         */
   483        config String codeModel = null;
   484
   485        /*!
   486         *  ======== dataModel ========
   487         *  The memory model for data
   488         *
   489         *  This parameter is an alias for `build.target.model.dataModel` and is
   490         *  set to one of the following target-specific values: `"near"`, `"far"`,
   491         *  `"large"`, or `null`.
   492         *
   493         *  @a(readonly)
   494         *  This parameter is set by the generated program configuration script
   495         *  and must not be modified.
   496         */
   497        config String dataModel = null;
   498
   499        /*!
   500         *  ======== build ========
   501         *  This program's build attributes
   502         *
   503         *  This parameter allows arbitrary build attributes to be carried
   504         *  forward from the Build Object Model (BOM) into the configuration
   505         *  model for program configuration scripts to read.
   506         *
   507         *  Conceptually, this config parameter should be declared as follows:
   508         *  @p(code)
   509         *      struct BuildAttrs inherits xdc.bld.Executable.Attrs {
   510         *          config xdc.bld.ITarget.Module target;
   511         *      };
   512         *  @p
   513         *  All parameters of the target associated with the executable being
   514         *  configured are available through '`Program.build.target`'. Any config
   515         *  parameter set in the BOM's `{@link xdc.bld.Executable#attrs}` is also
   516         *  available through `{@link #build}`.  For example, the name of the
   517         *  target is `Program.build.target.name` and the name of the
   518         *  executable's configuration script is `Program.build.cfgScript`.
   519         *
   520         *  @a(readonly)
   521         *  This parameter is set by the generated program configuration script
   522         *  and must not be modified.
   523         */
   524        config Any build;   /*  BuildAttrs */
   525
   526        /*!
   527         *  ======== cpu ========
   528         *  The execution context "seen" by the executable.
   529         *
   530         *  Since the execution context is largely determined by the CPU that
   531         *  runs the executable, this configuration parameter allows scripts with
   532         *  access to the program object to conditionally configure based on CPU
   533         *  characteristics (e.g., ISA or revision of a chip).
   534         *
   535         *  @a(readonly)
   536         *  This parameter is set by the platform's implementation of
   537         *  `xdc.IPackage` (i.e., `package.xs`).
   538         */
   539        config xdc.platform.IExeContext.Instance cpu;
   540
   541        /*!
   542         *  ======== platformName ========
   543         *  The name of the executable's platform
   544         *
   545         *  This field is the name of the platform instance used to create the
   546         *  executable; e.g., `"ti.platforms.sim55xx"`, or
   547         *  `"ti.platforms.sim6xxx:TMS320C6416"`.
   548         *
   549         *  Platform instance names have the form:
   550         *  @p(code)
   551         *      <platform_pkg>:<instance_id>
   552         *  @p
   553         *  where `<platform_pkg>` is the name of the platform package
   554         *  responsible for creating the platform instance and the optional
   555         *  "`:<instance_id>`" is a suffix that uniquely identifies the creation
   556         *  parameters for this instance.
   557         *
   558         *  The creation parameters are the values specified by the map
   559         *  `{@link xdc.bld.BuildEnvironment#platformTable}`;
   560         *  if this map does not contain the platform instance name, the
   561         *  instance is created with default values that are specific to the
   562         *  platform.
   563         *
   564         *  @a(readonly)
   565         *  This parameter is set by the generated program configuration script
   566         *  and must not be modified.
   567         */
   568        config String platformName;
   569
   570        /*!
   571         *  ======== platform ========
   572         *  The executable's platform instance object
   573         *
   574         *  The platform instance that provided an execution context for the
   575         *  executable being configured.
   576         *
   577         *  @a(readonly)
   578         *  This parameter is set by the generated program configuration script
   579         *  and must not be modified.
   580         */
   581        config xdc.platform.IPlatform.Instance platform;
   582
   583        /*!
   584         *  ======== global ========
   585         *  Global variable declarations
   586         *
   587         *  Assignments to this hash table become global symbols that can be
   588         *  used to directly reference objects.  These objects are declared
   589         *  in a generated header that is indirectly included by the header
   590         *  `xdc/cfg/global.h`.
   591         *
   592         *  Configuration scripts define symbols by adding new properties to
   593         *  `global`.
   594         *  @p(code)
   595         *      Program.global.myInstance = Mod.create();
   596         *      Program.global.myString = "hello world";
   597         *  @p
   598         *
   599         *  Programs can reference the symbols defined in `global` by including
   600         *  the C/C++ header `xdc/cfg/global.h` as follows:
   601         *  @p(code)
   602         *      #include <pkg/Mod.h>
   603         *      #include <xdc/cfg/global.h>
   604         *         :
   605         *      Mod_fxn(myInstance, ...);
   606         *      printf("greetings: %s\n", myString);
   607         *  @p
   608         *
   609         *  To compile sources that include `xdc/cfg/global.h`, one symbol must be
   610         *  defined before including this header:
   611         *  @p(dlist)
   612         *      - `xdc_cfg__header__`
   613         *          the package qualified name of the executable-specific C/C++
   614         *          header generated by the program configuration tool; e.g.,
   615         *          `local/examples/package/cfg/mycfg_x62.h`.
   616         *  @p
   617         *  For example, to compile sources that reference the values declared in
   618         *  `{@link #global}` for a TI C6x target with a generated
   619         *  configuration header named `package/cfg/mycfg_x62.h` in a package
   620         *  named `local.examples` the following command line is sufficient:
   621         *  @p(code)
   622         *      cl6x -Dxdc_cfg__header__=local/examples/package/cfg/mycfg_x62.h ...
   623         *  @p
   624         *
   625         *  The `xdc_cfg__header__` symbol is automatically defined when you use
   626         *  the the XDC Build Engine (`{@link xdc.bld}`) to create executables; see
   627         *  `{@link xdc.bld.Executable#addObjects}`
   628         *
   629         *  @see xdc.bld.Executable#addObjects
   630         */
   631        config Any global[string];
   632
   633        /*!
   634         *  ======== symbol ========
   635         *  Global symbol specifications
   636         *
   637         *  UNDER CONSTRUCTION
   638         *  @_nodoc
   639         *
   640         *  This map contains symbol definitions that are used to define alises
   641         *  or constants.  Symbol names are the C symbol names; i.e., compiler name
   642         *  mangling, such as the addition of a leading "_", is performed
   643         *  automatically.
   644         *
   645         *  @a(Examples)
   646         *  To define a symbolic constant:
   647         *  @p(code)
   648         *      Program.symbol["ONE"] = 1;
   649         *  @p
   650         *  The line above causes the symbol "ONE" to be defined in the linker
   651         *  command file to be equal to 1.  Note this in contrast to defining a
   652         *  variable whose value is 1; symbols do not occupy space, they are just
   653         *  symbolic constants defined in the symbol table of the executable.
   654         *
   655         *  This is currently used by xdc.runtime.Startup to define symbols
   656         *  optionally referenced by boot files that support early startup
   657         *  "reset" functions.
   658         *
   659         *  The only other use of this map is to define symbolic names for
   660         *  statically created instances as part of the support for legacy
   661         *  BIOS 5 instance names.
   662         */
   663        config Any symbol[string];
   664
   665        /*!
   666         *  ======== fixedCodeAddr ========
   667         *  UNDER CONSTRUCTION
   668         *  @_nodoc
   669         *
   670         *  fixed location of code for ROM assemblies
   671         */
   672        config UInt fixedCodeAddr = 0;
   673
   674        /*!
   675         *  ======== fixedDataAddr ========
   676         *  UNDER CONSTRUCTION
   677         *  @_nodoc
   678         *
   679         *  fixed location of data for ROM assemblies
   680         */
   681        config UInt fixedDataAddr = 0;
   682
   683        /*!
   684         *  ======== loadFixedDataAddr ========
   685         *  UNDER CONSTRUCTION
   686         *  @_nodoc
   687         *
   688         *  Load location of fixed data accessed from ROM assemblies
   689         *
   690         *  If an application that imports ROM assemblies cannot load data
   691         *  accessed from ROM to a runtime address, this address specifies the
   692         *  load address. The load address is specified when the application is
   693         *  configured. The runtime address for the data is specified at the
   694         *  time a ROM assembly is built, using `fixedDataAddr`.
   695         */
   696        config UInt loadFixedDataAddr;
   697
   698        /*!
   699         *  ======== loadRom ========
   700         *  UNDER CONSTRUCTION
   701         *  @_nodoc
   702         *
   703         *  Control generation of 'type = DSECT' for ROM assemblies.
   704         *
   705         *  When there is no actual ROM on the target, for debugging purposes,
   706         *  we may need to load ROM sections to the target. If this parameter is
   707         *  set to `true`, the linker command file will allocate ROM sections in
   708         *  the same way as other sections.
   709         */
   710        config Bool loadRom = false;
   711
   712        /*!
   713         *  ======== exportModule ========
   714         *  Force all the symbols of a module to be part of a configuration
   715         *
   716         *  Although a call xdc.useModule() will force some of a module's methods
   717         *  to be part of a configuration, the linker is still free to omit any
   718         *  symbols that are not referenced.  Use of exportModule will force all
   719         *  methods of the specified module to be available.
   720         */
   721        Void exportModule(String modName);
   722
   723        /*!
   724         *  ======== freezeRomConfig ========
   725         *  UNDER CONSTRUCTION
   726         *  @_nodoc
   727         */
   728        Void freezeRomConfig(String modName, String cfgName);
   729
   730        /*!
   731         *  ======== freezeRomConfig2 ========
   732         *  UNDER CONSTRUCTION
   733         *  @_nodoc
   734         */
   735        function freezeRomConfig2(mod, cfgName);
   736
   737        /*!
   738         *  ======== freezeRomParams ========
   739         *  UNDER CONSTRUCTION
   740         *  @_nodoc
   741         */
   742        function freezeRomParams(mod);
   743
   744        /*!
   745         *  ======== frozenRomConfig ========
   746         *  UNDER CONSTRUCTION
   747         *  @_nodoc
   748         */
   749        Bool frozenRomConfig(String modName, String cfgName );
   750
   751        /*!
   752         *  ======== frozenRomConfig2 ========
   753         *  UNDER CONSTRUCTION
   754         *  @_nodoc
   755         */
   756        function frozenRomConfig2(mod, cfgName);
   757
   758        /*!
   759         *  ======== getSectMap ========
   760         *  Return the complete mapping of section names to `{@link #SectionSpec}`
   761         *  entries
   762         *
   763         *  The returned map is assembled from `{@link xdc.bld.ITarget#sectMap}`,
   764         *  `{@link xdc.platform.IPlatform#sectMap}`,
   765         *  `{@link xdc.platform.IPlatform#codeMemory}`,
   766         *  `{@link xdc.platform.IPlatform#dataMemory}`,
   767         *  `{@link xdc.platform.IPlatform#stackMemory}` and `{@link #sectMap}`.
   768         *  The function can be called at any time during configuration, but if
   769         *  it is called before all packages had a chance to change `sectMap`,
   770         *  the returned map may not correspond to the actual section
   771         *  allocation as configured in the linker command file.
   772         *
   773         *  @a(returns)
   774         *  `getSectMap` returns a map with section names as keys and
   775         *  `{@link #SectionSpec}` entries as values.
   776         *
   777         *  @a(Note)
   778         *  If BIOS 5 configuration script (Tconf script) is executed, the
   779         *  section allocations configured in the Tconf script are also being
   780         *  returned.
   781         */
   782        function getSectMap();
   783
   784        /*!
   785         *  ======== importAssembly ========
   786         *  UNDER CONSTRUCTION
   787         *  @_nodoc
   788         */
   789        Void importAssembly(String asmName);
   790
   791        /*!
   792         *  ======== importRomAssembly ========
   793         *  UNDER CONSTRUCTION
   794         *  @_nodoc
   795         */
   796        Void importRomAssembly(String romAsmName);
   797
   798        /*!
   799         *  ======== patchRomFxn ========
   800         *  UNDER CONSTRUCTION
   801         *  @_nodoc
   802         */
   803        Void patchRomFxn(String modName, String fxnName, String patchSym);
   804
   805        /*!
   806         *  ======== targetModules ========
   807         *  UNDER CONSTRUCTION
   808         *  @_nodoc
   809         *
   810         *  This function returns a list of target modules. The list is completed
   811         *  only after all packages are closed, and runtime.finalized() is closed,
   812         *  so the only time when this function can be safely called is from
   813         *  within module$static$init and instance$static$init functions, package
   814         *  validate() functions, and templates.
   815         */
   816        function targetModules();
   817
   818    }
   819    /*
   820     *  @(#) xdc.cfg; 1, 0, 2, 0,296; 11-16-2010 11:20:05; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   821     */
   822


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,296; 11-16-2010 11:20:10; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    47     */
    48


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         *  The 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,296; 11-16-2010 11:20:10; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   136     */
   137


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,296; 11-16-2010 11:20:10; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   140     */
   141


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         *  Create a map of all peripherals available on a device.
    32         *
    33         *  The config parameter `peripherals` is by default undefined in an
    34         *  `{@link xdc.platform.ICpuDataSheet}` instance. This function gathers
    35         *  all instance configuration parameters that are of the type
    36         *  `{@link xdc.platform.IPeripheral}` into the map `peripherals`.
    37         *
    38         *  @param(cds)     an `{@link xdc.platform.ICpuDataSheet}` instance
    39         *
    40         */
    41        final Void addPeripheralsMap(ICpuDataSheet.Instance cds);
    42
    43        /*!
    44         *  ======== getAll ========
    45         *  Find all peripherals of a certain type.
    46         *
    47         *  The type of the peripherals returned is defined by the type of the
    48         *  caller.
    49         *
    50         *  @a(returns)     Returns an array of IPeripheral instances
    51         *
    52         */
    53        IPeripheralArray getAll();
    54
    55        /*!
    56         *  ======== getRegisters ========
    57         *  Find all registers defined by the peripheral.
    58         *
    59         *  @a(returns)     Returns an array of register names
    60         *
    61         */
    62        StringArray getRegisters();
    63
    64    instance:
    65
    66        /*!
    67         *  ======== name ========
    68         *  Specific peripheral name given by the device.
    69         *
    70         *  Devices can have more than one peripheral of the same type. In such
    71         *  cases, device data sheets give different names to the instances of a
    72         *  same peripheral. For example, the name for a timer module could be
    73         *  `TimerA3`, and a device that has two such timers can name them `TA0`
    74         *  and `TA1`.
    75         */
    76        config string name;
    77
    78        /*!
    79         *  ======== owner ========
    80         *  String specifying the entity that manages the peripheral
    81         *
    82         */
    83        config string owner;
    84    }
    85    /*
    86     *  @(#) xdc.platform; 1, 0, 1, 0,296; 11-16-2010 11:20:10; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    87     */
    88


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.
   139         */
   140        config xdc.platform.IPlatform.Memory customMemoryMap[string];
   141
   142        /*!
   143         *  ======== renameMap ========
   144         *  A map for renaming memory objects.
   145         *
   146         *  This map renames memory objects. If you do not want to change
   147         *  addresses in the default memory map, but you only want to rename the
   148         *  existing memory objects, you should use this parameter.
   149         *
   150         *  This map and 'customMemoryMap' should not be used together because this
   151         *  map renames the default memory, but then 'customMemoryMap' replaces the
   152         *  default memory objects. The parameters 'codeMemory', 'dataMemory' and
   153         *  'stackMemory' are not automatically reassigned to new names. It is the
   154         *  user's responsibility to set those parameters accordingly to
   155         *  'renameMap'.
   156         */
   157        config string renameMap[string];
   158
   159        /*!
   160         *  ======== dataMemory ========
   161         *  The default segment for data sections.
   162         *
   163         *  Each target has a section map with keys equal to the names of all
   164         *  sections that compiler and assembler for that target generate. The
   165         *  value for each key is either "code" or "data" or "stack". A linker
   166         *  template reads that map and puts all "data" sections in the segment
   167         *  defined by this configuration parameter.
   168         *
   169         *  @see #codeMemory
   170         *  @see #stackMemory
   171         */
   172        config string dataMemory;
   173
   174        /*!
   175         *  ======== codeMemory ========
   176         *  The default segment for code sections.
   177         *
   178         *  Each target has a section map with keys equal to the names of all
   179         *  sections that compiler and assembler for that target generate. The
   180         *  value for each key is either "code" or "data" or "stack". A linker
   181         *  template reads that map and puts all "code" sections in the segment
   182         *  defined by this configuration parameter.
   183         *
   184         *  @see #dataMemory
   185         *  @see #stackMemory
   186         */
   187        config string codeMemory;
   188
   189        /*!
   190         *  ======== stackMemory ========
   191         *  The default segment for stack.
   192         *
   193         *  Each target has a section map with keys equal to the names of all
   194         *  sections that compiler and assembler for that target generate. The
   195         *  value for each key is either "code" or "data" or "stack". A linker
   196         *  template reads that map and puts all "stack" sections in the segment
   197         *  defined by this configuration parameter.
   198         *
   199         *  @see #dataMemory
   200         *  @see #codeMemory
   201         */
   202        config string stackMemory;
   203
   204        /*!
   205         *  ======== sectMap ========
   206         *  A mapping of linker output section names to memory segments.
   207         *
   208         *  During the generation of linker command files, the templates used to
   209         *  create these files examine several sources of information to determine
   210         *  the placement of named output sections into memory segments defined
   211         *  by the platform.  The default placement, described below,
   212         *  uses information from the target and this platform's
   213         *  `{@link #codeMemory}`, `{@link #dataMemory}`, and
   214         *  `{@link #stackMemory}` configuration parameters.
   215         *
   216         *  `sectMap` is used to override this default placement of
   217         *  output sections (".text", ".cinit", etc.) to a memory
   218         *  segment defined by the platform's memory map.  For example, even if
   219         *  a platform's `codeMemory` parameter is defined to be "SRAM" and
   220         *  ".cinit" output sections are "code" sections, if the platform also
   221         *  defines the following `sectMap`, the section ".cinit" will be placed
   222         *  into a memory segment named "DDR2".
   223         *  @p(code)
   224         *      sectMap[] = [
   225         *          [".cinit", "DDR2"],
   226         *      ];
   227         *  @p
   228         *
   229         *  @a(Note) If an output section has an entry in
   230         *  `{@link xdc.cfg.Program#sectMap Program.sectMap}`, that entry
   231         *  overrides the placement specified by this `sectMap`.  A program's
   232         *  `sectMap` configuration always overrides the platform's `sectMap`
   233         *  settings.
   234         *
   235         *  @a(Default Mapping)
   236         *  The default placement of a target's output sections into memory
   237         *  segments defined by the platform is determined by the following
   238         *  configuration parameters:
   239         *  @p(blist)
   240         *      - `{@link xdc.bld.ITarget#sectMap ITarget.sectMap}`
   241         *          used to map a named output section to either "code", "data",
   242         *          or "stack"
   243         *      - `{@link #codeMemory}`
   244         *          names a memory segment that will contain all "code"
   245         *          output sections
   246         *      - `{@link #dataMemory}`
   247         *          names a memory segment that will contain all "data"
   248         *          output sections
   249         *      - `{@link #stackMemory}`
   250         *          names a memory segment that will contain all "stack"
   251         *          output sections
   252         *  @p
   253         *
   254         *  @see xdc.cfg.Program#sectMap
   255         *  @see xdc.bld.ITarget#sectMap
   256         */
   257        config string sectMap[string]; /* section name => memory segment */
   258
   259        /*!
   260         *  ======== getCpuDataSheet ========
   261         *  Get the Cpu data sheet object corresponding to specified cpu id.
   262         *
   263         *  This function executes in either the Configuration object model
   264         *  or the Build object model.
   265         *
   266         *  @param(cpuId)   a string that corresponds to the platform-specific id
   267         *                  of a CPU on this platform that runs executables.
   268         *
   269         *  @a(returns)     Returns an `{@link xdc.platform.ICpuDataSheet}`
   270         *                  instance object that corresponds to the specified
   271         *                  cpuId.
   272         *
   273         *  @a(throws)      `Error` exceptions are thrown for fatal errors.
   274         */
   275        function getCpuDataSheet(cpuId);
   276    //    xdc.platform.ICpuDataSheet.Instance getCpuDataSheet(string cpuId);
   277
   278        /*!
   279         *  ======== getCreateArgs ========
   280         *  DEPRECATED
   281         *  @_nodoc
   282         *
   283         *  Get the value of the args parameter used to create this instance
   284         *
   285         *  This function executes in either the Configuration object model
   286         *  or the Build object model.
   287         *
   288         *  @a(returns)     Returns the "args" object that passed to this
   289         *                  module's create method when the instance was created.
   290         *
   291         *  @a(throws)      `Error` exceptions are thrown for fatal errors.
   292         */
   293        function getCreateArgs();
   294    // any getCreateArgs();
   295
   296        /*!
   297         *  ======== getExeContext ========
   298         *  Get execution context object corresponding to the specified program.
   299         *
   300         *  This is called before the program's configuration script runs to
   301         *  get the Cpu object that is assigned to the program's cpu field.
   302         *
   303         *  Note: that the build script for the program is responsible for
   304         *  specifying the CPU; this is done by either implicitly naming the
   305         *  platform or explicitly naming a particular CPU on the platform
   306         *  (see `{@link xdc.bld.Executable#Attrs.cpuId}`).
   307         *
   308         *  This function executes in the Configuration object model.
   309         *
   310         *  @param(prog)    the `{@link xdc.cfg.Program}` object representing the
   311         *                  program being configured.
   312         *
   313         *                  This object contains the following properties that
   314         *                  allows the platform to determine the appropriate Cpu
   315         *                  object to return (if there is more than one):
   316         *                      `prog.build.cpuId`,
   317         *                      `prog.build.cpuArgs`,
   318         *                      `prog.build.target`,
   319         *
   320         *  @a(returns)     Returns an `{@link xdc.platform.IExeContext}` instance
   321         *                  object that corresponds to the CPU that will run the
   322         *                  specified program.
   323         *
   324         *  @a(throws)      `Error` exceptions are thrown for fatal errors.
   325         */
   326        function getExeContext(prog);
   327    //    xdc.platform.IExeContext.Instance getExeContext(xdc.cfg.Program.Module prog);
   328
   329        /*!
   330         *  ======== getExecCmd ========
   331         *  Get the exec command used to run the program on this platform.
   332         *
   333         *  This function is called after the program's configuration script runs
   334         *  and returns commands that are used to load and run the specified
   335         *  program.  These commands are placed in a makefile that is included
   336         *  by the client package's generated makefile.  Thus, the commands may
   337         *  refer to macros defined in this environment; e.g., `$(SHELL)` and
   338         *  `$(XDCROOT)`, etc.
   339         *
   340         *  The special macro `$(1)` expands to test-specific arguments
   341         *  (`{@link xdc.bld.Test#attrs.execArgs}`) that are passed from the test
   342         *  to the platform's exec command.  Thus, all platforms that support
   343         *  arguments to their exec command, should embed "`$(1)`" within the
   344         *  command string at the appropriate place to have these arguments
   345         *  interpreted the exec command.
   346         *
   347         *  For example, a platform that uses a shell script to run executables
   348         *  and allows options to be passed to the shell script might return
   349         *  the following string:
   350         *  @p(code)
   351         *      "$(SHELL) <exec_path> $(1) <exe_name>"
   352         *  @p
   353         *  where, `<exec_path>` is the absolute path to the platform's exec
   354         *  shell script, and `<prog_name>` is the name of the executable relative
   355         *  to the package's base directory (i.e., `{@link xdc.cfg.Program#name}`).
   356         *
   357         *  This function executes in the Configuration object model.
   358         *
   359         *  @param(prog)    the `{@link xdc.cfg.Program}` object representing the
   360         *                  program being configured.
   361         *
   362         *                  This object contains the following properties that
   363         *                  allows the platform to determine the appropriate Cpu
   364         *                  object to return (if there is more than one):
   365         *                      `prog.build.cpuId`,
   366         *                      `prog.build.cpuArgs`,
   367         *                      `prog.build.target`
   368         *
   369         *  @param(platPath) full path to the platform package for the program
   370         *
   371         *  @a(returns)     Returns a string of commands used to execute this
   372         *                  program in the context of the XDC generated makefiles.
   373         *
   374         *  @a(throws)      `Error` exceptions are thrown for fatal errors.
   375         */
   376        function getExecCmd(prog, platPath);
   377    //    string  getExecCmd(xdc.cfg.Program.Module prog, string platPath);
   378
   379        /*!
   380         *  ======== getLinkTemplate ========
   381         *  Get Linker Command file template used to link an executable.
   382         *
   383         *  In the event that no template is provided by the program
   384         *  configuration script (see `{@link xdc.cfg.Program#linkTemplate}`),
   385         *  the template file identified by this method is used to generate the
   386         *  linker command file used to create the executable.
   387         *
   388         *  This function executes in the Configuration object model and
   389         *  is called after the program configuration script runs.  The template
   390         *  is expanded in the context of the Configuration Object Model.
   391         *
   392         *  @param(prog)    the `{@link xdc.cfg.Program}` object representing the
   393         *                  program being configured.
   394         *
   395         *                  This object contains the following properties that
   396         *                  allows the platform to determine the appropriate link
   397         *                  template to return:
   398         *                  @p(blist)
   399         *                      - `prog.build.cpuId`,
   400         *                      - `prog.build.cpuArgs`,
   401         *                      - `prog.build.target`
   402         *                  @p
   403         *  @a(returns)     Returns a path string to a template file or `null`.  If
   404         *                  `null`, no linker command file is generated; otherwise
   405         *                  this path is relative to the package path.
   406         *
   407         *  @a(throws)      `Error` exceptions are thrown for fatal errors.
   408         */
   409        function getLinkTemplate(prog);
   410    //    string getLinkTemplate(prog);
   411    }
   412    /*
   413     *  @(#) xdc.platform; 1, 0, 1, 0,296; 11-16-2010 11:20:10; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   414     */
   415


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    package xdc.platform [1,0,1,0] {
    17        /* platform model interfaces */
    18        interface IPlatform, ICpuDataSheet, IExeContext, IPeripheral;
    19
    20        /* utility modules that implement core behavior */
    21        module ExeContext, Utils;
    22    }
    23    /*
    24     *  @(#) xdc.platform; 1, 0, 1, 0,296; 11-16-2010 11:20:10; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    25     */
    26


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         *  ======== assembleMemoryMap ========
    26         *  Combine the device and the external memory map into a platform map
    27         *
    28         *  This function combines memory maps and also applies memory map name
    29         *  changes requested through renameMap.
    30         *
    31         *  @param(cpu)     an `xdc.platform.IExeContext` object
    32         *
    33         *  @param(plat)    a platform instance
    34         *
    35         *  @param(noCheck) if true, and a custom memory map is defined, the
    36         *                  function does not check if the custom memory map fits
    37         *                  into the available physical memory
    38         *
    39         *  @a(returns)     platform memory map
    40         */
    41        function assembleMemoryMap(cpu, plat, noCheck);
    42
    43        /*!
    44         *  ======== checkDefaults ========
    45         *  Check if dataMemory, codeMemory and stackMemory are set correctly
    46         *
    47         *  The `xdc.platform.IPlatform` instance parameters 'dataMemory',
    48         *  'codeMemory', and 'stackMemory' are strings. This function verifies
    49         *  that those strings correspond to names of the memory objects in the
    50         *  supplied memory map.
    51         *
    52         *  @param(inst)    an `xdc.platform.IPlatform` instance
    53         *
    54         *  @param(memMap)  a map of `xdc.platform.IPlatform.Memory` objects
    55         *
    56         *  @a(returns)     'true' if checked parameters are valid, 'false'
    57         *                  otherwise
    58         */
    59        function checkDefaults(inst, memMap);
    60
    61        /*!
    62         *  ======== checkFit ========
    63         *  Check if a memory map fits into available physical memory
    64         *
    65         *  A custom memory map segment can be spread over multiple physical
    66         *  memories or multiple custom memory map segments can be located in
    67         *  one physical memory. However, code/data restrictions must be followed.
    68         *  A custom memory segment with the parameter 'space' set to "code/data",
    69         *  which is the default value if the parameter was not specified, can fit
    70         *  only into "code/data" physical memories. Custom memory segments with
    71         *  'space' set to "code" can fit into "code" and "code/data" memories, and
    72         *  custom memory segments with 'space' set to "data" can fit into "data"
    73         *  and "code/data" physical memories.
    74         *
    75         *  @param(realMemMap)      a map of `xdc.platform.IPlatform.Memory`
    76         *                          objects containing physical memory map as
    77         *                          defined in datasheets for the device and the
    78         *                          platform
    79         *
    80         *  @param(customMemMap)    a map of `xdc.platform.IPlatform.Memory`
    81         *                          objects containing user defined memory map,
    82         *                          which must fit within boundaries of 'realMemMap'
    83         *
    84         *  @a(returns)             'true', if customMemMap fits within realMemMap,
    85         *                          and 'false' otherwise
    86         */
    87        function checkFit(realMemMap, customMemMap);
    88
    89        /*!
    90         *  ======== checkOverlap ========
    91         *  Check if there is an overlap among memory objects in a memory map
    92         *
    93         *  @param(memMap)  a map of `xdc.platform.IPlatform.Memory` objects
    94         *
    95         *  @a(returns)     a string with names of Memory objects that overlap
    96         */
    97        function checkOverlap(memMap);
    98
    99        /*!
   100         *  ======== getCpuDataSheet ========
   101         *  Get the specified cpu data sheet object
   102         *
   103         *  @param(cpuDesc) an `xdc.platform.IExeContext.Cpu` object identifying
   104         *                  the CPU device
   105         *
   106         *  @a(returns)     an `xdc.platform.ICpuDataSheet.Instance` object that
   107         *                  corresponds to the specified cpuDesc
   108         *
   109         *  @a(throws)      `Error` exceptions are thrown for fatal errors
   110         */
   111        function getCpuDataSheet(cpuDesc);
   112    }
   113
   114    /*
   115     *  @(#) xdc.platform; 1, 0, 1, 0,296; 11-16-2010 11:20:10; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   116     */
   117


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,105; 11-16-2010 11:20:11; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    94     */
    95


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,105; 11-16-2010 11:20:10; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    85     */
    86


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.rta.tools.file

     1    package xdc.rta.tools.file {
     2        module Main;
     3    }


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,296; 11-16-2010 11:20:23; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   233     */
   234


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 do not 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, to guarantee that NoRuntime
   171         *  modules do not accidentally request functionality they don not use.
   172         */
   173        metaonly readonly config Types.Common$ noRuntimeCommon$ = {
   174            diags_ASSERT:       Diags.ALWAYS_OFF,
   175            diags_ENTRY:        Diags.ALWAYS_OFF,
   176            diags_EXIT:         Diags.ALWAYS_OFF,
   177            diags_INTERNAL:     Diags.ALWAYS_OFF,
   178            diags_LIFECYCLE:    Diags.ALWAYS_OFF,
   179            diags_STATUS:       Diags.ALWAYS_OFF,
   180            diags_USER1:        Diags.ALWAYS_OFF,
   181            diags_USER2:        Diags.ALWAYS_OFF,
   182            diags_USER3:        Diags.ALWAYS_OFF,
   183            diags_USER4:        Diags.ALWAYS_OFF,
   184            diags_USER5:        Diags.ALWAYS_OFF,
   185            diags_USER6:        Diags.ALWAYS_OFF,
   186            diags_USER7:        Diags.ALWAYS_OFF,
   187            diags_INFO:         Diags.ALWAYS_OFF,
   188            diags_USER8:        Diags.ALWAYS_OFF,
   189            diags_ANALYSIS:     Diags.ALWAYS_OFF,
   190            fxntab:             false,
   191            gate:               null,
   192            gateParams:         null,
   193            instanceHeap:       null,
   194            instanceSection:    null,
   195            logger:             null,
   196            memoryPolicy:       Types.STATIC_POLICY,
   197            namedInstance:      false,
   198            namedModule:        false,
   199            romPatchTable:      false,
   200        };
   201
   202        /*!
   203         *  ======== getCommon ========
   204         *  Get a specified common parameter from a module
   205         *
   206         *  Get the value of a member of the structure `common$` based on
   207         *  defaults and the current value of the parameter. If the current value
   208         *  of `param` is `undefined`, the function returns the default value
   209         *  for that parameter from `Default.common$`.
   210         *
   211         *  @param(eb)      module whose parameter is queried
   212         *
   213         *  @param(param)   string naming the queried parameter
   214         *
   215         *  @a(returns)
   216         *  Returns the value of the parameter named `param` from the module
   217         *  `mod`.
   218         */
   219        metaonly Any getCommon(IModule.Module mod, String param);
   220    };
   221    /*
   222     *  @(#) xdc.runtime; 2, 1, 0,296; 11-16-2010 11:20:23; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   223     */
   224


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,     //! Bit is permanently cleared.
   224            ALWAYS_ON,      //! Bit is permanently set.
   225            RUNTIME_OFF,    //! Bit is cleared and modifiable at run-time.
   226            RUNTIME_ON      //! Bit is set and modifiable at run-time.
   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 LEVEL4
   282         *  events implies that events of all four levels will be logged.
   283         *
   284         *  LEVEL1 - Least detail, highest priority, most severe, etc.
   285         *  LEVEL2
   286         *  LEVEL3
   287         *  LEVEL4 - Most detail, lowest priority, least severe, etc.
   288         *
   289         *  The STATUS bit is the only category where the levels are given explicit
   290         *  meaning to ensure consistency. Within the STATUS category, the meaning
   291         *  of the levels is defined by the constants EMERGENCY, CRITICAL, ERROR,
   292         *  and WARNING.
   293         *
   294         *  Events which don't define a level will receive LEVEL1 by default.
   295         */
   296        enum EventLevel {
   297            LEVEL1 = 0x0,
   298            LEVEL2 = 0x20,
   299            LEVEL3 = 0x40,
   300            LEVEL4 = 0x60
   301        };
   302
   303        /*!
   304         *  A 'LEVEL1' 'STATUS' event is defined as 'EMERGENCY'
   305         *
   306         *  For STATUS events only, the meaning of the four EventLevels has been
   307         *  defined. These constants are simply aliases for the four event levels.
   308         *
   309         *  The highest three levels are different severities of an error event.
   310         *  For example, an EMERGENCY event may represent an unrecoverable system
   311         *  failure, a CRITICAL event may require notification of an operator,
   312         *  and an ERROR may be a recoverable error.
   313         *
   314         *  The lowest level is reserved for warnings, such as when a resource
   315         *  becomes dangerously low.
   316         */
   317        const EventLevel EMERGENCY = LEVEL1;
   318
   319        /*!
   320         *  A 'LEVEL2' 'STATUS' event is defined as 'CRITICAL'
   321         *
   322         *  See '{@link #EMERGENCY}' for details.
   323         */
   324        const EventLevel CRITICAL = LEVEL2;
   325
   326        /*!
   327         *  A 'LEVEL3' 'STATUS' event is defined as 'ERROR'
   328         *
   329         *  See '{@link #EMERGENCY}' for details.
   330         */
   331        const EventLevel ERROR = LEVEL3;
   332
   333        /*!
   334         *  A 'LEVEL4' 'STATUS' event is defined as 'WARNING'
   335         *
   336         *  See '{@link #EMERGENCY}' for details.
   337         */
   338        const EventLevel WARNING = LEVEL4;
   339
   340        /*!
   341         *  ======== DiagsMaskView ========
   342         *  @_nodoc
   343         */
   344        metaonly struct DiagsMaskView {
   345            String Module;
   346            String logger;
   347            String USER1;
   348            String USER2;
   349            String USER3;
   350            String USER4;
   351            String USER5;
   352            String USER6;
   353            String INFO;
   354            String ANALYSIS;
   355            String STATUS;
   356            String ENTRY;
   357            String EXIT;
   358            String LIFECYCLE;
   359            String INTERNAL;
   360            String ASSERT;
   361        }
   362
   363        /*!
   364         *  ======== rovViewInfo ========
   365         *  @_nodoc
   366         */
   367        @Facet
   368        metaonly config xdc.rov.ViewInfo.Instance rovViewInfo =
   369            xdc.rov.ViewInfo.create({
   370                viewMap: [
   371                    ['DiagsMasks',
   372                        {
   373                            type: xdc.rov.ViewInfo.TREE_TABLE,
   374                            viewInitFxn: 'viewInitDiagsMasks',
   375                            structName: 'DiagsMaskView'
   376                        }
   377                    ]
   378                ]
   379            });
   380
   381        /*!
   382         *  ======== query ========
   383         *  Query the module's diagnostics mask against the given mask.
   384         *
   385         *  Use this query function to test the state of a module's
   386         *  diagnostics mask at runtime. This function will perform a logical
   387         *  `AND` operation on the module's diagnostics mask and the given mask.
   388         *  If any bits survive the operation, the function returns `true`.
   389         *
   390         *  @p(code)
   391         *  result = moduleMask & givenMask ? true : false;
   392         *  @p
   393         *
   394         *  This query function has a compile-time binding to the module's
   395         *  diagnostics mask. If the query function is part of the C code
   396         *  implementation of a module, then it will use that module's
   397         *  diagnostics mask. Otherwise, it will use the diagnostics mask
   398         *  of the `{@link Main xdc.runtime.Main}` module.
   399         *
   400         *  The implementation of the diagnostics mask and the query function
   401         *  is such that an optimizer can take advantage of dead code elimination
   402         *  and/or constant folding to eliminate or reduce code size. For example,
   403         *  if the query function is used in a conditional test, and the given
   404         *  mask contains only bits which have been configured to be permanently
   405         *  off, then the code for the entire conditional statement can be removed
   406         *  at link time. If the bits in the given mask have been configured to be
   407         *  permanently on, then the conditional code can be removed leaving the
   408         *  body of the conditional as direct in-line code.
   409         *
   410         *  @param(mask) mask of diagnostics bits to test
   411         *
   412         *  This given mask is constructed by `OR`'ing together
   413         *  the desired bits of the diagnostics mask using the constants listed
   414         *  in the {@link #ALL Mask Summary} above. The module's diagnostics
   415         *  mask will be logically `AND`'ed with the given mask, and return `true`
   416         *  if the result is non-zero and `false` otherwise.
   417         *
   418         *  @p(code)
   419         *      if (Diags_query(Diags_USER1 | Diags_USER4)) {
   420         *          :
   421         *      }
   422         *  @p
   423         *
   424         *  @a(Examples)
   425         *  In the following example, the `{@link #USER1 USER1}` bit of the
   426         *  module's diagnostics mask has been configured to be permanently off,
   427         *  thus the entire conditional code block can be removed at link time.
   428         *  Note, the C code below is part of the module itself.
   429         *
   430         *  Configuration Script
   431         *  @p(code)
   432         *  var Diags = xdc.useModule('xdc.runtime.Diags');
   433         *  var ModA = xdc.useModule('my.package.ModuleA');
   434         *  ModA.common$.diags_USER1 = Diags.ALWAYS_OFF;
   435         *  @p
   436         *
   437         *  C Code, ModA.c
   438         *  @p(code)
   439         *  if (Diags_query(Diags_USER1)) {         // this code removed
   440         *      ...additional code here...          // this code removed
   441         *  }                                       // this code removed
   442         *  @p
   443         *
   444         *  @p(html)
   445         *  <hr />
   446         *  @p
   447         *
   448         *  In the following example, the `{@link #USER1 USER1}` bit of the
   449         *  module's diagnostics mask has been configured to be permanently on,
   450         *  thus the conditional code can be removed leaving the code contained
   451         *  within the conditional statement. Note, the C code below is part of
   452         *  the module itself.
   453         *
   454         *  Configuration Script
   455         *  @p(code)
   456         *  var Diags = xdc.useModule('xdc.runtime.Diags');
   457         *  var ModA = xdc.useModule('my.package.ModuleA');
   458         *  ModA.common$.diags_USER1 = Diags.ALWAYS_ON;
   459         *  @p
   460         *
   461         *  C Code, ModA.c
   462         *  @p(code)
   463         *  if (Diags_query(Diags_USER1) {          // this code removed
   464         *      ...additional code here...          // this code remains
   465         *  }                                       // this code removed
   466         *  @p
   467         *
   468         */
   469        @Macro Bool query(Mask mask);
   470
   471        /*!
   472         *  ======== getLevel ========
   473         *  Get the event level set in the given mask.
   474         *
   475         *  See '{@link #EventLevel}' for a description of event levels.
   476         *
   477         *  @param(mask) mask of diagnostics bits to read filter level from.
   478         */
   479        @Macro EventLevel getLevel(Mask mask);
   480
   481        /*!
   482         *  ========= compareLevels ========
   483         *  Returns false if levelA is lower than levelB.
   484         *
   485         *  This API is intended to be used to determine if a given event
   486         *  passes a filtering threshold and should be logged. Conceptually (though
   487         *  not necessarily in implementation), this API is equivalent to the
   488         *  expression (levelA < levelB). The values of the EventLevels have
   489         *  internal meaning, so a direct comparison of two levels should not done;
   490         *  this API must be used to correctly compare them.
   491         *
   492         *  LEVEL1 is the highest level and LEVEL4 is the lowest. So LEVEL4 is
   493         *  less than LEVEL3, which is less than LEVEL2, which is less than LEVEL1.
   494         */
   495        @Macro Bool compareLevels(EventLevel levelA, EventLevel levelB);
   496
   497        /*!
   498         *  ======== setMask ========
   499         *  Set a module's diagnostics mask at runtime.
   500         *
   501         *  Use the given control string to set or clear bits in a module's
   502         *  diagnostics mask. The control string defines one or more actions
   503         *  where each action modifies the diagnostics mask in one or more
   504         *  modules. Each action can either set, clear, or assign a module's
   505         *  diagnostics mask. To both set and clear bits in the same diagnostics
   506         *  mask requires two actions, or you can assign the entire mask
   507         *  explicitly in one action. Each action can specify a given module or
   508         *  a set of modules using name prefix matching.
   509         *
   510         *  @a(Warning)
   511         *
   512         *  Each bit of a module's diagnostics mask that is to be modified at
   513         *  runtime, must be configured to be runtime modifiable in the
   514         *  program's configuration script. Use either `{@link #Mode RUNTIME_OFF}`
   515         *  or `{@link #Mode RUNTIME_ON}` as the configuration value for the
   516         *  desired bit in the diagnostics mask. In addition, the
   517         *  `{@link Diags#setMaskEnabled Diags.setMaskEnabled}` configuration
   518         *  parameter must be set to `true` in order to load this function onto
   519         *  the target. Finally, the following configuration parameters must
   520         *  have the values indicated (which are their default values):
   521         *
   522         *  @p(blist)
   523         *  - `{@link IModule#common$ <module>.common$.namedModule} = true;`
   524         *  - `{@link Text#isLoaded} = true;`
   525         *  @p
   526         *
   527         *  Note: any error that occurs during the parsing of the control string
   528         *  causes `Diags_setmask()` to return without processing the remainder
   529         *  of the control string.
   530         *
   531         *  @param(control) diagnostic mask control string
   532         *
   533         *  This control string defines one or more actions
   534         *  where each action consists of a module name, an operator character,
   535         *  and a list of bit specifiers. Use the `%` character as a wildcard
   536         *  to turn the module name into a prefix matching pattern for a set
   537         *  of modules. Multiple actions are separated with the `;` character.
   538         *
   539         *  @p
   540         *  The control string has the following format:
   541         *
   542         *  @p(code)
   543         *  <module[%]><op><bits>[;<module[%]><op><bits>]
   544         *  @p
   545         *
   546         *  Specify individual module names explicitly (e.g.
   547         *  `ti.sysbios.knl.Task`), or match multiple modules using a prefix
   548         *  matching pattern specified with the `%` character (e.g.
   549         *  `ti.sysbios.knl.%`).
   550         *
   551         *  @p
   552         *  The operator is specified with a single character from the following
   553         *  table.
   554         *
   555         *  @p(code)
   556         *  Operator    Description
   557         *  --------------------------------------------------
   558         *  +           Set only the specified bits (other bits preserved)
   559         *  -           Clear only the specified bits (other bits preserved)
   560         *  =           Assign the entire mask to the given value where the
   561         *              specified bits are set and all other bits are cleared
   562         *  @p
   563         *
   564         *  The bits are specified with a list of characters from the following
   565         *  table. Refer to the {@link #ALL Mask Summary} for a list of each
   566         *  bit of the diagnostics mask.
   567         *
   568         *  @p(code)
   569         *  Control     Diagnostics
   570         *  Character   Constant        Description
   571         *  --------------------------------------------------
   572         *  E           ENTRY           Function entry
   573         *  X           EXIT            Function exit
   574         *  L           LIFECYCLE       Object life-cycle
   575         *  I           INTERNAL        Internal diagnostics
   576         *  A           ASSERT          Assert checking
   577         *  Z           ANALYSIS        Analysis event
   578         *  F           INFO            Informational event
   579         *  S           STATUS          Status (error, warning) event
   580         *  1           USER1           User defined diagnostics
   581         *  2           USER2           User defined diagnostics
   582         *  3           USER3           User defined diagnostics
   583         *  4           USER4           User defined diagnostics
   584         *  5           USER5           User defined diagnostics
   585         *  6           USER6           User defined diagnostics
   586         *  7           USER7           User defined diagnostics
   587         *  8           USER8           User defined diagnostics
   588         *  @p
   589         *
   590         *  @a(Examples)
   591         *  The following example demonstrates how to set a module's diagnostics
   592         *  mask (the `Task` module in this case) at runtime. In this example, the
   593         *  `{@link #USER1 USER1}` bit is turned on. Note that the module's
   594         *  `{@link #USER1 USER1}` diagnostics bit must be configured to be runtime
   595         *  modifiable. In this instance, the bit is initialized to off.
   596         *
   597         *  Configuration Script
   598         *  @p(code)
   599         *  var Diags = xdc.useModule('xdc.runtime.Diags');
   600         *  var Task = xdc.useModule('ti.sysbios.knl.Task');
   601         *  Task.common$.diags_USER1 = Diags.RUNTIME_OFF;
   602         *  @p
   603         *
   604         *  C Code
   605         *  @p(code)
   606         *  Diags_setMask("ti.sysbios.knl.Task+1");
   607         *  @p
   608         *
   609         *  @p(html)
   610         *  <hr />
   611         *  @p
   612         *
   613         *  The following example demonstrates the use of the `%` wildcard
   614         *  character to set the `{@link #USER1 USER1}` bit at runtime for
   615         *  all modules in the `ti.sysbios.knl` package. The meta-only
   616         *  `{@link #setMaskMeta Diags.setMaskMeta}` function is used to configure
   617         *  the `{@link #USER1 USER1}` bit to be runtime modifiable. The `setMask`
   618         *  function is used to actually set the `{@link #USER1 USER1}` bit at
   619         *  runtime in all the `ti.sysbios.knl` modules.
   620         *  Note the use of the `%` character in both functions to match all the
   621         *  module names within the given package.
   622         *
   623         *  Configuration Script
   624         *  @p(code)
   625         *  var Diags = xdc.useModule('xdc.runtime.Diags');
   626         *  Diags.setMaskMeta("ti.sysbios.knl.%", Diags.USER1, Diags.RUNTIME_OFF);
   627         *  @p
   628         *
   629         *  C Code
   630         *  @p(code)
   631         *  Diags_setMask("ti.sysbios.knl.%+1");
   632         *  @p
   633         *
   634         *  @p(html)
   635         *  <hr />
   636         *  @p
   637         *
   638         *  In the following example, the `{@link #ENTRY ENTRY}`,
   639         *  `{@link #EXIT EXIT}` and `{@link #LIFECYCLE LIFECYCLE}` trace is
   640         *  enabled for all modules in the `ti.sysbios.knl` package but is
   641         *  initially off; i.e., no events will occur until explicitly turned
   642         *  on at runtime.
   643         *
   644         *  At runtime the call to `Diags_setMask` turns on
   645         *  `{@link #ENTRY ENTRY}` and `{@link #EXIT EXIT}` trace and turns off
   646         *  `{@link #LIFECYCLE LIFECYCLE}` trace for all modules in
   647         *  the application for which trace has been enabled during
   648         *  configuration.  In this case, the only modules that can generate
   649         *  events are those in the `ti.sysbios.knl` package.
   650         *
   651         *  Configuration Script
   652         *  @p(code)
   653         *  var Diags = xdc.useModule('xdc.runtime.Diags');
   654         *  Diags.setMaskMeta("ti.sysbios.knl.%",
   655         *      Diags.ENTRY | Diags.EXIT | Diags.LIFECYCLE, Diags.RUNTIME_OFF);
   656         *  @p
   657         *
   658         *  C Code
   659         *  @p(code)
   660         *  Diags_setMask("%+EX;%-L");
   661         *  @p
   662         */
   663        Void setMask(String control);
   664
   665        /*!
   666         *  ======== setMaskMeta ========
   667         *  Set the module's diagnostics mask at config time.
   668         *
   669         *  @param(pattern) module prefix or regular expression
   670         *
   671         *  The `pattern` is used to match a module's name. If `pattern` is
   672         *  specified as a string, then name prefix matching is used. The
   673         *  pattern may also be a regular expression.  Only the masks of the
   674         *  modules matching `pattern` are set.
   675         *
   676         *  @param(mask) diagnostic fields to modify
   677         *
   678         *  The `mask` is used to determine which fields in the diags mask are
   679         *  modified. Each field specified in the mask is set to the given
   680         *  `mode` value.
   681         *
   682         *  @param(mode) mode to assign to the specified `mask` fields
   683         */
   684        metaonly Void setMaskMeta(Any pattern, Mask mask, Mode mode);
   685
   686    internal:
   687
   688        /*!
   689         *  ======== setMaskEnabled ========
   690         *  Controls the ability to set the diags mask at run-time.
   691         *
   692         *  This configuration parameter allows whole program optimizers to reduce
   693         *  the code size. The default is `false`, which means the diags mask will
   694         *  not be modified at run-time and thus the code is not needed.
   695         *
   696         *  For now, this should be internal because its value is determined
   697         *  automatically, rather than through user's input. See CQ19111 for more
   698         *  details.
   699         */
   700        config Bool setMaskEnabled = false;
   701
   702        /*
   703         *  ======== dictBase ========
   704         *  Array of module-id:diags-mask pairs in which each module is named
   705         *
   706         *  This array, generated by Diags.xdt, is terminated by an element
   707         *  with modId == 0.
   708         */
   709        config DictElem *dictBase = null;
   710
   711        struct DictElem {
   712            Types.ModuleId  modId;      /* statically computed module id */
   713            Mask           *maskAddr;   /* module's diags mask address */
   714        };
   715    }
   716    /*
   717     *  @(#) xdc.runtime; 2, 1, 0,296; 11-16-2010 11:20:23; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   718     */
   719


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}`.
   232         *  An `Error_Id` is a 32-bit target value that encodes the information
   233         *  in the `Desc`.  Target programs use `Error_Id` values to "raise" and
   234         *  check for specific errors.
   235         *
   236         *  @a(Warning) `{@link #Id}` values may vary among different
   237         *  configurations of an application.  For example, the addition of a
   238         *  new module to a program may result in a different absolute value for
   239         *  `{@link #E_generic}`.  If you need error numbers that remain
   240         *  invariant, use the user definable `{@link #Desc Desc.code}` field.
   241         */
   242        @Encoded typedef Desc Id;
   243
   244        /*!
   245         *  ======== NUMARGS ========
   246         *  Maximum number of arguments supported by an error.
   247         */
   248        const Int NUMARGS = 2;
   249
   250        /*!
   251         *  ======== Data ========
   252         *  Error args
   253         *
   254         *  The two arguments (arg1, arg2) passed to `{@link #raise}` are
   255         *  stored in one of these arrays within the associated Error_Block.
   256         *  To access these arguments use `{@link #getData}` to obtain a
   257         *  pointer to the Error_Block's Data array.
   258         *
   259         *  @see #getData
   260         */
   261        struct Data {
   262            IArg arg[NUMARGS];
   263        }
   264
   265        /*!
   266         *  ======== Block ========
   267         *  Error block
   268         *
   269         *  An opaque structure used to store information about errors once raised.
   270         *  This structure must be initialized via `{@link #init Error_init()}`
   271         *  before being used for the first time.
   272         */
   273        @Opaque struct Block {
   274            UInt16      unused;     /* for backward compatibility (was code) */
   275            Data        data;       /* arguments passed to raise() */
   276            Id          id;         /* id passed to raise() */
   277            String      msg;        /* msg associated with id */
   278            Types.Site  site;       /* info about Error_raise call site */
   279            IArg        xtra[4];    /* future expansion */
   280        };
   281
   282        /*!
   283         *  ======== E_generic ========
   284         *  Generic error
   285         *
   286         *  This error takes advantage of the $S specifier to allow for recursive
   287         *  formatting of the error message passed to error raise.
   288         *
   289         *  For example, the following is possible:
   290         *  @p(code)
   291         *  Error_raise(eb, Error_E_generic, "Error occurred, code: %d", code);
   292         *  @p
   293         *
   294         *  @see System#extendedFormats
   295         *  @see System#printf
   296         */
   297        config Id E_generic = {msg: "%$S"};
   298
   299        /*!
   300         *  ======== E_memory ========
   301         *  Out of memory error
   302         *
   303         *  The first parameter must be the heap instance handle. The second
   304         *  parameter is the size of the object for which the allocation failed.
   305         */
   306        config Id E_memory = {msg: "out of memory: heap=0x%x, size=%u"};
   307
   308        /*!
   309         *  ======== E_msgCode ========
   310         *  Generic error that displays a string and a numeric value
   311         */
   312        config Id E_msgCode = {msg: "%s 0x%x"};
   313
   314        /*!
   315         *  ======== policy ========
   316         *  System-wide error handling policy
   317         */
   318        config Policy policy = UNWIND;
   319
   320        /*!
   321         *  ======== raiseHook ========
   322         *  The function to call whenever an error is raised
   323         *
   324         *  This function is always called when an error is raised, even if the
   325         *  Error policy is `{@link #Policy TERMINATE}`.  In rare cases it is
   326         *  possible that a raised error does not trigger a call to `raiseHook`;
   327         *  see `{@link #maxDepth}`.
   328         *
   329         *  @param(eb) non-`NULL` pointer to an `Error_Block`
   330         *
   331         *      Even if the client passes a `NULL` error block pointer, this
   332         *      parameter is always `non-NULL`.
   333         *
   334         *  @see #maxDepth
   335         */
   336        config Void (*raiseHook)(Block *) = Error.print;
   337
   338        /*!
   339         *  ======== maxDepth ========
   340         *  Maximum number of concurrent calls to `{@link #raiseHook}`
   341         *
   342         *  To prevent errors that occur in the raiseHook function from
   343         *  causing an infinite recursion, the maximum number of concurrent
   344         *  calls to `{@link #raiseHook}` is limited by `Error_maxDepth`.  If
   345         *  the number of concurrent calls exceeds `Error_maxDepth`, the
   346         *  `raiseHook` function is not called.
   347         *
   348         *  In multi-threaded systems, errors raised by separate threads may
   349         *  be detected as recursive calls to `raiseHook`.  So, setting
   350         *  `Error.maxDepth` to a small value may - in rare instances - result in
   351         *  `errorHook` not being called for some raised errors.
   352         *
   353         *  If it is important that all raised errors trigger a call to the
   354         *  `raiseHook` function, set `Error.maxDepth` to an impossibly large
   355         *  number (0xffff) and either ensure that the raise hook never calls a
   356         *  function that can raise an error or add checks in `raiseHook` to
   357         *  protect against "double faults".
   358         */
   359        config UInt16 maxDepth = 16;
   360
   361        /*!
   362         *  ======== check ========
   363         *  Return TRUE if an error was raised
   364         *
   365         *  @param(eb) pointer to an `Error_Block` or `NULL`
   366         *
   367         *  @a(returns)
   368         *  If `eb` is non-`NULL` and `{@link #policy Error.policy} == UNWIND` and
   369         *  an error was raised on `eb`, this function returns `TRUE`.  Otherwise,
   370         *  it returns `FALSE`.
   371         */
   372        Bool check(Block *eb);
   373
   374        /*!
   375         *  ======== getData ========
   376         *  Get an error's argument list
   377         *
   378         *  @param(eb)      non-`NULL` pointer to an `Error_Block`
   379         *
   380         *  @a(returns)
   381         *  `getData` returns an array of type `{@link #Data}` with
   382         *  `{@link #NUMARGS}` elements containing the arguments provided
   383         *  at the time the error was raised.
   384         *
   385         *  @see #raise
   386         */
   387        Data *getData(Block *eb);
   388
   389        /*!
   390         *  ======== getCode ========
   391         *  Get an error's code
   392         *
   393         *  @param(eb) non-`NULL` pointer to an `Error_Block`
   394         *
   395         *  @a(returns)
   396         *  `getCode` returns the error code associated with this error block.
   397         *
   398         *  @see #raise
   399         *  @see #Desc
   400         */
   401        UInt16 getCode(Block *eb);
   402
   403        /*!
   404         *  ======== getId ========
   405         *  Get an error's id
   406         *
   407         *  @param(eb) non-`NULL` pointer to an `Error_Block`
   408         *
   409         *  @a(Warning)
   410         *  `Error_Id` values may vary among different configurations
   411         *  of an application.  For example, the addition of a new module to a
   412         *  program may result in a different absolute value for
   413         *  `{@link #E_generic}`.  If you need error numbers that remain
   414         *  invariant, use the user definable `{@link #Desc Desc.code}` field.
   415         *
   416         *  @see #raise
   417         *  @see #Desc
   418         */
   419        Id getId(Block *eb);
   420
   421        /*!
   422         *  ======== getMsg ========
   423         *  Get an error's "printf" format string
   424         *
   425         *  @param(eb) non-`NULL` pointer to an `Error_Block`
   426         *
   427         *  @see #raise
   428         *  @see #Desc
   429         */
   430        String getMsg(Block *eb);
   431
   432        /*!
   433         *  ======== getSite ========
   434         *  Get an error's call site info
   435         *
   436         *  @param(eb) non-`NULL` pointer to an `Error_Block`
   437         *
   438         *  @a(returns)
   439         *  `getSite` returns a pointer to an initialized
   440         *  `{@link Types#Site Types.Site}` structure.  However, in the
   441         *  event that the call site was compiled with `xdc_FILE` defined to
   442         *  be `NULL` (to minimize string space overhead) the `file`
   443         *  field may be set to `NULL`.
   444         *
   445         *  @see #raise
   446         *  @see #Desc
   447         */
   448        Types.Site *getSite(Block *eb);
   449
   450        /*!
   451         *  ======== idToCode ========
   452         *  Extract the code associated with an `Error_Id`
   453         *
   454         *  @param(id) `Error_Id` from which to extract the user defined
   455         *             code
   456         *  @_nodoc
   457         */
   458        @Macro UInt16 idToCode(Id id);
   459
   460        /*!
   461         *  ======== init ========
   462         *  Put an error block into its initial state
   463         *
   464         *  To ensure reliable error detection, clients must call `init` for
   465         *  an `Error_Block` prior to any use.
   466         *
   467         *  If the same Error Block is used multiple times, only the last error
   468         *  raised is retained.
   469         *
   470         *  @param(eb) pointer to an `Error_Block` or `NULL`
   471         *
   472         *      If `eb` is `NULL` this function simply returns.
   473         */
   474        Void init(Block *eb);
   475
   476        /*!
   477         *  ======== print ========
   478         *  Print error using System.printf()
   479         *
   480         *  This function prints the error using `System_printf()`.  The output
   481         *  is on a single line terminated with a new line character and has the
   482         *  following form:
   483         *  @p(code)
   484         *      <site>: <file>, line <line_num>: <err_msg>
   485         *  @p
   486         *  where `<site>` is the module that raised the error, `<file>` and
   487         *  `<line_num>` are the file and line number of the containing the call
   488         *  site of the `Error_raise()`, and `<err_msg>` is the error message
   489         *  rendered with the arguments associated with the error.
   490         *
   491         *  @param(eb) pointer to an `Error_Block` or `NULL`
   492         *
   493         *      If `eb` is `NULL` this function simply returns with no output.
   494         *
   495         *  @a(Warning)
   496         *  This function is not protected by a gate and, as a result,
   497         *  if two threads call this method concurrently, the output of the two
   498         *  calls will be intermingled.  To prevent intermingled error output,
   499         *  you can either wrap all calls to this method with an appropriate
   500         *  `Gate_enter`/`Gate_leave` pair or simply ensure that only one
   501         *  thread in the system ever calls this method.
   502         */
   503        Void print(Block *eb);
   504
   505        /*!
   506         *  ======== raise ========
   507         *  Raise an error
   508         *
   509         *  This function is used to raise an `Error` by writing call site,
   510         *  error ID, and error argument information into the `Error_Block`
   511         *  pointed to by `eb`.
   512         *
   513         *  If `Error_raise` is called more than once on an `Error_Block` object,
   514         *  the previous error information is overwritten; only the last error
   515         *  is retained in the `Error_Block` object.
   516         *
   517         *  In all cases, any configured `{@link #raiseHook Error.raiseHook}`
   518         *  function is called with a non-`NULL` pointer to a fully
   519         *  initialized `Error_Block` object.
   520         *
   521         *  @param(eb) pointer to an `Error_Block` or `NULL`
   522         *
   523         *      If `eb` is `NULL` or `{@link #policy Error.policy} == TERMINATE`,
   524         *      this function does not return to the caller; after calling any
   525         *      configured `{@link #raiseHook}`, `System_abort` is called with the
   526         *      string `"xdc.runtime.Error.raise: terminating execution\n"`.
   527         *
   528         *  @param(id) the error to raise
   529         *
   530         *      This pointer identifies the class of error being raised;
   531         *      the error class indicates how to interpret any subsequent
   532         *      arguments passed to `{@link #raise}`.
   533         *
   534         *  @param(arg1) error's first argument
   535         *
   536         *      The argument interpreted by the first control character
   537         *      in the error message format string. It is ignored if not needed.
   538         *
   539         *  @param(arg2) error's second argument
   540         *
   541         *      The argument interpreted by the second control character
   542         *      in the error message format string. It is ignored if not needed.
   543         */
   544        @Macro Void raise(Block *eb, Id id, IArg arg1, IArg arg2);
   545
   546        /*! @_nodoc */
   547        Void raiseX(Block *eb, Types.ModuleId mod, String file, Int line, Id id,
   548            IArg arg1, IArg arg2);
   549
   550    internal:
   551
   552        struct Module_State {
   553            UInt16      count;
   554        };
   555
   556    }
   557    /*
   558     *  @(#) xdc.runtime; 2, 1, 0,296; 11-16-2010 11:20:23; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   559     */
   560


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,296; 11-16-2010 11:20:23; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   224     */
   225


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,296; 11-16-2010 11:20:23; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    36     */
    37


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,296; 11-16-2010 11:20:23; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   192     */
   193


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,296; 11-16-2010 11:20:23; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   166     */
   167


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 that all ILogger implementations support it.
    23     *
    24     *  ILoggers which 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} APIs support
    28     *  specification of a different filtering level for each of the diagnostics
    29     *  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        config Bool filterByLevel = false;
    41
    42    instance:
    43
    44        /*!
    45         *  ======== setFilterLevel ========
    46         *  Sets the level of detail that instances will log.
    47         *
    48         *  Events with the specified level or higher will be logged, events
    49         *  below the specified level will be dropped.
    50         *
    51         *  Events are filtered first by diags category, then by level. If an
    52         *  event's diags category is disabled in the module's diags mask, then it
    53         *  will be filtered out regardless of level. The event will not even be
    54         *  passed to the logger.
    55         *
    56         *  This API allows for setting the filtering level for more than one
    57         *  diags category at a time. The mask parameter can be a single category
    58         *  or multiple categories combined, and the level will be set for all of
    59         *  those categories.
    60         *
    61         *  @param(mask) The diags categories to set the level for
    62         *  @param(filterLevel) The new filtering level for the specified
    63         *                      categories
    64         */
    65        Void setFilterLevel(Diags.Mask mask, Diags.EventLevel filterLevel);
    66
    67        /*!
    68         *  ======== getFilterLevel ========
    69         *  Returns the mask of diags categories currently set to the specified
    70         *  level.
    71         *
    72         *  See '{@link #setFilterLevel}' for an explanation of level filtering.
    73         */
    74        Diags.Mask getFilterLevel(Diags.EventLevel level);
    75
    76    }
    77    /*
    78     *  @(#) xdc.runtime; 2, 1, 0,296; 11-16-2010 11:20:23; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    79     */
    80


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,296; 11-16-2010 11:20:23; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   146     */
   147


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,296; 11-16-2010 11:20:23; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    93     */
    94


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         *  If instances have been configured to not support names, it is still
    45         *  possible to assign to the `instance.name` field of the parameter
    46         *  structure (as shown above).  However, the pointer is not retained
    47         *  and methods that normally return an instance's name will return
    48         *  `NULL` instead.
    49         */
    50        config String name = null;
    51    }
    52    /*
    53     *  @(#) xdc.runtime; 2, 1, 0,296; 11-16-2010 11:20:23; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    54     */
    55


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,296; 11-16-2010 11:20:23; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   196     */
   197


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,296; 11-16-2010 11:20:24; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   310     */
   311


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,296; 11-16-2010 11:20:24; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   110     */
   111


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,296; 11-16-2010 11:20:24; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    79     */
    80


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,296; 11-16-2010 11:20:24; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    51     */
    52


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 addition 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         *  ======== getMask ========
   401         *  Get the `Diags` mask for the specified (encoded) event
   402         *
   403         *  @param(evt)     the `Log` event encoding a mask and event ID
   404         *
   405         *  @a(returns)     `Diags` mask for the specified event
   406         */
   407        @Macro Diags.Mask getMask(Event evt);
   408
   409        /*!
   410         *  ======== getRope ========
   411         *  Get RopeId of the Event.msg for the specified (encoded) event
   412         *  @_nodoc
   413         */
   414        @Macro Text.RopeId getRope(Event evt);
   415
   416        /*!
   417         *  ======== getEventId ========
   418         *  Get event ID of the specified (encoded) event
   419         *
   420         *  This method is used to compare "known" `Log` events with
   421         *  "raised" `{@link Types#Event Types_Event}`.
   422         *
   423         *  @param(evt)     the `Log` event encoding a mask and event ID
   424         *
   425         *  @a(returns)     event ID of the specified event
   426         *
   427         *  @see Types#getEventId
   428         */
   429        @Macro EventId getEventId(Event evt);
   430
   431        /*!
   432         *  ======== print0 ========
   433         *  Generate a `Log` "print event" with 0 arguments
   434         *
   435         *  @see #print6
   436         */
   437        @Macro Void print0(Diags.Mask mask, String fmt);
   438
   439        /*!
   440         *  ======== print1 ========
   441         *  Generate a `Log` "print event" with 1 argument
   442         *
   443         *  @see #print6
   444         */
   445        @Macro Void print1(Diags.Mask mask, String fmt, IArg a1);
   446
   447        /*!
   448         *  ======== print2 ========
   449         *  Generate a `Log` "print event" with 2 arguments
   450         *
   451         *  @see #print6
   452         */
   453        @Macro Void print2(Diags.Mask mask, String fmt, IArg a1, IArg a2);
   454
   455        /*!
   456         *  ======== print3 ========
   457         *  Generate a `Log` "print event" with 3 arguments
   458         *
   459         *  @see #print6
   460         */
   461        @Macro Void print3(Diags.Mask mask, String fmt, IArg a1, IArg a2, IArg a3);
   462
   463        /*!
   464         *  ======== print4 ========
   465         *  Generate a `Log` "print event" with 4 arguments
   466         *
   467         *  @see #print6
   468         */
   469        @Macro Void print4(Diags.Mask mask, String fmt, IArg a1, IArg a2, IArg a3,
   470            IArg a4);
   471
   472        /*!
   473         *  ======== print5 ========
   474         *  Generate a `Log` "print event" with 5 arguments
   475         *
   476         *  @see #print6
   477         */
   478        @Macro Void print5(Diags.Mask mask, String fmt, IArg a1, IArg a2, IArg a3,
   479            IArg a4, IArg a5);
   480
   481        /*!
   482         *  ======== print6 ========
   483         *  Generate a `Log` "print event" with 6 arguments
   484         *
   485         *  As a convenience to C (as well as assembly language) programmers,
   486         *  the `Log` module provides a variation of the ever-popular `printf`
   487         *  function.
   488         *  The `print[0-6]` functions generate a `Log` "print event" and route
   489         *  it to the current module's logger.
   490         *
   491         *  The arguments passed to `print[0-6]` may be characters, integers,
   492         *  strings, or pointers.  However, because the declared type of the
   493         *  arguments is `{@link xdc IArg}`, all pointer arguments must be cast
   494         *  to an `IArg` type.  `IArg` is an integral type large enough to hold
   495         *  any pointer or an `int`.  So, casting a pointer to an `IArg` does
   496         *  not cause any loss of information and C's normal integer conversions
   497         *  make the cast unnecessary for integral arguments.
   498         *
   499         *  The format string can use the following conversion characters.
   500         *  However, it is important to recall that all arguments referenced by
   501         *  these conversion characters have been converted to an `IArg`
   502         *  prior to conversion; so, the use of "length modifiers" should be
   503         *  avoided.
   504         *
   505         *  @p(code)
   506         *  Conversion Character    Description
   507         *  ------------------------------------------------
   508         *  %c                      Character
   509         *  %d                      Signed integer
   510         *  %u                      Unsigned integer
   511         *  %x                      Unsigned hexadecimal integer
   512         *  %o                      Unsigned octal integer
   513         *  %s                      Character string
   514         *  %p                      Pointer
   515         *  %f                      Single precision floating point (float)
   516         *  @p
   517         *
   518         *  Format strings, while very convenient, are a well known source of
   519         *  portability problems: each format specification must precisely match
   520         *  the types of the arguments passed. Underlying "printf" functions use
   521         *  the format string to determine how far to advance through their
   522         *  argument list. For targets where pointer types and integers are the
   523         *  same size there are no problems.  However, suppose a target's pointer
   524         *  type is larger than its integer type. In this case, because integer
   525         *  arguments are widened to be of type `IArg`, a format specification of
   526         *  "%d" causes an underlying `printf()` implementation to read the
   527         *  extended part of the integer argument as part of the next argument(!).
   528         *
   529         *  To get around this problem and still allow the use of "natural"
   530         *  format specifications (e.g., `%d` and `%x` with optional width
   531         *  specifications), `{@link System#aprintf()}` is used which assumes
   532         *  that all arguments have been widened to be of type `IArg`.
   533         *
   534         *  See `{@link System#printf}` for complete details.
   535         *
   536         *  The `%f` format specifier is used to print a single precision float
   537         *  value. Note that `%f` assumes that sizeof(Float) <= sizeof(IArg).
   538         *  Most clients that interpret float values except that they are
   539         *  represented in IEEE 754 floating point format. Therefore, it is
   540         *  recommended that the float values are converted into that format prior
   541         *  to supplying the values to `Log` functions in cases where targets do
   542         *  not generate the float values in IEEE 754 floating point format by
   543         *  default.
   544         *
   545         *  The first argument to a Log_print call is the diags category to be
   546         *  associated with the event.
   547         *
   548         *  It is also possible to associate an event level with the event to
   549         *  enable filtering of events based on event level. Conceptually, it is
   550         *  best to regard the event level as completely separate from the event's
   551         *  diags category; however, the priority value actually occupies a part
   552         *  of the diags mask. For this reason, it is possible to specify an event
   553         *  level by ORing the level with the diags mask. For example, to print
   554         *  an INFO event of LEVEL2, you'd simply write:
   555         *  (Diags.INFO | Diags.LEVEL2)
   556         *
   557         *  Specifying an event level is optional. Log_print calls which do not
   558         *  specify a level will receive the highest priority by default.
   559         *
   560         *  @param(mask)    enable bits and optional detail level for this event
   561         *  @param(fmt)     a `printf` style format string
   562         *  @param(a1)      value for first format conversion character
   563         *  @param(a2)      value for second format conversion character
   564         *  @param(a3)      value for third format conversion character
   565         *  @param(a4)      value for fourth format conversion character
   566         *  @param(a5)      value for fifth format conversion character
   567         *  @param(a6)      value for sixth format conversion character
   568         *
   569         *  @a(Examples)
   570         *  The following example demonstrates a typical usage.
   571         *  @p(code)
   572         *  String  list[];
   573         *  UInt    i;
   574         *
   575         *  Log_print2(Diags_USER2, "list[%u] = %s\n", i, (IArg)list[i]);
   576         *  @p
   577         *  Note that the `IArg` cast above is only necessary for pointer
   578         *  arguments; C's normal parameter conversions implicitly convert
   579         *  integral arguments.
   580         */
   581        @Macro Void print6(Diags.Mask mask, String fmt, IArg a1, IArg a2, IArg a3,
   582            IArg a4, IArg a5, IArg a6);
   583
   584        /*!
   585         *  ======== error0 ========
   586         *  Generate a `Log` "error event" with 0 arguments
   587         *
   588         *  @see #error5
   589         */
   590        @Macro Void error0(String fmt);
   591
   592        /*!
   593         *  ======== error1 ========
   594         *  Generate a `Log` "error event" with 1 argument
   595         *
   596         *  @see #error5
   597         */
   598        @Macro Void error1(String fmt, IArg a1);
   599
   600        /*!
   601         *  ======== error2 ========
   602         *  Generate a `Log` "error event" with 2 arguments
   603         *
   604         *  @see #error5
   605         */
   606        @Macro Void error2(String fmt, IArg a1, IArg a2);
   607
   608        /*!
   609         *  ======== error3 ========
   610         *  Generate a `Log` "error event" with 3 arguments
   611         *
   612         *  @see #error5
   613         */
   614        @Macro Void error3(String fmt, IArg a1, IArg a2, IArg a3);
   615
   616        /*!
   617         *  ======== error4 ========
   618         *  Generate a `Log` "error event" with 4 arguments
   619         *
   620         *  @see #error5
   621         */
   622        @Macro Void error4(String fmt, IArg a1, IArg a2, IArg a3,
   623            IArg a4);
   624
   625        /*!
   626         *  ======== error5 ========
   627         *  Generate a `Log` "error event" with 5 arguments
   628         *
   629         *  The Log_error APIs are intended to allow users to easily log error
   630         *  events in their code. Similar to the Log_print APIs, Log_error does not
   631         *  require that you define an event. You simply pass an informative error
   632         *  string which can optionally be formatted with additional arguments. The
   633         *  error is logged with the predefined event {@link #L_error}.
   634         *
   635         *  Log_error prepends a string to the message which identifies it as an
   636         *  ERROR and specifies the filename and line number of the Log_error call
   637         *  site. A simple example:
   638         *
   639         *  @p(code)
   640         *  Log_error0("Invalid argument");
   641         *  @p
   642         *  This event will be formatted as (assuming that the above call was line
   643         *  35 of "MyCode.c")
   644         *  @p(code)
   645         *  ERROR at "MyCode.c", line 35: Invalid argument
   646         *  @p
   647         *
   648         *  Users may provide additional information in the error event, such as
   649         *  a predefined error code or details of the error. These additional
   650         *  values will be used to format the string passed to Log_error.
   651         *  @see #print6 for information about format strings.
   652         *
   653         *  Log_error does not use a variable length argument list--you must call
   654         *  the appropriate Log_errorX API based on the number of arguments.
   655         *
   656         *  @param(fmt)      a reference to a constant error string / fmt string
   657         *  @param(a1)       value for an additional parameter (e.g. an error code)
   658         *  @param(a2)       value for an additional parameter
   659         *  @param(a3)       value for an additional parameter
   660         *  @param(a4)       value for an additional parameter
   661         *  @param(a5)       value for an additional parameter
   662         *
   663         *  @a(Examples)
   664         *  The following example demonstrates a typical usage.
   665         *  @p(code)
   666         *  Int myArg;
   667         *
   668         *  Log_error1("Invalid argument: %d", myArg);
   669         *  @p
   670         *  The above event is formatted as, for example:
   671         *  @p(code)
   672         *  ERROR: "MyCode.c", line 35: Invalid argument: -1
   673         *  @p
   674         */
   675        @Macro Void error5(String fmt, IArg a1, IArg a2, IArg a3,
   676            IArg a4, IArg a5);
   677
   678        /*!
   679         *  ======== warning0 ========
   680         *  Generate a `Log` "warning event" with 0 arguments
   681         *
   682         *  @see #warning5
   683         */
   684        @Macro Void warning0(String fmt);
   685
   686        /*!
   687         *  ======== warning1 ========
   688         *  Generate a `Log` "warning event" with 1 argument
   689         *
   690         *  @see #warning5
   691         */
   692        @Macro Void warning1(String fmt, IArg a1);
   693
   694        /*!
   695         *  ======== warning2 ========
   696         *  Generate a `Log` "warning event" with 2 arguments
   697         *
   698         *  @see #warning5
   699         */
   700        @Macro Void warning2(String fmt, IArg a1, IArg a2);
   701
   702        /*!
   703         *  ======== warning3 ========
   704         *  Generate a `Log` "warning event" with 3 arguments
   705         *
   706         *  @see #warning5
   707         */
   708        @Macro Void warning3(String fmt, IArg a1, IArg a2, IArg a3);
   709
   710        /*!
   711         *  ======== warning4 ========
   712         *  Generate a `Log` "warning event" with 4 arguments
   713         *
   714         *  @see #warning5
   715         */
   716        @Macro Void warning4(String fmt, IArg a1, IArg a2, IArg a3,
   717            IArg a4);
   718
   719        /*!
   720         *  ======== warning5 ========
   721         *  Generate a `Log` "warning event" with 5 arguments
   722         *
   723         *  The Log_warning APIs provide the same features as the Log_error APIs,
   724         *  but are used to specifically log "warning" events.
   725         *  @see #error5
   726         *
   727         *  The Log_warning APIs are equivalent to the Log_error APIs except that
   728         *  they use the predefined {@link #L_warning} event. Log_warning prepends
   729         *  a string to the message which identifies it as a WARNING and specifies
   730         *  the filename and line number of the Log_warning call site.
   731         *
   732         *  @param(fmt)     reference to a constant warning string / fmt string
   733         *  @param(a1)      value for an additional parameter (e.g. a warning code)
   734         *  @param(a2)      value for an additional parameter
   735         *  @param(a3)      value for an additional parameter
   736         *  @param(a4)      value for an additional parameter
   737         *  @param(a5)      value for an additional parameter
   738         *
   739         *  @a(Examples)
   740         *  The following example demonstrates a typical usage.
   741         *  @p(code)
   742         *  Int myArg;
   743         *
   744         *  Log_warning1("Value may be too high: %d", myArg);
   745         *  @p
   746         *  The above event is formatted as:
   747         *  @p(code)
   748         *  WARNING: "MyCode.c", line 50: Value may be too high: 4096
   749         *  @p
   750         */
   751        @Macro Void warning5(String fmt, IArg a1, IArg a2, IArg a3,
   752            IArg a4, IArg a5);
   753
   754        /*!
   755         *  ======== info0 ========
   756         *  Generate a `Log` "info event" with 0 arguments
   757         *
   758         *  @see #info5
   759         */
   760        @Macro Void info0(String fmt);
   761
   762        /*!
   763         *  ======== info1 ========
   764         *  Generate a `Log` "info event" with 1 argument
   765         *
   766         *  @see #info5
   767         */
   768        @Macro Void info1(String fmt, IArg a1);
   769
   770        /*!
   771         *  ======== info2 ========
   772         *  Generate a `Log` "info event" with 2 arguments
   773         *
   774         *  @see #info5
   775         */
   776        @Macro Void info2(String fmt, IArg a1, IArg a2);
   777
   778        /*!
   779         *  ======== info3 ========
   780         *  Generate a `Log` "info event" with 3 arguments
   781         *
   782         *  @see #info5
   783         */
   784        @Macro Void info3(String fmt, IArg a1, IArg a2, IArg a3);
   785
   786        /*!
   787         *  ======== info4 ========
   788         *  Generate a `Log` "info event" with 4 arguments
   789         *
   790         *  @see #info5
   791         */
   792        @Macro Void info4(String fmt, IArg a1, IArg a2, IArg a3, IArg a4);
   793
   794        /*!
   795         *  ======== info5 ========
   796         *  Generate a `Log` "info event" with 5 arguments
   797         *
   798         *  The Log_info APIs are provided for easily logging generic
   799         *  "informational" events with call site information. They are similar to
   800         *  the Log_print APIs in that they do not require you to define an event--
   801         *  you simply pass an informative printf-style string which can optionally
   802         *  be formatted with additional arguments. The info record is logged with
   803         *  the predefined event '{@link #L_info}'.
   804         *
   805         *  The Log_info APIs log the {@link #L_info} event which uses the 'INFO'
   806         *  diags category. They do not allow you to specify an event priority.
   807         *
   808         *  Log_info prepends the filename and line number of the call site to the
   809         *  message.
   810         *
   811         *  @param(fmt)     reference to a constant event string / fmt string
   812         *  @param(a1)      value for an additional parameter (e.g. an event code)
   813         *  @param(a2)      value for an additional parameter
   814         *  @param(a3)      value for an additional parameter
   815         *  @param(a4)      value for an additional parameter
   816         *  @param(a5)      value for an additional parameter
   817         *
   818         *  @a(Examples)
   819         *  The following example demonstrates a typical usage.
   820         *  @p(code)
   821         *  Int load;
   822         *
   823         *  Log_info1("Current load: %d", load);
   824         *  @p
   825         *  The above event is formatted as, for example:
   826         *  @p(code)
   827         *  "MyCode.c", line 15: Current load: 25
   828         *  @p
   829         */
   830        @Macro Void info5(String fmt, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5);
   831
   832         /*!
   833         *  ======== put0 ========
   834         *  Unconditionally put the specified Log event with 0 arguments
   835         *
   836         *  @see #put4
   837         */
   838        @Macro Void put0(Log.Event evt, Types.ModuleId mid);
   839
   840        /*!
   841         *  ======== put1 ========
   842         *  Unconditionally put the specified Log event and 1 argument
   843         *
   844         *  @see #put4
   845         */
   846        @Macro Void put1(Log.Event evt, Types.ModuleId mid, IArg a1);
   847
   848        /*!
   849         *  ======== put2 ========
   850         *  Unconditionally put the specified Log event and 2 arguments
   851         *
   852         *  @see #put4
   853         */
   854         @Macro Void put2(Log.Event evt, Types.ModuleId mid, IArg a1, IArg a2);
   855
   856        /*!
   857         *  ======== put4 ========
   858         *  Unconditionally put the specified Log event
   859         *
   860         *  This method unconditionally puts the specified `{@link Event}`
   861         *  `evt` into the log. The `{@link Types#ModuleId}` `mid` should be the
   862         *  module ID of the module which is putting the event.
   863         *
   864         *  @param(evt)     the Log event to put into the log
   865         *  @param(mid)     module ID of the module putting the event
   866         *  @param(a1)      value for first format conversion character
   867         *  @param(a2)      value for second format conversion character
   868         *  @param(a3)      value for third format conversion character
   869         *  @param(a4)      value for fourth format conversion character
   870         *
   871         *  @see #put8
   872         */
   873        @Macro Void put4(Log.Event evt, Types.ModuleId mid, IArg a1, IArg a2,
   874                         IArg a3, IArg a4);
   875
   876        /*!
   877         *  ======== put8 ========
   878         *  Unconditionally put the specified Log event and 8 arguments
   879         *
   880         *  @see #put4
   881         */
   882        @Macro Void put8(Log.Event evt, Types.ModuleId mid, IArg a1, IArg a2,
   883                         IArg a3, IArg a4, IArg a5, IArg a6, IArg a7, IArg a8);
   884
   885        /*!
   886         *  ======== write0 ========
   887         *  Generate a `Log` event with 0 arguments
   888         *
   889         *  @see #write8
   890         */
   891        @Macro Void write0(Event evt);
   892
   893        /*!
   894         *  ======== write1 ========
   895         *  Generate a `Log` event with 1 argument
   896         *
   897         *  @see #write8
   898         */
   899        @Macro Void write1(Event evt, IArg a1);
   900
   901        /*!
   902         *  ======== write2 ========
   903         *  Generate a `Log` event with 2 arguments
   904         *
   905         *  @see #write8
   906         */
   907        @Macro Void write2(Event evt, IArg a1, IArg a2);
   908
   909        /*!
   910         *  ======== write3 ========
   911         *  Generate a `Log` event with 3 arguments
   912         *
   913         *  @see #write8
   914         */
   915        @Macro Void write3(Event evt, IArg a1, IArg a2, IArg a3);
   916
   917        /*!
   918         *  ======== write4 ========
   919         *  Generate a `Log` event with 4 arguments
   920         *
   921         *  @see #write8
   922         */
   923        @Macro Void write4(Event evt, IArg a1, IArg a2, IArg a3, IArg a4);
   924
   925        /*!
   926         *  ======== write5 ========
   927         *  Generate a `Log` event with 5 arguments
   928         *
   929         *  @see #write8
   930         */
   931        @Macro Void write5(Event evt, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5);
   932
   933        /*!
   934         *  ======== write6 ========
   935         *  Generate a `Log` event with 6 arguments
   936         *
   937         *  @see #write8
   938         */
   939        @Macro Void write6(Event evt, IArg a1, IArg a2, IArg a3, IArg a4,
   940                            IArg a5, IArg a6);
   941
   942        /*!
   943         *  ======== write7 ========
   944         *  Generate a `Log` event with 7 arguments
   945         *
   946         *  @see #write8
   947         */
   948        @Macro Void write7(Event evt, IArg a1, IArg a2, IArg a3, IArg a4,
   949                            IArg a5, IArg a6, IArg a7);
   950
   951        /*!
   952         *  ======== write8 ========
   953         *  Generate a `Log` event with 8 arguments
   954         *
   955         *  If the mask in the specified `Log` event has any bit set which is
   956         *  also set in the current module's diagnostics mask, then this call to
   957         *  write will "raise" the given `Log` event.
   958         *
   959         *  @param(evt)     the `Log` event to write
   960         *  @param(a1)      value for first format conversion character
   961         *  @param(a2)      value for second format conversion character
   962         *  @param(a3)      value for third format conversion character
   963         *  @param(a4)      value for fourth format conversion character
   964         *  @param(a5)      value for fifth format conversion character
   965         *  @param(a6)      value for sixth format conversion character
   966         *  @param(a7)      value for seventh format conversion character
   967         *  @param(a8)      value for eighth format conversion character
   968         */
   969        @Macro Void write8(Event evt, IArg a1, IArg a2, IArg a3, IArg a4,
   970                            IArg a5, IArg a6, IArg a7, IArg a8);
   971
   972        /*!
   973         *  ======== doPrint ========
   974         *  Render an event as text via `{@link System#printf System_printf}`
   975         *
   976         *  This method is not gated and may make more than one call to
   977         *  `System_printf`.  This utility method is typically used within the
   978         *  implementation of a logger which initializes
   979         *  `{@link #EventRec Log_EventRec}` structures based on `Log` events
   980         *  produced by the application.
   981         *
   982         *  @param(evRec)   a non`NULL` pointer to an initialized `Log_EventRec`
   983         *                  structure to be formated via
   984         *                  `{@link System#printf System_printf}`.
   985         */
   986        Void doPrint(EventRec *evRec);
   987
   988        /*!
   989         *  @_nodoc
   990         *  ======== lookupEventMessage ========
   991         *  Returns the format string for the event with the given id.
   992         */
   993        function lookupEventMessage(eventId);
   994
   995        /*!
   996         *  @_nodoc
   997         *  ======== getTargetArgSize ========
   998         *  Returns the target size of a record argument in bytes (not MAUs).
   999         */
  1000        function getTargetArgSize();
  1001
  1002        /*!
  1003         *  @_nodoc
  1004         *  ======== lookupEventName ========
  1005         */
  1006        function lookupEventName(eventId);
  1007
  1008        /*!
  1009         *  @_nodoc
  1010         *  ======== lookupModuleName ========
  1011         */
  1012        function lookupModuleName(modId);
  1013
  1014        /*!
  1015         *  @_nodoc
  1016         *  ======== getTargetEventRecSize ========
  1017         *  Returns the record size in bytes (not MAUs).
  1018         */
  1019        function getTargetEventRecSize();
  1020
  1021    internal:
  1022
  1023        /*
  1024         *  ======== idToInfo ========
  1025         *  Map event ID strings into a string of the form <eventName>::<eventMsg>
  1026         */
  1027        metaonly config String idToInfo[string] = [];
  1028
  1029    }
  1030    /*
  1031     *  @(#) xdc.runtime; 2, 1, 0,296; 11-16-2010 11:20:24; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
  1032     */
  1033


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         *  This data is 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        /*! Error raised if get or setFilterLevel receive a bad level value */
   159        config Error.Id E_badLevel =
   160            {msg: "E_badLevel: Bad filter level value: %d"};
   161
   162        /*!
   163         *  ======== TimestampProxy ========
   164         *  User supplied time-stamp proxy
   165         *
   166         *  This proxy allows `LoggerBuf` to use a timestamp server different
   167         *  from the server used by `{@link xdc.runtime.Timestamp}`. However, if
   168         *  not supplied by a user, this proxy defaults to whichever timestamp
   169         *  server is used by `Timestamp`.
   170         */
   171        proxy TimestampProxy inherits ITimestampClient;
   172
   173        /*!
   174         *  ======== enableFlush ========
   175         *  Flush all logs at system exit
   176         */
   177        config Bool enableFlush = false;
   178
   179        /*!
   180         *  ======== statusLogger ========
   181         *  Route all 'STATUS' (error and warning) events to this logger.
   182         *
   183         *  If a statusLogger is specified, all LoggerBuf instances will check to
   184         *  determine if any of the events they receive are errors or warnings (if
   185         *  their diags mask includes the STATUS category), and will log these
   186         *  events to the statusLogger.
   187         *
   188         *  Error events are infrequent, but it's generally critical that they be
   189         *  seen. In a typical system, non-error events easily outnumber any error
   190         *  events, and the logger is likely to wrap, overwriting any error events.
   191         *  To protect these events from being overwritten and lost, they can be
   192         *  sent to their own separate logger to preserve them.
   193         *
   194         *  The default value is null, indicating that the STATUS events will just
   195         *  be logged by the logger they were sent to.
   196         */
   197        config ILogger.Handle statusLogger = null;
   198
   199        /*!
   200         *  ======== level1Mask ========
   201         *  Mask of diags categories whose initial filtering level is Diags.LEVEL1
   202         *
   203         *  See '{@link #level4Mask}' for details.
   204         */
   205        config Diags.Mask level1Mask = 0;
   206
   207        /*!
   208         *  ======== level2Mask ========
   209         *  Mask of diags categories whose initial filtering level is Diags.LEVEL2
   210         *
   211         *  See '{@link #level4Mask}' for details.
   212         */
   213        config Diags.Mask level2Mask = 0;
   214
   215        /*!
   216         *  ======== level3Mask ========
   217         *  Mask of diags categories whose initial filtering level is Diags.LEVEL3
   218         *
   219         *  See '{@link #level4Mask}' for details.
   220         */
   221        config Diags.Mask level3Mask = 0;
   222
   223        /*!
   224         *  ======== level4Mask ========
   225         *  Mask of diags categories whose initial filtering level is Diags.LEVEL4
   226         *
   227         *  If 'filterByLevel' is true, then all LoggerBuf instances will filter
   228         *  incoming events based on their event level.
   229         *
   230         *  The LoggerBuf module allows for specifying a different filter level for
   231         *  every Diags bit. These filtering levels are module wide; LoggerBuf does
   232         *  not support specifying the levels on a per-instance basis.
   233         *
   234         *  The setFilterLevel API can be used to change the filtering levels at
   235         *  runtime.
   236         *
   237         *  The default filtering levels are assigned using the 'level1Mask' -
   238         *  'level4Mask' config parameters. These are used to specify, for each of
   239         *  the four event levels, the set of bits which should filter at that
   240         *  level by default.
   241         *
   242         *  The default filtering configuration sets the filter level to
   243         *  Diags.LEVEL4 for all logging-related diags bits so that all events are
   244         *  logged by default.
   245         */
   246        config Diags.Mask level4Mask = Diags.ALL_LOGGING;
   247
   248        /*!
   249         *  ======== flushAll ========
   250         *  Flush logs of all instances of `LoggerBuf` which set exitFlush to true.
   251         *
   252         *  The user is responsible for making sure that no `LoggerBuf` instances
   253         *  are created or deleted while in this API, by using an appropriate gate.
   254         */
   255        Void flushAll();
   256
   257        /*!
   258         *  ======== flushAllInternal ========
   259         *  @_nodoc
   260         */
   261        Void flushAllInternal(Int stat);
   262
   263        /*!
   264         * @_nodoc
   265         *  ======== initDecoder ========
   266         *  Initialize the LoggerBufDecoder for use in the LoggerBuf 'Records' ROV
   267         *  view.
   268         */
   269        function initDecoder();
   270
   271    instance:
   272        /*!
   273         *  ======== create ========
   274         *  Create a `LoggerBuf` logger
   275         *
   276         *  @see LoggerBuf#Params
   277         */
   278        create();
   279
   280        /*!
   281         *  ======== numEntries ========
   282         *  Number of entries in buffer
   283         *
   284         *  Each entry is large enough to store one `Log` event containing up to
   285         *  4 optional arguments.  Events containing more than 4 arguments (such
   286         *  as those from `{@link Log#write5}`) use 2 entries.
   287         *
   288         *  `numEntries` must be a power of 2.
   289         */
   290        config Int numEntries = 64;
   291
   292        /*!
   293         *  ======== bufType ========
   294         *  Log buffer type
   295         */
   296        config BufType bufType = BufType_CIRCULAR;
   297
   298        /*!
   299         *  ======== exitFlush ========
   300         *  Flush log at system exit
   301         *
   302         *  Only used when module parameter `{@link #enableFlush}` is `true`.
   303         */
   304        config Bool exitFlush = false;
   305
   306        /*!
   307         *  ======== bufSection ========
   308         *  Section name for the buffer managed by the static instance.
   309         *
   310         *  The default section is the 'dataSection' in the platform.
   311         */
   312        metaonly config String bufSection = null;
   313
   314        /*!
   315         *  ======== bufHeap ========
   316         *  The heap that contains the `Log` buffer for dynamic instances.
   317         *
   318         *  The default value `null` means the buffer will be allocated from
   319         *  the `{@link Memory#defaultHeapInstance}` heap.
   320         */
   321        config IHeap.Handle bufHeap = null;
   322
   323        /*!
   324         *  ======== reset ========
   325         *  Reset a log to empty state and enable it
   326         *
   327         *  @a(WARNING)  This method is not synchronized with other instance
   328         *  methods and, as a result, it must never be called when there is a
   329         *  chance that another instance method is currently in operation or
   330         *  when another method on this instance may preempt this call.
   331         */
   332        Void reset();
   333
   334        /*!
   335         *  ======== flush ========
   336         *  Read, clear, and output the contents of the log
   337         *
   338         *  This method reads, clears, and "prints" each `Log` event (via
   339         *  `{@link System#printf}`) in the log.
   340         */
   341        Void flush();
   342
   343        /*!
   344         *  ======== getNextEntry ========
   345         *  Fills the passed `{@link Log#EventRec}` with the next entry in the log.
   346         *
   347         *  This function is used to read and clear `Log` events from the
   348         *  buffer maintained by the `LoggerBuf` instance. The `Log` event can
   349         *  then be transmitted and displayed on a host.
   350         *
   351         *  A read pointer is maintained in the `LoggerBuf` instance and
   352         *  points to the next record to read.  Entries are not necessarily
   353         *  returned in chronological order, since buffers of type
   354         *  `{@link #BufType_CIRCULAR}` can wrap.
   355         *
   356         *  @param(evtRec) pointer to a supplied `EventRec` object where the next
   357         *                 entry in the log is copied to
   358         *
   359         *  @a(returns)
   360         *  This function reports the number of entries actually read. The only
   361         *  values that can be returned are:
   362         *  @p(blist)
   363         *      - 0   no more entries to read
   364         *      - 1 or 2 read a complete entry written by `write4` or `write8`
   365         *      - -1  cleared an incomplete/overwritten entry, more entries to read
   366         */
   367        Int getNextEntry(Log.EventRec *evtRec);
   368
   369    internal:
   370
   371        Bool filterOutEvent(Diags.Mask mask);
   372
   373        const Int8 FULL = -1;
   374        const Int8 WRAP = 0;
   375
   376        const Int8 NEXT = 1;
   377
   378        struct Entry {
   379            Types.Timestamp64 tstamp;
   380            Bits32 serial;
   381            Types.Event evt;
   382            IArg arg1;
   383            IArg arg2;
   384            IArg arg3;
   385            IArg arg4;
   386        };
   387
   388        struct Module_State {
   389            Diags.Mask level1;
   390            Diags.Mask level2;
   391            Diags.Mask level3;
   392        };
   393
   394        struct Instance_State {
   395            IHeap.Handle bufHeap;
   396            Entry entryArr[];
   397            Entry *curEntry;
   398            Entry *endEntry;
   399            Entry *readEntry;
   400            Bits32 serial;
   401            Int16 numEntries;
   402            Int8 advance;
   403            Bool enabled;
   404            Bool flush;
   405        };
   406
   407    }
   408    /*
   409     *  @(#) xdc.runtime; 2, 1, 0,296; 11-16-2010 11:20:24; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   410     */
   411


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,296; 11-16-2010 11:20:24; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    83     */
    84


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,296; 11-16-2010 11:20:24; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    57     */
    58


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 executed via `staticPlace()` at the
    22     *  config time or through `Memory_alloc()` (or `Memory_calloc()` or
    23     *  `Memory_valloc()`) at run-time.
    24     *
    25     *  The actual memory management is performed by modules that
    26     *  implement `{@link xdc.runtime.IHeap}`.  Heap instances are created
    27     *  statically or dynamically via the heap specific create functions and
    28     *  these instances are then passed as input parameters to the `Memory`
    29     *  calls with `{@link xdc.runtime.IHeap#Handle}` parameters.
    30     */
    31    module Memory {
    32
    33        /*!
    34         *  ======== Q_BLOCKING ========
    35         *  Blocking quality
    36         *
    37         *  `{@link xdc.runtime.IHeap}`s with this "quality" may cause the
    38         *  calling thread to block; i.e., suspend execution until another thread
    39         *  leaves the gate.
    40         */
    41        const Int Q_BLOCKING = 1;
    42
    43        /*!
    44         *  ======== Size ========
    45         *  Type to be used to specify heap buffer sizes
    46         */
    47        typedef UArg Size;
    48
    49        /*!
    50         *  ======== Stats ========
    51         *  Memory heap statistics
    52         *
    53         *  This structure defines generic statistics that must be supplied
    54         *  by each module that implements the `{@link xdc.runtime.IHeap}`
    55         *  interface.
    56         *
    57         *  @field(totalSize)         total size (in MADUs) of heap.
    58         *  @field(totalFreeSize)     current size (in MADUs) of free memory in
    59         *                            the heap
    60         *  @field(largestFreeSize)   current largest contiguous free block
    61         *                            (in MADUs)
    62         */
    63        struct Stats {
    64            Size totalSize;
    65            Size totalFreeSize;
    66            Size largestFreeSize;
    67         }
    68
    69        /*! @_nodoc */
    70        @XmlDtd
    71        metaonly struct Module_View {
    72            SizeT maxDefaultTypeAlignment;
    73        };
    74
    75        /*!
    76         *  ======== defaultHeapInstance ========
    77         *  The default heap.
    78         *
    79         *  If no heap is specified in the `Memory` module's methods (i.e.
    80         *  heap == `NULL`) `defaultHeapInstance` is used. If
    81         *  `defaultHeapInstance` is not set (or set to `null`), a
    82         *  `{@link xdc.runtime.HeapStd}` heap instance is created and assigned
    83         *  to this configuration parameter. The size of the heap is determined
    84         *  by the `{@link #defaultHeapSize}` parameter.
    85         *
    86         *  By default, all modules are configured with a `null` instance heap.
    87         *  Instances created by modules with a `null` instance heap are
    88         *  allocated from the `defaultHeapInstance` heap.
    89         */
    90        config IHeap.Handle defaultHeapInstance;
    91
    92        /*!
    93         *  ======== defaultHeapSize ========
    94         *  The size (in target MADUs) of the `defaultHeapInstance`.
    95         *
    96         *  This parameters is used when the `{@link #defaultHeapInstance}`
    97         *  is not configured.
    98         */
    99        metaonly config int defaultHeapSize = 0x1000;
   100
   101        /*!
   102         *  ======== alloc ========
   103         *  Allocate a block of memory from a heap.
   104         *
   105         *  @param(heap)    heap from which the memory is allocated
   106         *
   107         *                  The `heap` is created by a module that implements
   108         *                  the `{@link xdc.runtime.IHeap}` interface.
   109         *                  If `heap` is `NULL`, the
   110         *                  `{@link #defaultHeapInstance}` is used.
   111         *
   112         *  @param(size)    requested memory block size (in MADUs)
   113         *  @param(align)   alignment (in MADUs) of the block of memory
   114         *
   115         *                  A value of 0 denotes maximum default type alignment.
   116         *
   117         *  @param(eb)      pointer to error block
   118         *
   119         *  @a(returns)
   120         *  If the allocation was successful, `Memory_alloc()` returns non-`NULL`
   121         *  pointer to the allocated and uninitialized block; otherwise it returns
   122         *  `NULL` and the error block will indicate the cause of the error.
   123         */
   124        Ptr alloc(IHeap.Handle heap, SizeT size, SizeT align, Error.Block *eb);
   125
   126        /*!
   127         *  ======== calloc ========
   128         *  Allocate a block of memory from a heap and zero out the contents.
   129         *
   130         *  @param(heap)    heap from which the memory is allocated
   131         *
   132         *                  The `heap` is created by a module that implements
   133         *                  the `{@link xdc.runtime.IHeap}` interface.
   134         *                  If `heap` is `NULL`, the
   135         *                  `{@link #defaultHeapInstance}` is used.
   136         *
   137         *  @param(size)    requested memory block size (in MADUs)
   138         *  @param(align)   alignment (in MADUs) of the block of memory
   139         *
   140         *                  A value of 0 denotes maximum default type alignment.
   141         *
   142         *  @param(eb)      pointer to error block
   143         *
   144         *  @a(returns)
   145         *  If the allocation was successful, `Memory_calloc()` returns non-`NULL`
   146         *  pointer to the allocated and initialized block; otherwise it returns
   147         *  `NULL` and the error block will indicate the cause of the error.
   148         */
   149        Ptr calloc(IHeap.Handle heap, SizeT size, SizeT align, Error.Block *eb);
   150
   151        /*!
   152         *  ======== free ========
   153         *  Frees the space if the heap manager offers such functionality.
   154         *
   155         *  @param(heap)   heap that the block of memory will be freed back to.
   156         *
   157         *                 The `heap` is created by a module that implements
   158         *                 the `{@link xdc.runtime.IHeap}` interface.
   159         *                 If `heap` is `NULL`, the
   160         *                 `{@link #defaultHeapInstance}` is used.
   161         *
   162         *  @param(block)  block of memory to free back to the heap
   163         *  @param(size)   size (in MADUs) of the block of memory to free.
   164         *
   165         */
   166        Void free(IHeap.Handle heap, Ptr block, SizeT size);
   167
   168        /*!
   169         *  ======== getStats ========
   170         *  Obtain statistics from a heap.
   171         *
   172         *  @param(heap)    the heap to get the statistics from
   173         *
   174         *                  The `heap` is created by a module that implements
   175         *                  the `{@link xdc.runtime.IHeap}` interface.
   176         *                  If `heap` is `NULL`, the
   177         *                  `{@link #defaultHeapInstance}` is used.
   178         *
   179         *  @param(stats)   the output buffer for the returned statistics
   180         */
   181        Void getStats(IHeap.Handle heap, Stats *stats);
   182
   183        /*!
   184         *  ======== query ========
   185         *  Test for a particular `{@link xdc.runtime.IHeap}` quality.
   186         *
   187         *  There currently is only one quality, namely `{@link #Q_BLOCKING}`.
   188         *
   189         *  @param(heap)    the heap to query
   190         *
   191         *                  The `heap` is created by a module that implements
   192         *                  the `{@link xdc.runtime.IHeap}` interface.  If `heap`
   193         *                  is `NULL`, the `{@link #defaultHeapInstance}`
   194         *                  is queried
   195         *
   196         *  @param(qual)    quality to test
   197         *
   198         *                   For example: `{@link #Q_BLOCKING}`.
   199         *
   200         *  @a(returns)
   201         *  If `heap` has the `qual` quality, this method returns `TRUE`,
   202         *  otherwise it returns `FALSE`.
   203         */
   204        Bool query(IHeap.Handle heap, Int qual);
   205
   206        /*!
   207         *  ======== getMaxDefaultTypeAlignMeta ========
   208         *  Return the largest alignment required by the target
   209         *
   210         *  This method scans the standard base types supported by the current
   211         *  configuration's target
   212         *  (`{@link xdc.cfg.Program#build Program.build.target}`) and returns
   213         *  the largest alignment required for these types.
   214         *
   215         *  @a(returns)     Returns target-specific alignment in MADUs.
   216         *
   217         *  @see xdc.bld.ITarget#stdTypes
   218         */
   219        metaonly SizeT getMaxDefaultTypeAlignMeta();
   220
   221        /*!
   222         *  ======== getMaxDefaultTypeAlign ========
   223         *  Return the largest alignment required by the target
   224         *
   225         *  `getMaxDefaultTypeAlign` returns the largest alignment
   226         *   required for all the standard base types supported by the current
   227         *  configuration's target
   228         *  (`{@link xdc.cfg.Program#build Program.build.target}`)
   229         *
   230         *  This is the runtime version of the
   231         *  `{@link #getMaxDefaultTypeAlignMeta}` function.
   232         *
   233         *  @a(returns)     Returns target-specific alignment in MADUs.
   234         *
   235         *  @see #getMaxDefaultTypeAlignMeta
   236         */
   237        SizeT getMaxDefaultTypeAlign();
   238
   239        /*!
   240         *  ======== staticPlace ========
   241         *  Statically places buffers.
   242         *
   243         *  This function places the object specified by `obj` into the specified
   244         *  memory section. The section string is a target-specific name that is
   245         *  interpreted by the underlying target tool-chain.  In the case of TI
   246         *  tool-chains, this section can be a subsection (e.g.
   247         *  ".data:someSection").
   248         *
   249         *  The amount of memory that is created for `obj` is dependent on its
   250         *  size and the value of the property `length`. The length (number
   251         *  of elements in an array) is set before the `staticPlace()` is called.
   252         *  For example, setting `obj.length = 5;` before calling `staticPlace()`,
   253         *  will create `5 * sizeof (obj)` MADUs of memory.
   254         *
   255         *  If 0 is specified for the alignment, the allocated buffer is aligned
   256         *  as determined by the target toolchain. For instance, if `obj` is an
   257         *  array of structs that have only 16-bit integers, the alignment would
   258         *  be on a 16-bit boundary.
   259         *
   260         *  All non-zero alignments must be a power of 2. Not all targets support
   261         *  directives that allow one to specify alignment. The readonly config
   262         *  parameter
   263         *  `{@link xdc.cfg.Program#build Program.build.target.alignDirectiveSupported}`
   264         *  can be used to determine if the target supports alignment directives.
   265         *
   266         *  @param(obj)     object to place
   267         *
   268         *      This object always has the `length` property; `obj.length`
   269         *      determines the size of the allocated buffer for `obj`
   270         *
   271         *  @param(align)   the alignment required by `obj`
   272         *
   273         *  @param(section) section name to contain `obj`
   274         *
   275         *      This parameter names the section where `obj` will be placed.  If
   276         *      this parameter is `null`, no explicit placement is done.
   277         *
   278         *  @a(returns)
   279         *  Returns `false` if the alignment request cannot be honored. The `obj`
   280         *  is still placed regardless of the return code.
   281         */
   282        metaonly Bool staticPlace(any obj, SizeT align, String section);
   283
   284        /*!
   285         *  ======== valloc ========
   286         *  Allocate a block of memory from a heap and initialize the contents
   287         *  to the value specified.
   288         *
   289         *  @param(heap)    heap from which the memory is allocated
   290         *
   291         *                  The `heap` is created by a module that implements
   292         *                  the `{@link xdc.runtime.IHeap}` interface.
   293         *                  If `heap` is `NULL`, the
   294         *                  `{@link #defaultHeapInstance}` is used.
   295         *
   296         *  @param(size)    requested memory block size (in MADUs)
   297         *  @param(align)   alignment (in MADUs) of the block of memory
   298         *
   299         *                  A value of 0 denotes maximum default type alignment.
   300         *
   301         *  @param(value)   value to initialize the contents of the block
   302         *  @param(eb)      pointer to error block
   303         *
   304         *  @a(returns)
   305         *  If the allocation was successful, `Memory_valloc()` returns non-`NULL`
   306         *  pointer to the allocated and initialized block; otherwise it returns
   307         *  `NULL` and the error block will indicate the cause of the error.
   308         */
   309        Ptr valloc(IHeap.Handle heap, SizeT size, SizeT align, Char value,
   310                   Error.Block *eb);
   311
   312    internal:
   313
   314        proxy HeapProxy inherits IHeap;
   315
   316        struct Module_State {
   317            SizeT maxDefaultTypeAlign;
   318        }
   319    }
   320    /*
   321     *  @(#) xdc.runtime; 2, 1, 0,296; 11-16-2010 11:20:24; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   322     */
   323


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}` and `{@link LoggerSys}` are simple alternative
    52     *  implementations of the `{@link ILogger}` event "handler" interface. You
    53     *  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 LoggerSys}` - A logger using printf for log events.
    65     *  - `{@link Types}` - Define diagnostics configuration parameters.
    66     *  - `{@link Timestamp}` - Simple timestamp service
    67     *  @p
    68     *
    69     *  @a(Memory Management)
    70     *  The memory management modules include the following:
    71     *  @p(blist)
    72     *  - `{@link Memory}` -  module used by clients to allocate and free memory
    73     *  - `{@link HeapMin}` - Deterministic implementation that minimizes code
    74     *                        size footprint by not supporting reuse of allocated
    75     *                        memory.
    76      *  - `{@link HeapStd}` - Implementation that builds atop ANSI C `malloc()`
    77     *                        and `free()`
    78     *  @p
    79     *
    80     *  @a(Concurrency Support)
    81     *  The concurency support modules include the following:
    82     *  @p(blist)
    83     *  - `{@link Gate}` -  module used by clients to serialize access to
    84     *                      shared data structures
    85     *  - `{@link GateNull}` - "null" implementation for applications that
    86     *                      don't need serialization; e.g., single threaded
    87     *                      applications
    88     *  @p
    89     *
    90     *  @a(Startup and Shutdown)
    91     *  The system startup and shutdown support modules include:
    92     *  @p(blist)
    93     *  - `{@link Reset}`   - Manages platform-specific startup initialization
    94     *                        before `main()` is called
    95     *  - `{@link Startup}` - Manages "portable" startup initialization before
    96     *                        `main()` is called
    97     *  - `{@link System}`  - In addition to other basic services (such as
    98     *                        `printf`), this module provides an `atexit`
    99     *                        capability that allows modules to cleanly exit
   100     *                        during normal application terminiation.
   101     *  - `{@link SysMin}`  - Minimal implementation of `{@link ISystemSupport}`,
   102     *                        required by the `System` module, suitable for
   103     *                        deeply embedded applications.
   104     *  - `{@link SysStd}`  - Implementation of `{@link ISystemSupport}`
   105     *                        that relies on ANSI C Standard I/O Library
   106     *                        functions.
   107     *  @p
   108     */
   109    package xdc.runtime [2,1,0] {
   110        interface IModule, IInstance;
   111        interface IHeap, ILogger, IFilterLogger;
   112        interface ISystemSupport;
   113        interface IGateProvider;
   114        interface ITimestampClient, ITimestampProvider;
   115        module Assert;
   116        module Core;
   117        module Defaults;
   118        module Diags;
   119        module Error;
   120        module Gate, GateNull;
   121        module Log, LoggerBuf, LoggerSys;
   122        module Main;
   123        module Memory, HeapMin, HeapStd;
   124        module Registry;
   125        module Rta;
   126        module Startup, Reset;
   127        module System, SysStd, SysMin;
   128        module Text;
   129        module Timestamp, TimestampNull, TimestampStd;
   130        module Types;
   131    }
   132    /*
   133     *  @(#) xdc.runtime; 2, 1, 0,296; 11-16-2010 11:20:24; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   134     */
   135


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         *  ======== Result ========
    92         *  Status codes
    93         */
    94        enum Result {
    95            SUCCESS,        /*! The module was added successfully */
    96            ALLOC_FAILED,   /*! reserved */
    97            ALREADY_ADDED,  /*! The module has already been added  or another
    98                             *  module with the same name is present
    99                             */
   100            ALL_IDS_USED    /*! No more module ids available for new modules */
   101        };
   102
   103        /*!
   104         *  ======== RegDesc ========
   105         *  Registry module descriptor
   106         */
   107        typedef Types.RegDesc Desc;
   108
   109        /*!
   110         *  ======== addModule ========
   111         *  Add a runtime module to the registry with the specified name
   112         *
   113         *  The `desc` parameter and the `modName` string provided must both be
   114         *  permanent since the `Registry` will maintain references to both of
   115         *  these.
   116         *
   117         *  @param(desc)    non-`NULL` pointer to a `{#Desc Registry_Desc}`
   118         *                  structure.
   119         *  @param(modName) non-`NULL` string name of the module being registered.
   120         *
   121         *  @a(returns)
   122         *  `Registry_addModule` returns one of the following
   123         *  `{@link #Result Result}` status values indicating success or the
   124         *  cause of failure:
   125         *  @p(blist)
   126         *  - `{@link #SUCCESS SUCCESS}`
   127         *  - `{@link #ALREADY_ADDED ALREADY_ADDED}`
   128         *  - `{@link #ALL_IDS_USED ALL_IDS_USED}`  There are a total of 16,384 - 1
   129         *    module ids available for use by `Registry`.
   130         *  @p
   131         */
   132        Result addModule(Desc *desc, String modName);
   133
   134        /*!
   135         *  ======== findByName ========
   136         *  Find the registered module with the given name
   137         *
   138         *  @param(modName) non-`NULL` string name of a registered module
   139         *
   140         *  @a(returns)
   141         *  If the name `modName` is registered via
   142         *  `{@link #addModule Registry_addModule()}`, this function
   143         *  returns the pointer to the registered `Registry_Desc` structure;
   144         *  otherwise it returns `NULL`.
   145         */
   146        Desc *findByName(String modName);
   147
   148        /*!
   149         *  ======== findByNamePattern ========
   150         *  @_nodoc
   151         *  Find all registered modules matching the specified pattern.
   152         *
   153         *  This API is intended for use by Diags_setMask.
   154         *
   155         *  The name pattern can be an exact module name or it can contain '%'
   156         *  as a wildcard. The `len` parameter is the string length of the pattern.
   157         *
   158         *  This function returns one module at a time, but can be called
   159         *  repeatedly to find all modules matching the pattern. On the first
   160         *  call, pass `NULL` as the `prev` parameter. In all following calls,
   161         *  pass the last returned descriptor. This function returns `NULL` when
   162         *  it can't find any more modules matching the name pattern.
   163         */
   164        Desc *findByNamePattern(String namePat, Int len, Desc *prev);
   165
   166        /*!
   167         *  ======== findById ========
   168         *  Find registered module's descriptor from it's module ID
   169         *
   170         *  @param(mid) any module id
   171         *
   172         *  @a(returns)
   173         *  If the ID `mid` is registered via
   174         *  `{@link #addModule Registry_addModule()}`, this function
   175         *  returns the pointer to the registered `Registry_Desc` structure;
   176         *  otherwise it returns `NULL`.
   177         */
   178        Desc *findById(Types.ModuleId mid);
   179
   180        /*!
   181         *  ======== getMask ========
   182         *  Get the specified module's diagnostic mask
   183         *
   184         *  @param(modName) non-`NULL` string name of a registered module
   185         *  @param(mask)    non-`NULL` pointer to a mask to be initialized
   186         *                  to the the current state of the diagnostics mask
   187         *                  associated with `modName`
   188         *
   189         *  @a(returns)
   190         *  The function returns `TRUE` if `name` identifies a registered module;
   191         *  otherwise, it return `FALSE`.
   192         */
   193        Bool getMask(String name, Types.DiagsMask *mask);
   194
   195        /*!
   196         *  ======== isMember ========
   197         *  Determines if the specified module ID belongs to a registered module
   198         *
   199         *  @param(mid) any module id
   200         *
   201         *  @a(returns)
   202         *  This function returns `TRUE` if and only if the specified module id
   203         *  is a valid `Registry` module id. It does not search registered
   204         *  module ids, but simply checks if the id is within the range of valid
   205         *  `Registry` module ids.
   206         */
   207        Bool isMember(Types.ModuleId mid);
   208
   209        /*!
   210         *  ======== getNextModule ========
   211         *  Scan the current list of registered modules
   212         *
   213         *  This function used to scan the list of all `Registry_Desc` structures
   214         *  currently being managed by the `Registry` module.
   215         *
   216         *  @param(desc)    optionally `NULL` pointer to a `Registry_Desc`
   217         *                  structure.  If `desc` is `NULL`, a pointer to the
   218         *                  first structure is returned.  If `desc` is non-`NULL`
   219         *                  and equal to a previous return value of this function,
   220         *                  a pointer to the "next" `Registry_Desc` structure
   221         *                  is returned.
   222         *
   223         *  @a(returns)
   224         *  This function returns a non-`NULL` pointer to one of the
   225         *  `Registry_Desc` structures added via `Registry_Desc` structures or
   226         *  `NULL` in the case that
   227         *  @p(blist)
   228         *      - there are no more module's in the list after `desc`, or
   229         *      - there are no modules registered
   230         *  @p
   231         */
   232        Desc *getNextModule(Desc *desc);
   233
   234        /*!
   235         *  ======== getModuleName ========
   236         *  Get the module name associated with a specified module descriptor
   237         *
   238         *  @param(desc)    non-`NULL` pointer to a `{#Desc Registry_Desc}`
   239         *                  structure.
   240         *
   241         *  @a(returns)
   242         *  If the specified module descriptor has been initialized via a
   243         *  successful call to `{@link #addModule Registry_addModule()}`, this
   244         *  function returns the module name passed `Registry_addModule()`;
   245         *  otherwise, its return value is indeterminate.
   246         */
   247        String getModuleName(Desc *desc);
   248
   249        /*!
   250         *  ======== getModuleId ========
   251         *  Get the module id associated with a specified module descriptor
   252         *
   253         *  @param(desc)    non-`NULL` pointer to a `{#Desc Registry_Desc}`
   254         *                  structure.
   255         *
   256         *  @a(returns)
   257         *  If the specified module descriptor has been initialized via a
   258         *  successful call to `{@link #addModule Registry_addModule()}`, this
   259         *  function returns the module id assigned by `Registry_addModule()`;
   260         *  otherwise, its return value is indeterminate.
   261         */
   262        Types.ModuleId getModuleId(Desc *desc);
   263
   264    internal:
   265
   266        Desc *findByNameInList(String name, Desc *listHead);
   267        Void newModule(Desc *desc, String modName);
   268        Bool matchPattern(String pattern, Int len, String modName);
   269
   270        /*
   271         *  ======== Module_State ========
   272         */
   273        struct Module_State {
   274            Desc            *listHead;
   275            Types.ModuleId  curId;
   276        }
   277    }
   278    /*
   279     *  @(#) xdc.runtime; 2, 1, 0,296; 11-16-2010 11:20:24; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   280     */
   281


module xdc.runtime.Reset

     1    /*!
     2     *  ======== Reset ========
     3     *  Startup reset function manager
     4     *
     5     *  This module defines the 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     *  @a(Warning)
    11     *  The reset function is _not_ supported on all platforms and, as a result,
    12     *  you should never place any "portable" code that is required for your
    13     *  application in this function.  Use the `@{link Startup}` module to
    14     *  define required application startup functions.
    15     *
    16     *  @see Startup
    17     */
    18    @Template("xdc/runtime/Reset.xdt")
    19    metaonly module Reset
    20    {
    21        /*!
    22         *  ======== fxns ========
    23         *  List of functions to call at reset
    24         *
    25         *  This array defines the functions that will be executed by the reset
    26         *  initialization function (`xdc_runtime_Startup_reset__I`) _in addition
    27         *  to_ the function specified by `@{link Startup#resetFxn}`.
    28         *
    29         *  The following code fragment shows how to add the externally defined
    30         *  function `myReset()` to this array.
    31         *  @p(code)
    32         *      var Reset = xdc.useModule("xdc.runtime.Reset");
    33         *      Reset.fxns[Reset.fxns.length++] = "&myReset";
    34         *  @p
    35         *
    36         *  @a(Warning)
    37         *  Although the functions specified in `fxns[]` are ordinary C functions,
    38         *  they are often called _before_ the C runtime is fully initialized;
    39         *  e.g., they may be called _before_ static variables are initialized.
    40         *  Reset functions should only assume that a minimal execution stack has
    41         *  initialized.
    42         *
    43         *  @see Startup.resetFxn
    44         */
    45        metaonly config xdc.runtime.Startup.InitFxn fxns[] = [];
    46    }
    47    /*
    48     *  @(#) xdc.runtime; 2, 1, 0,296; 11-16-2010 11:20:24; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    49     */
    50


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,296; 11-16-2010 11:20:24; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   160     */
   161


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     *  Every module can optionally define a startup function which is called
    24     *  before `main()`.  Modules declare that they want to participate in this
    25     *  startup sequence via the `@ModuleStartup` attribute in the module's spec
    26     *  file.  Modules that use this attribute must also implement the following
    27     *  startup function:
    28     *  @p(code)
    29     *      Int Mod_Module_startup(Int state);
    30     *  @p
    31     *  where "Mod" is the name of the module requesting startup support.
    32     *
    33     *  The parameter to the startup function serves as "state variable" whose
    34     *  initial value will be `Startup_NOTDONE`. If `startup()` returns a value
    35     *  other than `Startup_DONE`, it will be called in a subsequent pass with this
    36     *  return value passed in as `state`.  To ensure this process terminates,
    37     *  no startup function is ever called more than `{@link #maxPasses}`
    38     *  times.
    39     *
    40     *  For situations in which the startup of one module depends upon another
    41     *  having completed its startup processing, the following function is
    42     *  automatically defined for all modules and proxies:
    43     *  @p(code)
    44     *      Bool Mod_Module_startupDone();
    45     *  @p
    46     *  where "Mod" is the name of some module or proxy.  These predicates can
    47     *  be used as guards inside of a startup function to probe whether a
    48     *  particular module has completed its own startup processing.  As a
    49     *  convenience, the function `Startup_rtsDone()` probes the necessary set of
    50     *  `xdc.runtime` modules required to support instance `create()` functions, and
    51     *  should be called before any startup-time instance creation and/or
    52     *  memory allocation is performed.
    53     *  @p(code)
    54     *      Int Mod_Module_startup(Int state)
    55     *      {
    56     *          if (!Startup_rtsDone()) {
    57     *              return (Startup_NOTDONE);
    58     *          }
    59     *              .
    60     *              .
    61     *              .
    62     *          return (Startup_DONE);
    63     *      }
    64     *  @p
    65     *
    66     *  @a(Startup Sequence)
    67     *  The following list defines when in the startup sequence the user provided
    68     *  startup functions are being invoked:
    69     *  @p(nlist)
    70     *   - CPU is initialized and C stack setup is performed.
    71     *   - Function specified by `Startup.resetFxn` is called.
    72     *     `Startup.resetFxn` is called only on platforms where reset is performed
    73     *     before running a program. For example, boot code for all TI targets
    74     *     invokes `Startup.resetFxn`, while that function is not invoked on
    75     *     Microsoft targets.
    76     *   - C runtime initialization is performed.
    77     *   - Functions from the array `Startup.firstFxns` are called.
    78     *   - All `Mod_Module_startup` functions are called in a loop until all such
    79     *     functions return `Startup_DONE` or `maxPasses` threshold is reached.
    80     *   - Functions from the array `Startup.lastFxns` are called.
    81     *   - The function `main` is called.
    82     *  @p
    83     *     The steps 4 - 6 occur during C++ static object initialization. Since
    84     *     the ANSI C++ Language Standard does not provide a means to control
    85     *     the order of C++ constructors, if a C++ constructor uses an XDC module,
    86     *     there is no guarantee that the module's startup function already ran.
    87     *     Therefore, any C++ constructor that needs XDC modules' services should
    88     *     call `Startup_exec` first to force all startup related functions from
    89     *     steps 4 - 6 to run, before the constructor uses any XDC module.
    90     *  @p
    91     *     Also, if a target does not support C++, the steps 4 - 6 will not run
    92     *     automatically. It is then up to a user's code to invoke `Startup_exec`,
    93     *     possibly as the first step in `main`.
    94     *  @p
    95     */
    96    @Template("./Startup.xdt")
    97
    98    module Startup {
    99
   100        /*!
   101         *  ======== DONE ========
   102         *  Returned from module startup functions no further calls are required
   103         */
   104        const Int DONE = -1;
   105
   106        /*!
   107         *  ======== NOTDONE ========
   108         *  Initial value of state argument passed to module startup functions
   109         */
   110        const Int NOTDONE = 0;
   111
   112        /*!
   113         *  ======== ModuleView ========
   114         *  @_nodoc
   115         */
   116        metaonly struct ModuleView {
   117            Bool    rtsStartupDone;
   118            Bool    startupBegun;
   119            String  resetFxn;
   120            String  firstFxns[];
   121            String  lastFxns[];
   122        }
   123
   124        /*!
   125         *  ======== StartupStateView ========
   126         *  @_nodoc
   127         */
   128        metaonly struct StartupStateView {
   129            Int     order;
   130            String  moduleName;
   131            String  done;
   132        }
   133
   134        /*!
   135         *  ======== rovViewInfo ========
   136         *  @_nodoc
   137         */
   138        @Facet
   139        metaonly config xdc.rov.ViewInfo.Instance rovViewInfo =
   140            xdc.rov.ViewInfo.create({
   141                viewMap: [
   142                    ['Module',
   143                        {
   144                            type: xdc.rov.ViewInfo.MODULE,
   145                            viewInitFxn: 'viewInitModule',
   146                            structName: 'ModuleView'
   147                        }
   148                    ],
   149                    ['Startup State',
   150                        {
   151                            type: xdc.rov.ViewInfo.MODULE_DATA,
   152                            viewInitFxn: 'viewInitStartupState',
   153                            structName: 'StartupStateView'
   154                        }
   155                    ]
   156                ]
   157            });
   158
   159        /*!
   160         *  ======== maxPasses ========
   161         *  Max number of iterations over the set of startup functions
   162         */
   163        config Int maxPasses = 32;
   164
   165        /*!
   166         *  ======== InitFxn ========
   167         *  Type of function assignable to `firstFxns`, `lastFxns`, or `resetFxn`
   168         */
   169        typedef Void (*InitFxn)();
   170
   171        /*!
   172         *  ======== firstFxns ========
   173         *  List of functions called before module startup
   174         *
   175         */
   176        config InitFxn firstFxns[length] = [];
   177
   178        /*!
   179         *  ======== lastFxns ========
   180         *  List of functions called after module startup
   181         *
   182         */
   183        config InitFxn lastFxns[length] = [];
   184
   185        /*!
   186         *  ======== resetFxn ========
   187         *  Function to be called by during initialization
   188         *
   189         *  This function is called only on platforms where reset is performed
   190         *  before running the program. The purpose of this function is to set up
   191         *  the hardware registers (cache, external memory interface, etc.) before
   192         *  any other code executes.
   193         *
   194         */
   195        metaonly config InitFxn resetFxn = null;
   196
   197        /*!
   198         *  ======== exec ========
   199         *  Execute the startup functions of all resident modules
   200         *
   201         *  Note that this function is idempotent, and can be called at any point
   202         *  in the platform/target startup sequence in which "ordinary" C functions
   203         *  can execute.  By default, this function is called as part of the
   204         *  standard C++ static initialization sequence.
   205         *
   206         *  If your target compiler does not support C++, this function must be
   207         *  called at least once prior to using any `xdc.runtime` modules.
   208         *  Simply call this function at the very beginning of `main()`.
   209         */
   210        Void exec();
   211
   212        /*!
   213         *  ======== rtsDone ========
   214         *  Query the state of the `xdc.runtime` package
   215         *
   216         *  This function is used by module startup functions to determine
   217         *  when it is possible to use the `xdc.runtime` modules; e.g. to
   218         *  allocate memory, create instances managed by some module (even
   219         *  those outside the `xdc.runtime` package), call a `Log` function,
   220         *  etc.
   221         *
   222         *  @a(returns)
   223         *  Returns `TRUE` when all `xdc.runtime` modules have completed
   224         *  initialization.
   225         */
   226        Bool rtsDone();
   227
   228    internal:
   229
   230        /*!
   231         *  ======== reset ========
   232         *  Application-specific reset function
   233         *
   234         *  This function is defined in `Startup.xdt`
   235         *  (`xdc_runtime_Startup_reset__I`) and is called as early as
   236         *  possible in the program initialization process; for many platforms,
   237         *  it is called prior the the initialization of the C runtime
   238         *  environment.
   239         */
   240        Void reset();
   241
   242        Void startMods(Int state[], Int len);
   243        readonly config Void (*startModsFxn)(Int[], Int) = startMods;
   244
   245        extern Void execImplFxn() = xdc_runtime_Startup_exec__I;
   246
   247        readonly config Void (*execImpl)() = execImplFxn;
   248
   249        typedef Int (*SFxn)(Int);
   250        config SFxn sfxnTab[];
   251
   252        /*!
   253         *  ======== sfxnRts ========
   254         *  Array of runtime modules' startup functions
   255         *
   256         *  This array also contains startup functions of the modules that inherit
   257         *  from interfaces in `xdc.runtime`. Functions added to this array are
   258         *  called only once before the startup procedure for all modules begins.
   259         */
   260        config Bool sfxnRts[];
   261
   262        struct Module_State {
   263            Int *stateTab;      /* initially null */
   264            Bool execFlag;      /* if true, startup code processing started */
   265            Bool rtsDoneFlag;
   266        };
   267
   268    }
   269    /*
   270     *  @(#) xdc.runtime; 2, 1, 0,296; 11-16-2010 11:20:24; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   271     */
   272


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,296; 11-16-2010 11:20:24; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   249     */
   250


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,296; 11-16-2010 11:20:24; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    86     */
    87


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        /*!
    73         *  ======== A_cannotFitIntoArg ========
    74         *  Assert that the target's `Float` type fits in an `IArg`
    75         *
    76         *  This assertion is triggered when the `%f` format specifier is used,
    77         *  the argument treated as an `IArg`, but for the current target
    78         *  `sizeof(Float)` > `sizeof(IArg)`.
    79         */
    80        config Assert.Id A_cannotFitIntoArg = {
    81            msg: "A_cannotFitIntoArg: sizeof(Float) > sizeof(Arg)"
    82        };
    83
    84        /*!
    85         *  ======== extendedFormats ========
    86         *  Optional conversions supported by `{@link #printf System_printf}`
    87         *
    88         *  This string specifies the set of optional argument conversion
    89         *  specifiers required by the application.  By reducing the number of
    90         *  optional conversions understood by the `System {@link #printf}`
    91         *  methods, it is possible to significantly reduce the code size
    92         *  footprint of the `System` module.  This configuration parameter
    93         *  enables one to balance `printf` functionality against code size
    94         *  footprint.
    95         *
    96         *  The format of this string is simply a concatenated list of the desired
    97         *  conversion specifiers (with the leading `%` character).  For example,
    98         *  to support both `%f` and `%$L` set `extendedFormats` to `"%$L%f"`.
    99         *
   100         *  To disable all optional converstions, set `extendedFormats` to `null`
   101         *  or the empty string ("").
   102         *
   103         *  For a complete list of supported extensions, see the
   104         *  `{@link #printf System_printf}` "Extended_Format_Specifiers" section.
   105         *
   106         *  @a(Note)
   107         *  If an optional conversion is used by some part of the application and
   108         *  it is not specified in `extendedFormats`, the conversion character(s)
   109         *  and leading `%` are treated as ordinary characters to be output.  As
   110         *  a result, all subsequent arguments will almost certainly be converted
   111         *  using the wrong conversion specifier!
   112         *
   113         *  @see #printf
   114         */
   115        metaonly config String extendedFormats = "%$L%$S%$F";
   116
   117        /*!
   118         *  ======== SupportProxy ========
   119         *  The implementation module of the low-level system functions.
   120         *
   121         *  This configuration parameter allows one to "bind" a different
   122         *  implementation of the low-level services required to implement
   123         *  `System`.
   124         *  @p(code)
   125         *      var System = xdc.useModule("xdc.runtime.System");
   126         *      var SysStd = xdc.useModule("xdc.runtime.SysStd");
   127         *      System.SupportProxy = SysStd;
   128         *  @p
   129         *
   130         *  If this parameter is not set, it defaults to `{@link SysMin}`.
   131         */
   132        proxy SupportProxy inherits ISystemSupport;
   133
   134        /*!
   135         *  ======== maxAtexitHandlers ========
   136         *  Maximum number of dynamic atexit handlers allowed in the system.
   137         *
   138         *  Maximum number of `System` `atexit` handlers set during runtime via
   139         *  the `{@link System#atexit}` function.
   140         *
   141         */
   142        config Int maxAtexitHandlers = 8;
   143
   144        /*!
   145         *  ======== abort ========
   146         *  Print a message and abort currently running executable.
   147         *
   148         *  This is called when an executable abnormally terminates.
   149         *  The `System` gate is entered, the
   150         *  `{@link #SupportProxy}`'s `abort` function is called
   151         *  and `abort` is called.
   152         *  No exit functions bound via `System_atexit()` or the ANSI C Standard
   153         *  Library `atexit()` functions are executed.
   154         *
   155         *  @param(str)     abort message (not a format string)
   156         */
   157        Void abort(String str);
   158
   159        /*!
   160         *  ======== atexit ========
   161         *  Add an exit handler
   162         *
   163         *  `System_atexit` pushes `handler` onto an internal stack of functions
   164         *  to be executed when system is exiting (e.g. `System_exit` or `exit` is
   165         *  called). Up to `{@link #maxAtexitHandlers}` functions can be specified
   166         *  in this manner.  During the exit processing, the functions are popped
   167         *  off the internal stack and called until the stack is empty.
   168         *
   169         *  The `System` gate is entered before the `System_atexit` functions
   170         *  are called.
   171         *
   172         *  The `SupportProxy`'s `{@link ISystemSupport#exit}` function is called
   173         *  after all the atexit functions are called.
   174         *
   175         *  @param(handler) the `AtexitHandler` to invoke during system
   176         *                  exit processing.
   177         *
   178         *  @a(returns)
   179         *  If `FALSE` is returned, the exit handler was not added and it will
   180         *  not be called during an exit.
   181         */
   182        Bool atexit(AtexitHandler handler);
   183
   184        /*!
   185         *  ======== atexitMeta ========
   186         *  Add an exit handler during configuration
   187         *
   188         *  This is the static counterpart to `System_atexit()`. This method can
   189         *  be used to add `atexit` handlers at configuration time.  These
   190         *  handlers do not count against the `maxAtexitHandlers`.
   191         *
   192         *  @param(handler) the `AtexitHandler` to invoke during system
   193         *                  exit processing.
   194         */
   195        metaonly Void atexitMeta(AtexitHandler handler);
   196
   197        /*!
   198         *  ======== exit ========
   199         *  Exit currently running executable.
   200         *
   201         *  This function is called when an executable needs to terminate
   202         *  normally.  This function sets the exit code and simply calls `exit`.
   203         *  All functions bound via `System_atexit` or the ANSI C Standar Library
   204         *  `atexit` function are then executed. The `{@link #SupportProxy}`'s
   205         *  `exit` function is called during this time.
   206         *
   207         *  @param(stat)    exit status to return to calling environment.
   208         */
   209        Void exit(Int stat);
   210
   211        /*!
   212         *  ======== putch ========
   213         *  Output a single character
   214         *
   215         *  The `{@link #SupportProxy}`'s `putch` function is called
   216         *  by this function.
   217         *
   218         *  @param(ch) character to be output.
   219         */
   220        Void putch(Char ch);
   221
   222        /*!
   223         *  ======== flush ========
   224         *  Flush standard System I/O
   225         *
   226         *  This function causes any buffered output characters are "written"
   227         *  to the output device.
   228         *
   229         *  The `{@link #SupportProxy}`'s `flush` function is called
   230         *  by this function.
   231         */
   232        Void flush();
   233
   234        /*!
   235         *  ======== printf ========
   236         *  A smaller faster printf
   237         *
   238         *  This function behaves much like the ANSI C Standard `printf`
   239         *  but does not support the full range of format strings specified by
   240         *  the C Standard.  In addition, several non-standard format specifiers
   241         *  are recognized.
   242         *
   243         *  @a(Format Strings)
   244         *  The format string is a character string composed of zero or
   245         *  more directives: ordinary characters (not %), which are copied
   246         *  unchanged to the output stream; and conversion specifications, each of
   247         *  which results in fetching zero or more subsequent arguments.  Each
   248         *  conversion specification is introduced by the character %, and ends
   249         *  with a conversion specifier.  In between there may be (in this order)
   250         *  zero or more flags, an optional minimum field width, an optional
   251         *  precision and an optional length modifier.
   252         *
   253         *  @a(Flags)
   254         *  The following flags are supported:
   255         *  @p(dlist)
   256         *      - `-`
   257         *          The converted value is to be left adjusted on the field
   258         *          boundary (the default is right justification.)
   259         *      - `0`
   260         *          The value should be zero padded. For d, i, o, u, and x
   261         *          conversions, the converted value is padded on the left
   262         *          with zeros rather than blanks.
   263         *  @p
   264         *
   265         *  @a(Field Width)
   266         *  The optional field width specifier is a decimal digit string (with
   267         *  nonzero first digit) specifying a minimum field width. If the
   268         *  converted value has fewer characters than the field width, it will
   269         *  be padded with spaces on the left (or right, if the left-adjustment
   270         *  flag has been given).  Instead of a decimal digit string one may
   271         *  write `*` to specify that the field width is given in the next
   272         *  argument.  A negative field width is taken as a '-' flag followed
   273         *  by a positive field width.
   274         *
   275         *  @a(Precision)
   276         *  The optional precision specifier is a period ('.') followed by an
   277         *  optional decimal digit string.  Instead of a decimal digit string
   278         *  one may write `*` to specify that the precision is given in the
   279         *  next argument which must be of type int.
   280         *
   281         *  If the precision is given as just '.', or the precision is
   282         *  negative, the precision is taken to be zero.  This gives the
   283         *  minimum number of digits to appear for d, i, o, u, and x
   284         *  conversions, or the maximum number of characters to be printed from
   285         *  a string for s conversions.
   286         *
   287         *  @a(Length Modifiers)
   288         *  The optional length modifier is a single character from the following
   289         *  list.
   290         *  @p(dlist)
   291         *      - `l`
   292         *          A  following integer conversion corresponds to a long int
   293         *          or unsigned long int argument
   294         *
   295         *  @p
   296         *
   297         *  @a(Conversion Specifiers)
   298         *  The following conversion specifiers are supported.
   299         *  @p(dlist)
   300         *      - `d`, `i`
   301         *          signed integer
   302         *      - `u`
   303         *          unsigned decimal
   304         *      - `x`
   305         *          unsigned hex
   306         *      - `o`
   307         *          unsigned octal
   308         *      - `p`
   309         *          pointer (@ + hex num)
   310         *      - `c`
   311         *          character
   312         *      - `s`
   313         *          string
   314         *  @p
   315         *  @a(Extended Conversion Specifiers)
   316         *  The following conversion specifiers are optionally supported.  See
   317         *  the `{@link #extendedFormats}` configuration parameter for more
   318         *  information about how to enable these conversion specifiers.
   319         *
   320         *  @p(dlist)
   321         *      - `f`
   322         *          decimal floating point.
   323         *      - `$`
   324         *          non-ANSI conversion prefix.  This prefix indicates that the
   325         *          next character identifies a non-ANSI standard conversion. See
   326         *          the next section for details.
   327         *  @p
   328         *
   329         *  @a(Non ANSI Conversion Specifiers)
   330         *  Among the extended conversion specifiers are unique specifiers which
   331         *  are not part of ANSI printf. These are specified using a $, for
   332         *  example %$L.
   333         *
   334         *  These unique specifiers do not support the minimum field width
   335         *  attribute. Certain specifiers have additional restrictions; see below.
   336         *
   337         *  @p(dlist)
   338         *      - '$L'
   339         *          The argument is treated as a pointer to a `{@link Types#Label}`
   340         *          and is converted to an appropriate string.
   341         *      - '$F'
   342         *          Displays a file and line number; used for displaying the call
   343         *          site. This specifier consumes two arguments, the file and line
   344         *          number, in that order. See an example below.
   345         *      - '$S'
   346         *          The argument is treated as a format string, and is recursively
   347         *          formatted using any following arguments. This specifier does
   348         *          not support the use of the "precision" field for specifying
   349         *          maximum string length.
   350         *  @p
   351         *
   352         *  The following are example uses of the %$F and %$S format specifiers.
   353         *
   354         *  In this call using %$F, the compiler recognizes these symbols and
   355         *  fills in the file and line number.
   356         *  @p(code)
   357         *  System_printf("%$F", __FILE__, __LINE__);
   358         *  @p
   359         *  This call outputs, for example,
   360         *  @p(code)
   361         *  "MyCode.c", line 35:
   362         *  @p
   363         *  Here is an example using %$S, passing a recursive format string.
   364         *  @p(code)
   365         *  System_printf("Msg: %$S", "My msg, code: %d", 5);
   366         *  @p
   367         *  This outputs:
   368         *  @p(code)
   369         *  Msg: My msg, code: 5
   370         *  @p
   371         *
   372         *  @param(fmt) a 'printf-style' format string
   373         *
   374         *  @a(returns)
   375         *  `printf` returns the number of characters printed.
   376         */
   377        Int printf(String fmt, ...);
   378
   379        /*!
   380         *  ======== aprintf ========
   381         *  `{@link #printf}` where all optional arguments are `IArg`s
   382         *
   383         *  This function will treat each argument as though it was widened to be
   384         *  of type `IArg` prior to being passed to the `{@link #printf}` function
   385         *
   386         *  @see #printf
   387         */
   388        Int aprintf(String fmt, ...);
   389
   390        /*!
   391         *  ======== sprintf ========
   392         *  Write formated output to a character buffer
   393         *
   394         *  This function is identical to `{@link #printf}` except that the
   395         *  output is copied to the specified character buffer `buf` followed
   396         *  by a terminating '\0' character.
   397         *
   398         *  @param(buf) a character output buffer
   399         *  @param(fmt) a 'printf-style' format string
   400         *
   401         *  @a(returns)
   402         *  `sprintf` returns the number of characters output not including the
   403         *  '\0' termination character.
   404         */
   405        Int sprintf(Char buf[], String fmt, ...);
   406
   407        /*!
   408         *  ======== asprintf ========
   409         *  `{@link #sprintf}` where all optional arguments are `IArg`s
   410         *
   411         *  This function will treat each argument as though it was widened to be
   412         *  of type `IArg` prior to being passed to the `{@link #sprintf}`
   413         *  function.
   414         *
   415         *  @see #sprintf
   416         */
   417        Int asprintf(Char buf[], String fmt, ...);
   418
   419        /*!
   420         *  ======== vprintf ========
   421         *  A VaList printf
   422         *
   423         *  This function is identical to `{@link #printf}` except that its
   424         *  arguments are passed via a VaList (a "varargs list").
   425         *
   426         *  @param(fmt) a standard 'printf-style' format string.
   427         *  @param(va)  an args list that points to the arguments referenced
   428         *              by the fmt string
   429         *
   430         *  @a(returns)
   431         *  `vprintf` returns the number of characters output.
   432         */
   433        Int vprintf(String fmt, VaList va);
   434
   435        /*!
   436         *  ======== avprintf ========
   437         *  `{@link #vprintf}` where all optional arguments are `IArg`s
   438         *
   439         *  This function will treat each argument as though it was widened to be
   440         *  of type `IArg` prior to being passed to the `{@link #vprintf}`
   441         *  function.
   442         *
   443         *  @see #vprintf
   444         */
   445        Int avprintf(String fmt, VaList va);
   446
   447        /*!
   448         *  ======== vsprintf ========
   449         *  A `VaList` sprintf
   450         *
   451         *  This function is identical to `{@link #sprintf}` except that
   452         *  its arguments are passed via a `VaList` (a "varargs list").
   453         *
   454         *  @param(buf) a character output buffer
   455         *  @param(fmt) a standard '`printf`-style' format string.
   456         *  @param(va)  an arguments list that points to the arguments referenced
   457         *              by the `fmt` string
   458         *
   459         *  @a(returns)
   460         *  `vsprintf` returns the number of characters output.
   461         */
   462        Int vsprintf(Char buf[], String fmt, VaList va);
   463
   464        /*!
   465         *  ======== avsprintf ========
   466         *  `{@link #vsprintf}` where all optional arguments are `IArg`s
   467         *
   468         *  This function is identical to `{@link #sprintf}` except that
   469         *  its arguments are passed via a `VaList` (a "varargs list").
   470         *
   471         *  This function will treat each argument as though it was widened to be
   472         *  of type `IArg` prior to being passed to the `vsprintf` function
   473         *
   474         *  @see #vsprintf
   475         */
   476        Int avsprintf(Char buf[], String fmt, VaList va);
   477
   478    internal:
   479
   480        /*! struct used to keep track of state during doPrint */
   481        struct ParseData {
   482            Int     width;      /* width in format specifier */
   483            Bool    lFlag;      /* length modifier flag */
   484            Bool    lJust;      /* left justify flag */
   485            Int     precis;     /* precision in format specifier */
   486            Int     len;        /* length of formatted number */
   487            Int     zpad;       /* leading zero pad flag */
   488            Char    *end;       /* pointer to end of local buf to hold num */
   489            Bool    aFlag;      /* deal with vars on stack as IArgs */
   490            Char    *ptr;       /* ptr to local buf after filling in num */
   491        };
   492
   493        /*! typedef for generated functions to process extended formats */
   494        typedef Int (*ExtendFxn)(Char **, Char **, VaList *, ParseData *);
   495
   496        /*! config parameter used to call generated function  */
   497        readonly config ExtendFxn extendFxn = '&xdc_runtime_System_printfExtend__I';
   498
   499        /*
   500         * ======== printfExtend ========
   501         *  System_printfExtend is generated based on extendedFormats string
   502         *
   503         *  This generated function is accessed through an internal config so
   504         *  that it is an indirect call in the ROM case, but optimized to a direct
   505         *  call in the RAM case.
   506         *
   507         * @_nodoc
   508         */
   509        Int printfExtend (Char **bufp, Char **fmt, VaList *va, ParseData *parse);
   510
   511        /*!
   512         *  ======== exitFxns ========
   513         *  @_nodoc
   514         *  List of functions statically plugged to be called at exit
   515         *
   516         */
   517        metaonly config AtexitHandler exitFxns[];
   518
   519        /*!
   520         *  ======== mprintf ========
   521         *  @_nodoc
   522         */
   523        function mprintf(fmt, args);
   524
   525        /*!
   526         *  ======== doPrint ========
   527         *  @_nodoc
   528         */
   529        Int doPrint(Char buf[], String fmt, VaList *pva, Bool aFlag);
   530
   531        /*!
   532         *  ======== formatNum ========
   533         *  @_nodoc
   534         *
   535         */
   536        Char *formatNum(Char *ptr, UInt32 n, Int zpad, Int base);
   537
   538        /*!
   539         *  ======== putchar ========
   540         *  @_nodoc
   541         *
   542         *  Write character ch to the buffer and, if the buffer pointer is
   543         *  non-`NULL`, update the buffer pointer.
   544         */
   545        Void putchar(Char **bufp, Char ch);
   546
   547        /*!
   548         *  ======== rtsExit ========
   549         *  @_nodoc
   550         */
   551        Void rtsExit();
   552
   553        /*!
   554         *  ======== Module_State ========
   555         *  @_nodoc
   556         */
   557        struct Module_State {
   558            AtexitHandler  atexitHandlers[];   /* array of atexit handlers       */
   559            Int            numAtexitHandlers;  /* Current num of atexit handlers */
   560            Int            exitStatus;         /* status for exit handlers       */
   561        };
   562    }
   563    /*
   564     *  @(#) xdc.runtime; 2, 1, 0,296; 11-16-2010 11:20:24; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   565     */
   566


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,296; 11-16-2010 11:20:24; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   352     */
   353


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,296; 11-16-2010 11:20:24; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    69     */
    70


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,296; 11-16-2010 11:20:24; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    22     */
    23


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,296; 11-16-2010 11:20:24; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    22     */
    23


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 instances 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.
   395         *
   396         *  @field(namedModule) If set to `true`, this module's string name
   397         *  is retained on the target so that it can be displayed as part
   398         *  of `{@link Log}` and `{@link Error}` events. Setting this to `false`
   399         *  saves data space in the application at the expense of readability
   400         *  of log and error messages associated with this module.
   401         *
   402         *  Note: setting this to `false` also prevents one from controlling the
   403         *  module's diagnostics at runtime via `{@link Diags#setMask()}`.
   404         *  This method uses the module's name to lookup the module's
   405         *  diagnostics mask.  It is still possible to control the module's
   406         *  diagnostics at design-time from a configuration script.
   407         *
   408         *  @see Diags, Defaults
   409         */
   410        metaonly struct Common$ {
   411            Diags.Mode diags_ASSERT;    /*! module's Diags assert mode */
   412            Diags.Mode diags_ENTRY;     /*! module's function entry Diags mode */
   413            Diags.Mode diags_EXIT;      /*! module's function exit Diags mode */
   414            Diags.Mode diags_INTERNAL;  /*! module's internal assert mode */
   415            Diags.Mode diags_LIFECYCLE; /*! module's instance lifecycle mode */
   416            Diags.Mode diags_STATUS;
   417            Diags.Mode diags_USER1;     /*! module's user1 Diags mode */
   418            Diags.Mode diags_USER2;     /*! module's user2 Diags mode */
   419            Diags.Mode diags_USER3;     /*! module's user3 Diags mode */
   420            Diags.Mode diags_USER4;     /*! module's user4 Diags mode */
   421            Diags.Mode diags_USER5;     /*! module's user5 Diags mode */
   422            Diags.Mode diags_USER6;     /*! module's user6 Diags mode */
   423            Diags.Mode diags_USER7;     /*! module's user7 Diags mode */
   424            Diags.Mode diags_INFO;      /*! module's informational event mode */
   425            Diags.Mode diags_USER8;     /*! module's user8 Diags mode */
   426            Diags.Mode diags_ANALYSIS;  /*! module's Diags analysis mode */
   427            Bool fxntab;                /*! @_nodoc enable function tables */
   428            IGateProvider.Handle gate;  /*! module's gate */
   429            Ptr gateParams;             /*! gate params for module created gates */
   430            IHeap.Handle instanceHeap;  /*! module's instance heap */
   431            String instanceSection;     /*! memory section for module's instances*/
   432            ILogger.Handle logger;      /*! module's logger */
   433            CreatePolicy memoryPolicy;  /*! module's memory policy */
   434            Bool namedInstance;         /*! true => instances have string names */
   435            Bool namedModule;           /*! true => module's name is on target */
   436            Bool romPatchTable;         /*! @_nodoc */
   437        }
   438
   439        /*!
   440         *  ======== RtaDecoderData ========
   441         *  @_nodoc
   442         *
   443         *  loggers
   444         *    name - Used to identify the logger in GUI
   445         *    bufferSym - For stop-mode; symbol at which the logger's entry
   446         *                buffer can be found
   447         *    bufferLen - For stop-mode; length of the logger's entry buffer in
   448         *                MAUs
   449         */
   450        @XmlDtd metaonly struct RtaDecoderData {
   451            String targetName;
   452            String binaryParser;
   453            String endian;
   454            Int bitsPerChar;
   455            Int argSize;
   456            Int eventSize;
   457            String dataTransportClassName;
   458            String controlTransportClassName;
   459            struct {
   460                String name;
   461                String type;
   462                Any metaArgs;
   463            } loggers[ ];
   464            struct {
   465                Int id;
   466                String logger;
   467                String diagsMask;
   468            } modMap[string];
   469            struct {
   470                Int id;
   471                String msg;
   472            } evtMap[string];
   473        };
   474
   475        /*!
   476         *  ======== ViewInfo ========
   477         *  @_nodoc
   478         *  XGconf view descriptor.
   479         */
   480        metaonly struct ViewInfo {
   481            String viewType;
   482            String viewFxn;
   483            String fields[];
   484        }
   485
   486    internal:
   487
   488        typedef Bits32 LogEvent;
   489
   490        typedef Void (*LoggerFxn0)(Ptr, LogEvent, ModuleId);
   491        typedef Void (*LoggerFxn1)(Ptr, LogEvent, ModuleId, IArg);
   492        typedef Void (*LoggerFxn2)(Ptr, LogEvent, ModuleId, IArg, IArg);
   493        typedef Void (*LoggerFxn4)(Ptr, LogEvent, ModuleId, IArg, IArg, IArg, IArg);
   494        typedef Void (*LoggerFxn8)(Ptr, LogEvent, ModuleId, IArg, IArg, IArg, IArg,
   495                                   IArg, IArg, IArg, IArg);
   496
   497        struct Vec {
   498            Int len;
   499            Ptr arr;
   500        };
   501
   502        /*
   503         *  ======== Link ========
   504         *  Link used to maintain atomic linked lists
   505         */
   506        struct Link {
   507            Link *next;
   508            Link *prev;
   509        };
   510
   511        /*
   512         *  ======== InstHdr ========
   513         *  Header for all runtime created instance objects
   514         */
   515        struct InstHdr {
   516            Link link;
   517        }
   518
   519        /*
   520         *  ======== PrmsHdr ========
   521         *  Header for all _Params structures
   522         */
   523        struct PrmsHdr {
   524            SizeT size;     /* size of the entire parameter structure */
   525            Ptr self;       /* pointer to self; used to check params are init'd */
   526            Ptr modFxns;
   527            Ptr instPrms;
   528        }
   529
   530        /*
   531         *  ======== Base ========
   532         *  Header for all module vtables
   533         */
   534        struct Base {
   535            Base *base;     /* points to inherited interface base */
   536        }
   537
   538        /*
   539         *  ======== SysFxns ========
   540         *  Deprecated.  Use SysFxns2 instead
   541         */
   542        struct SysFxns {
   543            Ptr (*__create)(Ptr, SizeT, const Ptr, const Ptr, SizeT, Error.Block*);
   544            Void (*__delete)(Ptr);
   545            Label *(*__label)(Ptr, Label *);
   546            ModuleId __mid;
   547        }
   548
   549        /*
   550         *  ======== SysFxns2 ========
   551         *  System data embedded in module's vtable
   552         */
   553        struct SysFxns2 {
   554            Ptr (*__create)(Ptr, SizeT, const Ptr, const UChar *, SizeT, Error.Block *);
   555            Void (*__delete)(Ptr);
   556            Label *(*__label)(Ptr, Label *);
   557            ModuleId __mid;
   558        }
   559
   560    }
   561    /*
   562     *  @(#) xdc.runtime; 2, 1, 0,296; 11-16-2010 11:20:24; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   563     */
   564


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,105; 11-16-2010 11:20:23; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   129     */
   130


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,105; 11-16-2010 11:20:23; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    12     */
    13


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,105; 11-16-2010 11:20:23; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    66     */
    67


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,105; 11-16-2010 11:20:23; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   106     */
   107


module xdc.runtime.knl.GateProcessSupportNull

     1    /*!
     2     *  ======== GateProcessSupportNull.xdc ========
     3     *  Empty IGateProcessSupport implementation
     4     */
     5
     6    module GateProcessSupportNull inherits IGateProcessSupport
     7    {
     8
     9    }
    10    /*
    11     *  @(#) xdc.runtime.knl; 1, 0, 0,105; 11-16-2010 11:20:23; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    12     */
    13


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,105; 11-16-2010 11:20:23; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    64     */
    65


module xdc.runtime.knl.GateThreadSupportNull

     1    /*!
     2     *  ======== GateThreadSupportNull.xdc ========
     3     *  Empty IGateProcessSupport implementation
     4     */
     5
     6    module GateThreadSupportNull inherits IGateThreadSupport
     7    {
     8
     9    }
    10    /*
    11     *  @(#) xdc.runtime.knl; 1, 0, 0,105; 11-16-2010 11:20:23; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    12     */
    13


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,105; 11-16-2010 11:20:23; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   102     */
   103


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,105; 11-16-2010 11:20:23; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    73     */
    74


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,105; 11-16-2010 11:20:23; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    38     */
    39


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,105; 11-16-2010 11:20:23; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    97     */
    98


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,105; 11-16-2010 11:20:23; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    63     */
    64


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,105; 11-16-2010 11:20:23; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    47     */
    48


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 that
    32     *  use ISync instances. The signal() function is used to signal completion of
    33     *  an activity. The wait() function will allow the module to block or poll for
    34     *  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 non-blocking
    38     *  sync, it allows modules to be written generically and support all ISync
    39     *  implementations. For non-blocking ISync the wait() will return
    40     *  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,105; 11-16-2010 11:20:24; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   121     */
   122


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,105; 11-16-2010 11:20:24; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   282     */
   283


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,105; 11-16-2010 11:20:24; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    52     */
    53


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         *  @p(blist)
    62         *  -{@link #PendStatus_ERROR} if an error occured.
    63         *  -{@link #PendStatus_TIMEOUT} denotes timeout.
    64         *  -{@link #PendStatus_SUCCESS} semaphore was decremented.
    65         *    details.
    66         *  @p
    67         *
    68         *  @param(sem)     ISemaphore.Handle to be used
    69         *  @param(timeout) timeout in microseconds
    70         *  @param(eb)      Pointer to Error.Block
    71         *  @a(returns)     status returned. (refer to above description)
    72         */
    73        Int pend(ISemaphore.Handle sem, UInt timeout, Error.Block *eb);
    74
    75        /*!
    76         *  ======== post ========
    77         *  Increment the semaphore count.
    78         *
    79         *  @param(sem)     ISemaphore.Handle to be used
    80         *  @param(eb)      Pointer to Error.Block
    81         *  @a(returns)     true for success, false for error in Error block.
    82         */
    83        Bool post(ISemaphore.Handle sem, Error.Block *eb);
    84    }
    85    /*
    86     *  @(#) xdc.runtime.knl; 1, 0, 0,105; 11-16-2010 11:20:24; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    87     */
    88


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,105; 11-16-2010 11:20:24; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    79     */
    80


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,105; 11-16-2010 11:20:24; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    78     */
    79


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        /*! Used to wait forever */
    43        const UInt WAIT_FOREVER = ISync.WAIT_FOREVER;
    44
    45        /*! Used to specify no waiting */
    46        const UInt NO_WAIT = ISync.NO_WAIT;
    47
    48        /*!
    49         *  Proxy used for optimization.
    50         *
    51         *  If ALL ISync.Handles were created using the same module
    52         *  (e.g SyncSemProcess) then setting this Proxy to SyncSemProcess and
    53         *  setting Sync.Proxy.abstractInstances$ = false,
    54         *  Sync APIs can have better performance.
    55         */
    56        proxy Proxy inherits ISync;
    57
    58        /*!
    59         *  ======== query ========
    60         *  Query for a particular quality.
    61         *
    62         *  FALSE is returned if quality not supported.
    63         *
    64         *  @param(sync)    sync handle
    65         *  @param(qual)    quality
    66         *  @b(returns)     TRUE or FALSE.
    67         */
    68        Bool query(ISync.Handle sync, Int qual);
    69
    70        /*!
    71         *  ======== signal ========
    72         *  Called at completion of an activity.
    73         *
    74         *  This function is non-blocking. It is also required that the underlying
    75         *  sync be binary in nature.
    76         *
    77         *  @param(sync)    sync handle
    78         */
    79        Void signal(ISync.Handle sync);
    80
    81        /*!
    82         *  ======== wait ========
    83         *  Called to wait/poll for completion of an activity.
    84         *
    85         *  This function can block. Non-blocking implementations should return
    86         *  ;
    87         *  Wait for the semaphore to become available.
    88         *
    89         *  @p(blist)
    90         *  -{@link #WaitStatus_ERROR} if an error occured.
    91         *  -{@link #WaitStatus_TIMEOUT} denotes timeout.
    92         *  -{@link #WaitStatus_SUCCESS} semaphore was decremented.
    93         *  @p
    94         *
    95         *  @param(sync)        sync handle
    96         *  @param(timeout)     timeout in microseconds
    97         *  @b(returns)         see description above
    98         */
    99        Int wait(ISync.Handle sync, UInt timeout, Error.Block *eb);
   100    }
   101    /*
   102     *  @(#) xdc.runtime.knl; 1, 0, 0,105; 11-16-2010 11:20:24; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   103     */
   104


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,105; 11-16-2010 11:20:24; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    66     */
    67


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,105; 11-16-2010 11:20:24; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    27     */
    28


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,105; 11-16-2010 11:20:24; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    41     */
    42


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,105; 11-16-2010 11:20:24; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   325     */
   326


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) {
    70         *        // prints "pkg.Mod.cfg set to <value>"
    71         *        print(this.$name + "." + sel + " set to " + val);
    72         *    });
    73         *  @p
    74         *
    75         *  @a(example)
    76         *  The following example makes it an error to change `Mod.cfg`:
    77         *  @p(code)
    78         *    GetSet.onSet(Mod, "cfg", function(sel, val) {
    79         *        throw new Error("You'll never change me!");
    80         *    });
    81         *  @p
    82         */
    83        function onSet(obj, sel, setter);
    84
    85        /*!
    86         *  ======== createGroup ========
    87         *  Create a group of related setter functions.
    88         *
    89         *  The purpose of a group is to control interactions between setters.
    90         *  If each setter acts like an interrupt, then a group is like an
    91         *  interrupt controller that determines when setters are permitted
    92         *  to run.
    93         *
    94         *  Each group is non-reentrant. Once any setter in the group is
    95         *  running, it runs to completion before any other setter in the
    96         *  same group may run. This allows the setters to modify internal
    97         *  state without interference from other setters that operate on
    98         *  the same internal state.
    99         *
   100         *  Each group runs to completion. When a setter in the group runs, it
   101         *  might modify other config params and cause further setters in the
   102         *  same group to run. All of these complete before control is returned
   103         *  to the original execution flow. From the point of view of code
   104         *  outside the group, all the setters ran as an atomic operation.
   105         *
   106         *  Groups may be interrupted. When a setter modifies a config param
   107         *  that is being monitored by a second group, the second group starts
   108         *  running immediately. It will run to completion before returning
   109         *  control to the first group. So the first group sees the second
   110         *  group as atomic. This allows groups to be tested independently,
   111         *  and combined without affecting their behavior.
   112         *
   113         *  Cycles aren't permitted in the execution flow between groups. If a
   114         *  setter gets triggered from a group that has already been interrupted,
   115         *  it is deferred and run when control eventually returns to its own
   116         *  group. Cycles between groups can break the appearance of atomic
   117         *  execution, and so should be avoided when possible.
   118         *
   119         *  @a(returns)
   120         *  A Java object of class
   121         *    {@link ./doc-files/xdc/services/getset/Group.html Group}.
   122         *  Can then use Group.onSet() to add functions to the group.
   123         *
   124         *  @a(example)
   125         *  The following example code forces the values of the config params
   126         *  `ModA.a` and `ModB.b` to be equal:
   127         *  @p(code)
   128         *    var group = GetSet.createGroup();
   129         *    group.onSet(ModA, "a", function aToB(){ ModB.b = ModA.a; });
   130         *    group.onSet(ModB, "b", function bToA(){ ModA.a = ModB.b; });
   131         *  @p
   132         */
   133        function createGroup();
   134
   135        /*!
   136         *  ======== init ========
   137         *  Add support for getters and setters to all fields of an object.
   138         *
   139         *  Initializes getter and setter support for every field of
   140         *  the object. The object can be a module, instance, or structure.
   141         *
   142         *  This is a convenience function. The `onSet` and `onGet` functions
   143         *  already add support to the one field of interest. The `init`
   144         *  function is useful mostly to make fields visible to global setters
   145         *  and getters, for example for debugging.
   146         */
   147        function init(obj);
   148
   149        /*!
   150         *  ======== debug ========
   151         *  Print execution trace info showing the flow of getters and setters.
   152         */
   153        config Bool debug = false;
   154
   155        /*!
   156         *  ======== maxIterations ========
   157         *  Limit the number of iterations allowed for a group to converge, to
   158         *  help debug. The default value of 0 means no limit.
   159         */
   160        config int maxIterations = 0;
   161
   162        /*!
   163         *  ======== maxStackDepth ========
   164         *  Set the maximum allowed depth of recursively nested setters, as
   165         *  a debugging aid. The default value of 0 means no limit.
   166         */
   167        config int maxStackDepth = 0;
   168    }


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    }


 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.Obj, String) - Method in class xdc.services.getset.Fxn
Mark the given field as a formal input to the Fxn.
addOutput(Value.Obj, String) - Method in class xdc.services.getset.Fxn
Mark the given field of the object 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.Obj, String) - 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

get(Value.Obj) - Method in class xdc.services.getset.Getters
Get the getters for a particular object.
get(Value.Obj) - Method in class xdc.services.getset.Setters
Get the setters for a particular object.
getData(Value.Obj, Member) - 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 Var.Obj object.
Getters(Member) - 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.Obj) - Static method in class xdc.services.getset.GetSet
Initialize getter and setter support on every field.
init(Value.Obj, String) - Static method in class xdc.services.getset.GetSet
Initialize getter and setter support on a field.
init(Value.Obj, String) - Static method in class xdc.services.getset.Getters
Add getter support to a field of an object.
init(Value.Obj, String) - Static method in class xdc.services.getset.Setters
Add setter support to a field of an object.

O

onGet(Value.Obj, String, Callable) - Static method in class xdc.services.getset.GetSet
Add a user getter to the named field of the object.
onSet(Value.Obj, String, Callable) - Static method in class xdc.services.getset.GetSet
Add a user setter to the named field of the object.
onSet(Value.Obj, String, Callable) - Method in class xdc.services.getset.Group
Wrap the given function body as a Fxn and specify one input to fire on.

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 Var.Obj object.
Setters(Member) - 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

xdc.services.intern.xsr.Member member

Class xdc.services.getset.Setters extends org.mozilla.javascript.BaseFunction implements Serializable

serialVersionUID: 5777317095106662549L

Serialized Fields

member

xdc.services.intern.xsr.Member 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, 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.Obj obj, java.lang.String name)
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.Obj 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.Obj obj,
             java.lang.String name)
Method Detail

getObject

public xdc.services.intern.xsr.Value.Obj 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.Obj obj, java.lang.String name) Mark the given field as a formal input to the Fxn.
Fxn | addOutput(xdc.services.intern.xsr.Value.Obj 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.Obj 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.

addOutput

public Fxn addOutput(xdc.services.intern.xsr.Value.Obj 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.

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.Obj obj) Initialize getter and setter support on every field.
static void | init(xdc.services.intern.xsr.Value.Obj obj, java.lang.String name) Initialize getter and setter support on a field.
static void | onGet(xdc.services.intern.xsr.Value.Obj obj, java.lang.String name, org.mozilla.javascript.Callable getter) Add a user getter to the named field of the object.
static void | onSet(xdc.services.intern.xsr.Value.Obj obj, java.lang.String name, org.mozilla.javascript.Callable setter) Add a user setter to the named field of the object.
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.Obj obj)
Initialize getter and setter support on every field.

init

public static void init(xdc.services.intern.xsr.Value.Obj obj,
                        java.lang.String name)
Initialize getter and setter support on a field. If it does not already exist, add it.

onSet

public static void onSet(xdc.services.intern.xsr.Value.Obj obj,
                         java.lang.String name,
                         org.mozilla.javascript.Callable setter)
Add a user setter to the named field of the object.

onGet

public static void onGet(xdc.services.intern.xsr.Value.Obj obj,
                         java.lang.String name,
                         org.mozilla.javascript.Callable getter)
Add a user getter to the named field of the object.

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.Obj obj, xdc.services.intern.xsr.Member 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.Obj obj,
                                 xdc.services.intern.xsr.Member 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 Var.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(xdc.services.intern.xsr.Member 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.
java.util.Set<org.mozilla.javascript.Callable> | get(xdc.services.intern.xsr.Value.Obj obj) Get the getters for a particular object.
static java.util.Set<org.mozilla.javascript.Callable> | init(xdc.services.intern.xsr.Value.Obj obj, java.lang.String name) 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, 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, 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(xdc.services.intern.xsr.Member member)
Method Detail

init

public static java.util.Set<org.mozilla.javascript.Callable> init(xdc.services.intern.xsr.Value.Obj obj,
                                                                  java.lang.String name)
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)

get

public java.util.Set<org.mozilla.javascript.Callable> get(xdc.services.intern.xsr.Value.Obj obj)
Get the getters for a particular object.

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.Obj 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.Obj 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.

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 Var.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 Var.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 Var.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, value)
     this is set to the object whose field changed value
     name is the name of the field that changed value
     value is the new value of the field

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(xdc.services.intern.xsr.Member 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.
java.util.Set<org.mozilla.javascript.Callable> | get(xdc.services.intern.xsr.Value.Obj obj) Get the setters for a particular object.
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.Obj 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, 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, 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(xdc.services.intern.xsr.Member member)
Method Detail

init

public static java.util.Set<org.mozilla.javascript.Callable> init(xdc.services.intern.xsr.Value.Obj obj,
                                                                  java.lang.String name)
Add setter support to a field of an object.

Returns:
The set of user setters 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 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.

get

public java.util.Set<org.mozilla.javascript.Callable> get(xdc.services.intern.xsr.Value.Obj obj)
Get the setters for a particular object.

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


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,296; 11-16-2010 11:20:27; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    54     */
    55


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,296; 11-16-2010 11:20:27; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    23     */
    24


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         *
   107         *  @param subgroups        array of the existing trace groups
   108         */
   109        Void addSupergroup(String supergroup, StringArray subgroups);
   110
   111        /*!
   112         *  ======== capsuleEnable ========
   113         *  Enable trace output from selected capsules
   114         *
   115         *  Capsules are either XDCscript files or Java source files. The
   116         *  function parameter is treated as an array of JavaScript
   117         *  regular expressions, therefore it can contain partial capsule
   118         *  names.
   119         *
   120         *  If this function is invoked repeatedly, each new call replaces
   121         *  the array of currently enabled capsules with the array supplied
   122         *  as the parameter. The array of the currently enabled capsules is
   123         *  returned. If the function is invoked with a zero-length array, it
   124         *  returns the currently enabled capsules, but it also leaves them
   125         *  active. Therefore, the sequence of calls that would add new
   126         *  capsules instead of replacing the current ones is:
   127         *  @p(code)
   128         *  var current = Trace.capsuleEnable([]);
   129         *  current[current.length++] = "pkg/ModA.xs";
   130         *  current[current.length++] = "pkg/ModB.xs";
   131         *  Trace.capsuleEnable(current);
   132         *  @p
   133         *
   134         *  To disable trace for all capsules, the function must be invoked
   135         *  with an empty string as the only element of the array.
   136         *  @p(code)
   137         *  Trace.capsuleEnable([""]);
   138         *  @p
   139         *
   140         *  @params capsules        array of capsule names
   141         *
   142         *  @a(return)              array of currently enabled capsule names
   143         */
   144        StringArray capsuleEnable(StringArray capsules);
   145
   146        /*!
   147         *  ======== groupEnable ========
   148         *  Enable trace output from selected groups
   149         *
   150         *  A group is a string defined by package producers when they need to
   151         *  group related trace statements, distributed across different
   152         *  modules and packages, into trace units that can be disabled or
   153         *  enabled as a whole. The function parameter is treated as an array
   154         *  of JavaScript regular expressions, therefore it can contain partial
   155         *  group names.
   156         *
   157         *  If this function is invoked repeatedly, each new call replaces
   158         *  the array of currently enabled groups with the array supplied
   159         *  as the parameter. The array of the currently enabled groups is
   160         *  returned. If the function is invoked with a zero-length array, it
   161         *  returns the currently enabled groups, but it also leaves them
   162         *  active. Therefore, the sequence of calls that would add new groups
   163         *  instead of replacing the current ones is:
   164         *  @p(code)
   165         *  var current = Trace.groupEnable([]);
   166         *  current[current.length++] = "libPkgs";
   167         *  Trace.groupEnable(current);
   168         *  @p
   169         *
   170         *  To disable trace for all groups, the function must be invoked
   171         *  with an empty string as the only element of the array.
   172         *  @p(code)
   173         *  Trace.groupEnable([""]);
   174         *  @p
   175         *
   176         *  @params groups  array of groups
   177         *
   178         *  @a(return)      array of currently enabled groups
   179         */
   180        StringArray groupEnable(StringArray groups);
   181
   182        /*!
   183         *  ======== packageEnable ========
   184         *  Enable trace output from selected packages
   185         *
   186         *  Packages that can be enabled through this function are RTSC
   187         *  packages and Java packages. The function parameter is treated as
   188         *  an array of JavaScript regular expressions, therefore it can
   189         *  contain partial package names.
   190         *
   191         *  If this function is invoked repeatedly, each new call replaces
   192         *  the array of currently enabled packages with the array supplied
   193         *  as the parameter. The array of the currently enabled packages is
   194         *  returned. If the function is invoked with a zero-length array, it
   195         *  returns the currently enabled packages, but it also leaves them
   196         *  active. Therefore, the sequence of calls that would add new
   197         *  packages instead of replacing the current ones is:
   198         *  @p(code)
   199         *  var current = Trace.packageEnable([]);
   200         *  current[current.length++] = "ti.targets";
   201         *  Trace.packageEnable(current);
   202         *  @p
   203         *
   204         *  To disable trace for all packages, the function must be invoked
   205         *  with an empty string as the only element of the array.
   206         *  @p(code)
   207         *  Trace.packageEnable([""]);
   208         *  @p
   209         *
   210         *  @params capsules        array of package names
   211         *
   212         *  @a(return)              array of currently enabled package names
   213         */
   214        StringArray packageEnable(StringArray packages);
   215
   216        /*!
   217         *  ======== setLevel ========
   218         *  Set the verbosity level
   219         *
   220         *  This function limits trace output to trace statement tagged with
   221         *  level equal or lower than this function's parameter. By default,
   222         *  the verbosity level is set to 0, which is the least verbose level.
   223         *  The most verbose level is 2.
   224         */
   225        Int setLevel(Int level);
   226
   227        /*!
   228         *  ======== start ========
   229         *  @_nodoc
   230         *  Activate trace
   231         */
   232        Void start();
   233    }
   234    /*
   235     *  @(#) xdc.services.global; 1, 0, 0,296; 11-16-2010 11:20:27; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   236     */
   237


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,295; 11-16-2010 11:20:41; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    61     */
    62


 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_InstanceFinalize | "@InstanceFinalize"
public static final java.lang.String | A_InstanceInitError | "@InstanceInitError"
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_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_InstanceFinalize - Static variable in class xdc.services.spec.Attr
A_InstanceInitError - 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_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
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_InstanceFinalize
static java.lang.String | A_InstanceInitError
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_XmlDtd
Method Summary
java.lang.String | getName()
Expr | getVal()
java.lang.String | toText()
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, 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_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_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_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()
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.Decl.Signature.ObjKind
      • xdc.services.spec.Type.Modifier
      • xdc.services.spec.Qual
      • xdc.services.spec.Type.Array.Kind
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


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>xbean.jar</td>
    37           <td>1.0.4</td>
    38           <td><a href="./doc-files/xmlbeans/LICENSE.txt">Apache 2.0</a>
    39               (<a href="./doc-files/xmlbeans/NOTICE.txt">note</a>)</td>
    40           <td><a href="http://svn.apache.org/repos/asf/xmlbeans/tags/1.0.4">
    41               http://svn.apache.org/repos/asf/xmlbeans/tags/1.0.4</a></td>
    42           <td>XML support for JavaScript's E4X capabilities</td>
    43         </tr>
    44         <tr>
    45           <td>jsr173_api.jar</td>
    46           <td>1.0.1</td>
    47           <td><a href="./doc-files/jsr173/ASF2.0.txt">Apache 2.0</a></td>
    48           <td><a href="http://dist.codehaus.org/stax">
    49               http://dist.codehaus.org/stax/distributions/stax-src-1.2.0.zip</a></td>
    50           <td>JSR173 support required by xmlbeans</td>
    51         </tr>
    52         <tr>
    53           <td>antlr.jar</td>
    54           <td>3.1.1</td>
    55           <td><a href="./doc-files/antlr/LICENSE.txt">BSD</a></td>
    56           <td><a href="http://www.antlr.org">http://www.antlr.org</a></td>
    57           <td>LR parser generator used to implement the RTSC IDL</td>
    58         </tr>
    59         <tr>
    60           <td>tar.jar</td>
    61           <td>2.5</td>
    62           <td>Public Domain</td>
    63           <td><a href="http://www.trustice.com/java/tar">
    64               http://www.trustice.com/java/tar</a></td>
    65           <td>tar file reader</td>
    66         </tr>
    67         </table>
    68
    69     *  @p
    70     *  In addition to the jars above, XDCtools requires the following
    71     *  third-party software:
    72     *  @p(html)
    73
    74         <table border="1">
    75         <tr>
    76           <th>Name</th>
    77           <th>Version</th>
    78           <th>License</th>
    79           <th>From</th>
    80           <th>Description</th>
    81         </tr>
    82         <tr>
    83           <td>gmake</td>
    84           <td>3.81</td>
    85           <td><a href="./doc-files/gmake/COPYING">GPL v2</a></td>
    86           <td><a href="http://savannah.gnu.org/projects/make">
    87               http://savannah.gnu.org/projects/make</a></td>
    88           <td>command run by the `xdc` command to create and build packages</td>
    89         </tr>
    90         <tr>
    91           <td>J2SE Runtime Environment(JRE)</td>
    92           <td>1.5.0_22</td>
    93           <td><a href="./doc-files/java/LICENSE.rtf">Sun Microsystems, Inc. Binary Code License Agreement</a></td>
    94           <td><a href="http://java.sun.com/j2se/1.5.0">
    95               http://java.sun.com/j2se/1.5.0</a></td>
    96           <td>XDCtools core functionality is implemented in Java. Also required by the Rhino JavaScript engine shipped with XDCtools.</td>
    97         </tr>
    98         </table>
    99     *  @p
   100     *
   101     *  Although the following tools are not required, they are optionally shipped
   102     *  with XDCtools distributions to ensure consistent behavior across various
   103     *  development platforms.
   104     *  @p(html)
   105         <table border="1">
   106         <tr>
   107           <th>Exe</th>
   108           <th>Version</th>
   109           <th>License</th>
   110           <th>From</th>
   111           <th>Description</th>
   112         </tr>
   113         <tr>
   114           <td>zip, unzip</td>
   115           <td>2.3 and 5.50</td>
   116           <td><a href="./doc-files/zip/LICENSE.txt">info-zip</a></td>
   117           <td><a href="http://www.info-zip.org">http://www.info-zip.org</a></td>
   118           <td>command line utilities to zip and unzip package releases</td>
   119         </tr>
   120         <tr>
   121           <td>tar</td>
   122           <td>1.13</td>
   123           <td><a href="./doc-files/tar/COPYING">GPL v2</a></td>
   124           <td><a href="http://www.gnu.org/software/tar">
   125               http://www.gnu.org/software/tar</a></td>
   126           <td>command line utilities to archive package directories</td>
   127         </tr>
   128         <tr>
   129           <td>sh</td>
   130           <td>cygwin 1.5.25-15</td>
   131           <td><a href="./doc-files/cygwin/COPYING.txt">GPL v2</a></td>
   132           <td><a href="http://cygwin.com">http://cygwin.com</a></td>
   133           <td>(Windows only) korn shell compatible shell used by GNU make</td>
   134         </tr>
   135         </table>
   136     *  @p
   137     *  All other files that are part of XDCtools are licensed under either
   138     *  {@link ./doc-files/eclipse/epl-v10.html EPL v1.0} or dual-licensed under
   139     *  {@link ./doc-files/eclipse/edl-v10.html EDL v1.0}.
   140     */
   141    package xdc.shelf [1, 0, 0] {
   142    }


[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.


                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) 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. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright [yyyy] [name of copyright owner]

   Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.


                          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"


   =========================================================================
   ==  NOTICE file corresponding to section 4(d) of the Apache License,   ==
   ==  Version 2.0, in this case for the Apache XmlBeans distribution.    ==
   =========================================================================

   This product includes software developed by
   The Apache Software Foundation (http://www.apache.org/).

   Portions of this software were originally based on the following:
     - software copyright (c) 2000-2003, BEA Systems, <http://www.bea.com/>.

   Aside from contributions to the Apache XMLBeans project, this
   software also includes:

    - one or more source files from the Apache Xerces-J and Apache Axis
      products, Copyright (c) 1999-2003 Apache Software Foundation

    - W3C XML Schema documents Copyright 2001-2003 (c) World Wide Web
      Consortium (Massachusetts Institute of Technology, European Research
      Consortium for Informatics and Mathematics, Keio University)

    - jaxen, Copyright 2003 (c) The Werken Company.

    - resolver.jar from Apache Xml Commons project,
      Copyright (c) 2001-2003 Apache Software Foundation


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.


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    }


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,308; 11-16-2010 11:20:50; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   189     */
   190


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    //! Generic xdc-script (xs) command
    13    metaonly interface ICmd {
    14
    15        //! Usage for this command
    16        config String usage[] = [];
    17
    18        //! 'xs' shell entry point
    19        final function main(args);
    20
    21        //! 'xs' script entry point
    22        final function exec(args);
    23
    24    instance:
    25
    26        //! Underlying implementation
    27        Any run(Cmdr.Instance cmdr, String args[]);
    28    }
    29    /*
    30     *  @(#) xdc.tools; 1, 0, 0, 0,308; 11-16-2010 11:20:50; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    31     */
    32


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,308; 11-16-2010 11:20:50; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    25     */
    26


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,196; 11-16-2010 11:20:54; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   111     */
   112


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         *  Language to document. Deprecated.
   199         */
   200        @CommandOption("l")
   201        config String language = null;
   202
   203        /*!
   204         *  Don't include dependent packages. Deprecated.
   205         *
   206         */
   207        @CommandOption("L")
   208        config Bool lopt = false;
   209
   210    }
   211
   212
   213    /*
   214     *  @(#) xdc.tools.cdoc; 1, 0, 0, 0,196; 11-16-2010 11:20:54; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   215     */
   216


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,196; 11-16-2010 11:20:54; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
   271     */
   272


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,196; 11-16-2010 11:20:54; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    25     */
    26


HTML Example

Example of embedded HTML documentation

This HTML page is delivered in the 'doc-files' directory of the package 'xdc.tools.cdoc'.


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,195; 11-16-2010 11:20:54; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    22     */
    23


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,195; 11-16-2010 11:20:55; /db/ztree/library/trees/xdc/xdc-v53x/src/packages/
    43     */
    44


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,194; 10-15-2010 11:39:58; /db/ztree/library/trees/xdctools/xdctools-d45x/src/
   149     */
   150


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,194; 10-15-2010 11:39:58; /db/ztree/library/trees/xdctools/xdctools-d45x/src/
    23     */
    24


module xdc.tools.configuro.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     *  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. By default, the output
    85         *  directory has the same name as the configuration script, minus the
    86         *  `.cfg` extension, within the same parent directory as this script.
    87         */
    88        @CommandOption("o")
    89        config String output = null;
    90
    91        /*!
    92         *  Name of the RTSC target module
    93         *
    94         *  The name of a RTSC target module to use, for example
    95         *  `ti.targets.C64P`.
    96         *
    97         *  If no `config.bld` file is given, then this is a required
    98         *  parameter.
    99         *
   100         *  If a `config.bld` file is given then this parameter is optional,
   101         *  and by default the target will be
   102         *  {@link xdc.bld.BuildEnvironment#targets `Build.targets[0]`} from the
   103         *  user's `config.bld`. If `Build.targets` contains more than one entry,
   104         *  then this option can be used to override that default.
   105         */
   106        @CommandOption("t")
   107        config String target = null;
   108
   109        /*!
   110         *  Root directory of the code generation tools
   111         *
   112         *  The path to the installation directory of the compiler and linker
   113         *  for the selected target. The definition of "installation directory"
   114         *  can vary from compiler to compiler, but is most commonly the
   115         *  directory that contains a "bin" subdirectory.
   116         *
   117         *  If no `config.bld` file is given, then this is a required
   118         *  parameter.
   119         *
   120         *  If a `config.bld` file is given then this parameter is optional,
   121         *  and by default the compiler will be the one configured there.
   122         *  This option can still be used, to override the default established
   123         *  in `config.bld`.
   124         */
   125        @CommandOption("c")
   126        config String rootdir = null;
   127
   128        /*!
   129         *  Name of the RTSC platform package (and optionally instance)
   130         *
   131         *  The name of a RTSC platform package to use, using the syntax
   132         *  `my.pkg.name` or `my.pkg.name:instanceName`. For example,
   133         *  `ti.platforms.sim64Pxx` or `ti.platforms.generic:custom`.
   134         *
   135         *  This is an optional parameter, and by default the platform is
   136         *  the one that the selected target names as its default. The user
   137         *  may override this default in their `config.bld` or by using this
   138         *  parameter.
   139         *
   140         *  The optional `:instanceName` suffix names a pre-configured variant
   141         *  of the platform, which can be set up either in the user's
   142         *  `config.bld` or in the platform package itself. For more details, see
   143         *  {@link xdc.bld.BuildEnvironment#platformTable `Build.platformTable`}
   144         *  and the {@link xdc.platform.IPlatform `IPlatform`} interface.
   145         */
   146        @CommandOption("p")
   147        config String platform = null;
   148
   149        /*!
   150         *  Build profile to use
   151         *
   152         *  The name of the build profile to use for the RTSC content, for
   153         *  example 'release' or 'debug'. The list of allowed profiles is
   154         *  determined by the RTSC target module named.
   155         */
   156        @CommandOption("r")
   157        config String profile = 'release';
   158
   159        /*!
   160         *  Read build environment from the named `config.bld` file
   161         *
   162         *  A `config.bld` file can optionally be used to hold the values
   163         *  of the target, compiler root directory, platform, and other
   164         *  more advanced options. This is a convenient way to share a common
   165         *  build environment between multiple projects.
   166         *
   167         *  The format of the file is JavaScript statements with the XDCscript
   168         *  extensions. The script should set the properties of the
   169         *  {@link xdc.bld.BuildEnvironment `Build`} global object.
   170         *
   171         *  If no `config.bld` file is given then the target and compiler
   172         *  root directory are required command-line parameters.
   173         */
   174        @CommandOption("b")
   175        config String configbld = null;
   176
   177        /*!
   178         *  Use a `config.bld` found along the package path
   179         *
   180         *  Find a `config.bld` by searching the package path, instead of
   181         *  via an explicit pathname. Looks for a file named `config.bld` in
   182         *  any of the directories named along the package path, in order. The
   183         *  directories are not searched recursively.
   184         */
   185        @CommandOption("cb")
   186        config Bool searchForConfigBld = false;
   187
   188        /*!
   189         *  Set a Java property in the configuration script
   190         *
   191         *  Allows values to be injected from the command line into the
   192         *  `config.bld` file. For example, the option `-Dmyprop=myval`
   193         *  creates a property named `myprop` with string value `"myval"`.
   194         *  This can be read in `config.bld` using the XDCscript syntax
   195         *  `environment["myprop"]`.
   196         */
   197        @CommandOption("D")
   198        config String defines[] = [];
   199
   200        /*!
   201         *  Set the name of the RTSC runtime package
   202         *
   203         *  The name of a package containing pre-built libraries containing
   204         *  the {@link xdc.runtime} modules.  If this parameter is `null` (or
   205         *  `undefined`) the name of the rts package is taken from the target
   206         *  (`{@link xdc.bld.ITarget#rtsName}`).  If this parameter is set to
   207         *  the empty string (""), then no rts package is included in the
   208         *  configuration.  Finally, if this parameter is non-`null` and
   209         *  non-empty, it should be the name of a package along the package
   210         *  path that can supply pre-built versions of the modules in the
   211         *  `{@link xdc.runtime}` package.
   212         *
   213         *  @see xdc.bld.ITarget#rtsName
   214         *  @see xdc.bld.Executable#Attrs
   215         */
   216        @CommandOption("rtsName")
   217        config String rtsName = null;
   218
   219        /*!
   220         *  ======== cfgArgs ========
   221         *  Optional arguments passed to configuration script
   222         *
   223         *  Lets the user pass values into the configuration script from the
   224         *  command line. The argument is an expression in JavaScript syntax.
   225         *  Its value is available in the configuration script under the name
   226         *  `Program.build.cfgArgs`.
   227         *
   228         *  The JavaScript expression is evaluated in the configuration domain
   229         *  after the platform package is imported, immediately before calling
   230         *  the user's configuration script.
   231         *
   232         *  This string has the same effect as the `cfgArgs` string in
   233         *  `{@link xdc.bld.Executable.Attrs}`.
   234         *
   235         *  You can pass multiple values to configuration scripts using the
   236         *  syntax of a JavaScript `Object` constant:
   237         *  @p(code)
   238         *      xs xdc.tools.configuro --cfgArgs "{foo:'hello';bar:2}" ... app.cfg
   239         *  @p
   240         *
   241         *  The configuration script can read the various fields as, e.g.:
   242         *  @p(code)
   243         *      if (Program.build.cfgArgs.foo == "hello") {
   244         *          :
   245         *      }
   246         *  @p
   247         *
   248         *  Note the use of single quotes around the string value `'hello'` on
   249         *  the command line. This is the easiest way to quote a JavaScript
   250         *  string constant that is compatible with the enclosing double
   251         *  quotes, which are for the benefit of the command line shell.
   252         *
   253         *  @see xdc.bld.Executable#Attrs
   254         */
   255        @CommandOption("cfgArgs")
   256        config String cfgArgs = null;
   257
   258        /*!
   259         *  Linker command file template
   260         *
   261         *  If this option is provided it overrides the template supplied by
   262         *  the platform, giving the caller complete control over the generated
   263         *  linker command file.
   264         *
   265         *  @see xdc.cfg.Program#linkTemplate
   266         */
   267        @CommandOption("linkTemplate")
   268        config String linkTemplate = null;
   269
   270        /*!
   271         *  Show verbose details during build
   272         *
   273         *  This option produces the same verbose output as the `xdc` command
   274         *  with the `XDCOPTIONS=v` parameter.
   275         */
   276        @CommandOption("v")
   277        config Bool verbose = false;
   278
   279        /*!
   280         *  Minimize details during build
   281         *
   282         *  This option produces the same output as the `xdc` command
   283         *  with the `XDCOPTIONS=qq` parameter.
   284         */
   285        @CommandOption("q")
   286        config Bool quiet = false;
   287
   288        /*!
   289         *  Exclude packages matching regexp from compatibility checking
   290         *
   291         *  A JavaScript regular expression that is used to select packages that
   292         *  should be excluded from the set of packages checked during
   293         *  configuration.
   294         *
   295         *  @see xdc.cfg
   296         */
   297        @CommandOption("x")
   298        config String exclude = null;
   299
   300        /*!
   301         *  Treat package version incompatibilites as warnings
   302         *
   303         *  If set to "`true`", force any incompatibilities detected to be
   304         *  treated as warnings only; otherwise incompatibilities are fatal.
   305         *
   306         *  @see xdc.cfg
   307         */
   308        @CommandOption("w")
   309        config Bool warn = false;
   310
   311        /*!
   312         *  Read infile.tcf in addition to infile.cfg
   313         *
   314         *  The .tcf file optionally configures DSP/BIOS 5.X . This allows a
   315         *  single program to use both DSP/BIOS 5.X and RTSC-based content.
   316         */
   317        @CommandOption("tcf")
   318        config Bool hasTconf = false;
   319
   320        /*!
   321         *  Add the DSP/BIOS 5.X include directory to the compiler options
   322         *
   323         *  The directory is located in "include" in package "ti.bios".
   324         */
   325        @CommandOption("bios5")
   326        config Bool bios5Incs = false;
   327
   328        /*!
   329         *  Create the build model generated output files but do not build
   330         *
   331         *  This option creates the output directory and key generated files
   332         *  but does not process the user's configuration script. It is used
   333         *  by internal tooling to snapshot the RTSC build settings implied by
   334         *  the configuro command line parameters.
   335         */
   336        @CommandOption("pkg")
   337        config Bool mkPkgOnly = false;
   338
   339        /*!
   340         *  Create the configuration generated source files but do not build
   341         *
   342         *  This option runs the configuration step but does not compile the
   343         *  generated source files.  This option is used
   344         *  by internal tooling to eliminate unnecessary build steps.
   345         */
   346        @CommandOption("generationOnly")
   347        config Bool generationOnly = false;
   348
   349        /*!
   350         *  Add compile options for C files in the configuration package
   351         *
   352         *  This option accepts one or more compiler options that are added to
   353         *  the compiler command line when compiling C files in the generated
   354         *  configuration package.
   355         *  If multiple compiler options are given, the whole string containing
   356         *  options must be surrounded by quotes.
   357         */
   358        @CommandOption("compileOptions")
   359        config String compileOptions = "";
   360
   361        /*!
   362         *  Set the name of the compiler options file (default is "compiler.opt")
   363         */
   364        @CommandOption("oc")
   365        config String compilerOptionsFile = "compiler.opt";
   366
   367        /*!
   368         *  Set the name of the linker command file (default is "linker.cmd")
   369         */
   370        @CommandOption("ol")
   371        config String linkerCommandFile = "linker.cmd";
   372
   373        /*!
   374         *  Generate and build the configuration package
   375         */
   376        int gen(String infile);
   377    }
   378    /*
   379     *  @(#) xdc.tools.configuro; 1, 0, 0, 0,192; 10-15-2010 11:40:11; /db/ztree/library/trees/xdctools/xdctools-d45x/src/
   380     */
   381


package xdc.tools.configuro

     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.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    }
    21    /*
    22     *  @(#) xdc.tools.configuro; 1, 0, 0, 0,192; 10-15-2010 11:40:12; /db/ztree/library/trees/xdctools/xdctools-d45x/src/
    23     */
    24


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.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.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,189; 10-15-2010 11:41:10; /db/ztree/library/trees/xdctools/xdctools-d45x/src/
   277     */
   278


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,189; 10-15-2010 11:41:10; /db/ztree/library/trees/xdctools/xdctools-d45x/src/
    24     */
    25


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,189; 10-15-2010 11:41:16; /db/ztree/library/trees/xdctools/xdctools-d45x/src/
    70     */
    71


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,189; 10-15-2010 11:41:17; /db/ztree/library/trees/xdctools/xdctools-d45x/src/
    26     */
    27


module xdc.tools.platformWizard.Main

     1    /*
     2     *  Copyright 2010 by Texas Instruments Incorporated.
     3     *
     4     */
     5
     6    package xdc.tools.platformWizard;
     7
     8    /*
     9     * @_nodoc
    10     */
    11    metaonly module Main inherits xdc.tools.ICmd {
    12
    13        override config String usage[] = [
    14            ' -r <repository for platform package>',
    15            ' -x <XML schema file>',
    16                    '<platform package name>'
    17        ];
    18
    19    instance:
    20
    21            @CommandOption("r")
    22            config String repositoryPath = null;
    23
    24            @CommandOption("x")
    25            config String schemaFile = null;
    26
    27        override Any run(xdc.tools.Cmdr.Instance cmdr, String args[]);
    28
    29    }
    30    /*
    31     *  @(#) xdc.tools.platformWizard; 1,0,0,84; 10-15-2010 11:41:22; /db/ztree/library/trees/xdctools/xdctools-d45x/src/
    32     */
    33


package xdc.tools.platformWizard

     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.mkpkg;
    13
    14    /*
    15     * @_nodoc
    16     */
    17    package xdc.tools.platformWizard {
    18        module Main;
    19    }
    20
    21    /*
    22     *  @(#) xdc.tools.platformWizard; 1,0,0,84; 10-15-2010 11:41:23; /db/ztree/library/trees/xdctools/xdctools-d45x/src/
    23     */
    24


module xdc.tools.platformWizard.memoryMap.Main

     1    /*
     2     *  Copyright 2010 by Texas Instruments Incorporated.
     3     *
     4     */
     5
     6    package xdc.tools.platformWizard.memoryMap;
     7
     8    /*
     9     * @_nodoc
    10     */
    11    metaonly module Main inherits xdc.tools.ICmd {
    12
    13        override config String usage[] = [
    14            ' -m <Module Name>',
    15            ' -r <Register Settings>'
    16        ];
    17
    18    instance:
    19
    20            @CommandOption("m")
    21            config String deviceModuleName = null;
    22
    23            @CommandOption("r")
    24            config String registerSettings = null;
    25
    26        override Any run(xdc.tools.Cmdr.Instance cmdr, String args[]);
    27
    28    }
    29    /*
    30     *  @(#) xdc.tools.platformWizard.memoryMap; 1,0,0,84; 10-15-2010 11:41:28; /db/ztree/library/trees/xdctools/xdctools-d45x/src/
    31     */
    32


package xdc.tools.platformWizard.memoryMap

     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     * @_nodoc
    15     */
    16    package xdc.tools.platformWizard.memoryMap {
    17        module Main;
    18    }
    19
    20    /*
    21     *  @(#) xdc.tools.platformWizard.memoryMap; 1,0,0,84; 10-15-2010 11:41:28; /db/ztree/library/trees/xdctools/xdctools-d45x/src/
    22     */
    23


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 element is a file inside the product that may be referenced
    38         *  from a global table of contents.
    39         *
    40         *  @field(label)    Summary description of help element
    41         *  @field(filePath) Path to help documentation relative to
    42         *                   directory specified in {@link #docsLoc}
    43         *  @field(tocFile)  Flag indicates whether the element is a
    44         *                   table of content(TOC) file. Tools may
    45         *                   process TOC files in a special way. For
    46         *                   example a tool to generate eclipse plugins may
    47         *                   want to copy the TOC file in the plugin folder
    48         *                   for integrating with eclipse help.
    49         */
    50        struct HelpToc {
    51            String label;       /*! Help element description */
    52            String filePath;    /*! Path to help doc */
    53            Bool   tocFile;     /*! Indicates whether element is a TOC file  */
    54        };
    55
    56        /*!
    57         *  ========= Target ==============
    58         *  Structure containing information on RTSC targets
    59         *
    60         *  Products may specify RTSC target modules by associating
    61         *  them with device name and family regular expressions. This
    62         *  information may be leveraged by tools to derive the RTSC target
    63         *  given a device name and family. Devices implement the
    64         *  {@link xdc.platform.ICpuDataSheet} interface. Devices may be
    65         *  grouped in a family and delivered as a package.
    66         *
    67         *  For example, the device module  TMS320DA830 in the package
    68         *  `ti.catalog.C6000` may be associated  with a RTSC target
    69         *  `ti.targets.C674` by setting  `deviceNamePattern` to `TMS320DA8*`,
    70         *  `deviceFamilyPattern` to `C6*`, `packageName` to
    71         *  `ti.targets` and `baseTargetName` to `C674`.
    72         *
    73         *  @field(deviceNamePattern)   A regular expression for device names
    74         *  @field(deviceFamilyPattern) A regular expression for device families
    75         *  @field(packageName)         The name of a package containing a
    76         *                              target module that  can be used with
    77         *                              the  devices that match the
    78         *                              device name and family patterns
    79         *  @field(baseTargetName)      The name of the module
    80         *                              (without the package prefix) in
    81         *                              the package named by `packageName`.
    82         */
    83        struct Target {
    84            String deviceNamePattern;   /*! Device name regex eg. MSP430*  */
    85            String deviceFamilyPattern; /*! Device family regex eg. C6* */
    86            String packageName;         /*! Package containing RTSC target  */
    87            String baseTargetName;      /*! Name of RTSC target module */
    88        };
    89
    90        /*!
    91         *  ======== UrlDescriptor ========
    92         *  URL Descriptor structure
    93         *
    94         *  @field(url)  Uniform Resource Locator(URL)
    95         *  @field(text) Summary text for the URL
    96         */
    97        struct UrlDescriptor {
    98            String url;     /*! Uniform Resource Locator(URL) */
    99            String text;    /*! Summary text for the URL */
   100        };
   101
   102        /*!
   103         *  ======== name ========
   104         *  Product name
   105         *
   106         *  String containing product name eg. System BIOS
   107         */
   108        config String name;
   109
   110        /*!
   111         *  ======== id ========
   112         *  A unique product id
   113         *
   114         *  For example, product developers may choose to  follow namespace
   115         *  conventions for Java packages or Eclipse plugins to specify a
   116         *  unique id like `org.eclipse.rtsc.xdctools.product`.
   117         *
   118         */
   119        config String id;
   120
   121
   122        /*!
   123         *  ======== version ========
   124         *  Product version
   125         *
   126         *  The product version should follow the format
   127         *  -`major.minor.service.qualifier`  where
   128         *  `major`,`minor` and `service` are integers and
   129         *  `qualifier` is a string. Example - 3.16.02.31-eng.
   130         *
   131         *  Products may  specify their own guidelines for
   132         *  updating `major`,`minor`,`service` and `qualifier` portions of the
   133         *  version number as long as they are unique for the product.
   134         *  Products may also choose to follow popular versioning conventions
   135         *  like those followed for versioning Eclipse plugins.
   136         */
   137        config String version;
   138
   139        /*!
   140         *  ======== featureId ========
   141         *  A unique feature id
   142         *
   143         *  A feature maybe used by a system to install product upgrades.
   144         *  Typically a system will look at various versions of a
   145         *  feature available in the system and allow the user to upgrade
   146         *  to the latest version. The product developer can use the `featureId`
   147         *  to manage the granularity of product upgrades in a system. For
   148         *  example the version `3.20.0.00` for product
   149         *  `org.eclipse.rtsc.xdctools.product` may have the `featureId`
   150         *  `org.eclipse.rtsc.xdctools.product_3.20`.
   151         *  The product developer may allow the upgrade system to pick up
   152         *  patch releases to `3.20.0.00` release by specifying different
   153         *  versions of the product (eg. 3.20.0.01) with `featureId`
   154         *  `org.eclipse.rtsc.xdctools.product_3.20`
   155         */
   156        config String featureId;
   157
   158
   159        /*!
   160         *  ======== updateSite ========
   161         *  Update site for product
   162         *
   163         *  @field(url) the `url` field should contain the URL containing
   164         *  product upgrades.
   165         *
   166         *  @field(text) the `text` field should contain summary description of
   167         *  the update site
   168         */
   169        config  UrlDescriptor updateSite;
   170
   171
   172        /*!
   173         *  ======== companyName ========
   174         *  Name of company releasing product
   175         *
   176         *  Example : "Texas Instruments"
   177         */
   178        config String companyName;
   179
   180        /*!
   181         *  ======== productDescriptor ========
   182         *  Product description
   183         *
   184         *  @field(url) the `url` field should contain the URL of the organization
   185         *  releasing the product.
   186         *
   187         *  @field(text) the `text` field should contain summary description of
   188         *  the product
   189         */
   190        config UrlDescriptor productDescriptor;
   191
   192        /*!
   193         *  ======== licenseDescriptor ========
   194         *  License information for product
   195         *
   196         *  @field(url) field should contain the URL containing the
   197         *  license text.
   198         *
   199         *  @field(text) field should contain a summary description of the license
   200         */
   201        config UrlDescriptor licenseDescriptor;
   202
   203        /*!
   204         *  ======== copyRightNotice ========
   205         *  Copyright notice for product
   206         *
   207         */
   208        config String copyRightNotice;
   209
   210        /*!
   211         *  ======== repositoryArr ========
   212         *  Repositories contained in product
   213         *
   214         *  Repositories are specified relative to the product installation
   215         *  directory.
   216         */
   217        config String repositoryArr[];
   218
   219        /*!
   220         *  ======== docsLoc ========
   221         *  Directories containing documents in the product
   222         *
   223         *  Directories are specified relative to the product installation
   224         *  directory.
   225         */
   226        config String docsLocArr[];
   227
   228        /*!
   229         *  ======== templateModule ========
   230         *  Name of module implementing {@link xdc.tools.product.IProductTemplate}
   231         *
   232         *  Template module should be delivered
   233         *  in the repositories defined in {@link #repositoryArr}
   234         */
   235        config String templateModule;
   236
   237        /*!
   238         *  ======== productViewModule ========
   239         *  Name of module implementing {@link xdc.tools.product.IProductView}
   240         *
   241         *  Product view module should be delivered
   242         *  in the repositories defined in {@link #repositoryArr}
   243         */
   244        config String productViewModule;
   245
   246        /*!
   247         *  ======== bundleName ========
   248         *  Product bundle name
   249         *
   250         *  Product bundle name is embedded in the top level folder name of
   251         *  the product. Example: The top level folder for XDCtools version
   252         *  3.16.02.31-eng is `xdctools_3_16_02_31-eng`. In this case the
   253         *  bundle name is `xdctools`.
   254         *  The bundle name maybe used by tools to discover the product
   255         *  installed on a filesystem.
   256         */
   257        config String bundleName;
   258
   259        /*!
   260         *  ======== targetArr ========
   261         *  RTSC target modules contained in product
   262         *
   263         *  The RTSC target modules should be delivered
   264         *  in the repositories defined in {@link #repositoryArr}
   265         *
   266         */
   267        config Target targetArr[];
   268
   269
   270        /*!
   271         *  ======== helpTocArr ========
   272         *  Array of table of contents elements in product
   273         *
   274         *  Tools generating table of contents are required
   275         *  to preserve the order of elements specified in this array
   276         */
   277        config HelpToc helpTocArr[];
   278
   279
   280        /*!
   281         *  ======== tocIndexFile ========
   282         *  Top level index file referred in table of contents
   283         */
   284        config String tocIndexFile;
   285
   286
   287        /*!
   288         *  ======== exclusive ========
   289         *  Indicates whether product allows existence of multiple
   290         *  versions in a system
   291         *
   292         *  When flag is set to `true` it indicates that only one
   293         *  version of the product can be active in the system. Otherwise
   294         *  the system can handle multiple versions of the same product.
   295         */
   296        config Bool exclusive = false;
   297
   298        /*!
   299         *  ======== otherFiles ========
   300         *  Array of paths to files that describe the product
   301         *
   302         *  A product may wish to supply files that describing certain aspects
   303         *  of itself. For example a product may provide text, images and video
   304         *  files that provide branding information for the product.
   305         *  These files may then be consumed by tools like IDE's via
   306         *  hooks defined in the IDE framework.
   307         *  The file path is defined relative to the directory containing the
   308         *  implementation  of this interface
   309         *
   310         */
   311        config String otherFiles[];
   312
   313    }
   314    /*
   315     *  @(#) xdc.tools.product; 1, 0, 0,40; 10-15-2010 11:41:34; /db/ztree/library/trees/xdctools/xdctools-d45x/src/
   316     */
   317


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        /*!
    26         *  ======== FileDesc ========
    27         *  Structure defining properties of a file included in an example
    28         *
    29         *  @field(path)                    Path to file relative to the package
    30         *                                  containing the implementation of
    31         *                                  `IProductTemplate`
    32         *  @field(excludeFromBuild)        Flag indicating whether file
    33         *                                  should be excluded from build inside
    34         *                                  an IDE project
    35         *  @field(openOnCreation)          Flag indicating whether the file
    36         *                                  should be opened when a project
    37         *                                  containing the example file is created
    38         *                                  by the IDE.
    39         *  @field(copyIntoConfiguration)   Flag indicating whether the file
    40         *                                  should be copied into RTSC
    41         *                                  configuration. This flag
    42         *                                  applies only when the `isHybrid`
    43         *                                  flag of the {@link #TemplateInfo template} is set to
    44         *                                  `false`.
    45         *
    46         */
    47        struct FileDesc {
    48            String path;             /*! Path to file */
    49            Bool   excludeFromBuild; /*! Indicates whether file should be
    50                                         excluded from build
    51                                      */
    52            Bool   openOnCreation;   /*! Indicates whether file should be
    53                                         opened on project creation
    54                                      */
    55            Bool   copyIntoConfiguration; /*! Indicates whether file should be
    56                                           *   copied into RTSC configuration
    57                                           */
    58        };
    59
    60        /*!
    61         *  ======== Filter ========
    62         *  Structure defining filter properties for an example
    63         *
    64         *  This structure allows example providers to define
    65         *  constraints for their examples.
    66         *  IDEs may use the `Filter` properties of an example
    67         *  to decide whether the example should be presented to the user.
    68         *
    69         *  The filter is evaluated by performing an 'AND' operation
    70         *  on its individual elements. In other words all the defined
    71         *  elements must evaluate to `true` for the filter to evaluate
    72         *  to `true`.
    73         *
    74         *  Example {@link #TemplateInfo providers} typically define an
    75         *  array of filters. The filter array is evaluated using the 'OR' operation.
    76         *
    77         *  The filter allows the user to define the NOT property by
    78         *  inserting a "~" character at the start of the string. For
    79         *  example if the deviceFamily field is set to "~MSP430" the example
    80         *  will be displayed for all device families except MSP430.
    81         *
    82         *  @field(deviceFamily)   String indicating the device family
    83         *                         eg. "MSP430","C6000"
    84         *  @field(deviceVariant)  String indicating device variant
    85         *                         eg. "C674X", "CortexA8"
    86         *  @field(deviceId)       String indicating the device part number
    87         *                         eg. "TMS320C6747"
    88         *  @field(endianness)     String indicating the device endianness
    89         *                         eg. "little", "big"
    90         *  @field(toolChain)      String indicating the tool chain
    91         *                         eg. "TI", "GNU"
    92         *  @field(outputFormat)   String indicating the object file format
    93         *                         eg. "COFF", "ELF"
    94         */
    95        struct Filter {
    96            String deviceFamily;
    97            String deviceVariant;
    98            String deviceId;
    99            String endianness;
   100            String toolChain;
   101            String outputFormat;
   102        };
   103
   104        /*!
   105         *  ======== TemplateInfo ========
   106         *  TemplateInfo structure
   107         *
   108         *  @field(title)             String containing the title of the template
   109         *  @field(fileList)          Array of {@link #FileDesc} defining the
   110         *                            properties of the files contributed by this example.
   111         *  @field(description)       String containing  description of example
   112         *  @field(target)            String containing RTSC target
   113         *  @field(platform)          String containing RTSC platform
   114         *  @field(buildProfile)      String containing RTSC build profile
   115         *  @field(linkerCommandFile) Linker command file for the example. If
   116         *                            this is set to the empty string then no
   117         *                            linker command file is added by the IDE
   118         *                            to the example. If this is not defined
   119         *                            then the wizard picks the default
   120         *                            linker command file for the selected device.
   121         *  @field(requiredProducts)  Products required to build this
   122         *                            example. Products are  identified by
   123         *                            their globally unique
   124         *                            {@link xdc.tools.product.IProduct#id}
   125         *                            eg. 'com.ti.bios'. Dependency on a
   126         *                            minimum version of a product maybe
   127         *                            defined in the following manner
   128         *                            : <product-id>:<min-version>
   129         *  @field(groups)            Array of strings referring example groups
   130         *                            that a particular example may
   131         *                            belong. Example providers may want to
   132         *                            provide examples that are part of an
   133         *                            existing example group eg."Empty Projects"
   134         *                            that are defined elsewhere. The
   135         *                            groups are identified by an unique id.
   136         *  @field(configOnly)        Flag indicating to the IDE
   137         *                            whether example contributes only
   138         *                            to a RTSC configuration project.
   139         *  @field(isHybrid)          Flag indicating to the IDE
   140         *                            whether example contains RTSC
   141         *                            configuration  and target
   142         *                            content files in one project.
   143         *                            If this field is set to `true`
   144         *                            then the IDE consuming this example will
   145         *                            create one project with all the
   146         *                            files. Otherwise multiple projects will
   147         *                            be created - one containing the
   148         *                            target content and the other containing
   149         *                            the RTSC configuration files. This flag
   150         *                            is applies only when `configOnly`
   151         *                            flag is set to `false`.
   152         *  @field(filterArr)         Array of {@link #Filter}. Used to specify
   153         *                            the constraints for a particular
   154         *                            example. The filter array is evaluated using
   155         *                            an OR operation on the individual array
   156         *                            elements. Note that individual elements
   157         *                            within a {@link #Filter filter} is evaluated with the
   158         *                            'AND' operation.
   159         *
   160         */
   161        struct TemplateInfo {
   162            String   title;              /*! Title of example */
   163            FileDesc fileList[];         /*! List of files along with properties
   164                                          * for example
   165                                          */
   166            String   description;        /*! Description of example */
   167            String   target;             /*! RTSC target */
   168            String   platform;           /*! RTSC platform */
   169            String   buildProfile;       /*! RTSC build profile */
   170            String   linkerCommandFile;  /*! Linker command file for the example */
   171            String   requiredProducts[]; /*! List of products required to build
   172                                          *  this example
   173                                          */
   174            String   groups[];           /*! Array of group ids */
   175            Bool     legacyTcf;
   176            Bool     configOnly;         /*! Indicates whether only a RTSC
   177                                          *  configuration project should
   178                                          *  be created for this example.
   179                                          */
   180            Bool     isHybrid;           /*! Indicates whether application and
   181                                          * configuration content exists in
   182                                          * one project
   183                                          */
   184            Filter   filterArr[];        /*! Array of filters for example */
   185        };
   186
   187
   188        /*!
   189         *  ======== TemplateGroup ========
   190         *  TemplateGroup structure
   191         *
   192         *  This structure maybe used to define a hierarchy of examples
   193         *  for the product. Examples maybe logically organized into groups
   194         *  with an unique `id` and may specify membership of other groups
   195         *  by referring to their ids in the `groups` array. In this manner
   196         *  the example producer can define a tree topology of examples for
   197         *  their product.  Once the template groups are defined the
   198         *  individual examples may specify their membership of a template
   199         *  group in the `groups` array of {@link #TemplateInfo}. The example
   200         *  provider may specify all the defined groups for their product in
   201         *  {@link #templateGroupArr}.
   202         *
   203         *  @field(id) Unique id for the template group
   204         *  @field(name) Name of the group
   205         *  @field(description) Description of the group
   206         *  @field(groups) Array of group ids used to specify
   207         *                 membership of other groups.
   208         *
   209         */
   210
   211       struct TemplateGroup {
   212            String id;
   213            String name;
   214            String description;
   215            String groups[];
   216       };
   217
   218
   219        /*!
   220         *  ======== templateArr ========
   221         *  Examples contained in the product
   222         *
   223         */
   224        config TemplateInfo templateArr[];
   225
   226
   227        /*!
   228         *  ======== templateGroupArr ========
   229         *  Array fo template group ids
   230         *
   231         *  This maybe optionally specified by example providers who want to
   232         *  organize their examples in groups.
   233         */
   234
   235        config TemplateGroup templateGroupArr[] = [];
   236
   237    }
   238    /*
   239     *  @(#) xdc.tools.product; 1, 0, 0,40; 10-15-2010 11:41:34; /db/ztree/library/trees/xdctools/xdctools-d45x/src/
   240     */
   241


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
    19     *  logical groups of RTSC modules delivered with it. Implementations
    20     *  maybe consumed within development environments like IDE's to render a
    21     *  graphical tree view of the product comprising of these groups.
    22     *  This is an experimental interface and is subject to change.
    23     *
    24     */
    25    metaonly interface IProductView
    26    {
    27        /*!
    28         *  ======== ProductElemDesc ========
    29         *  ProductElemDesc structure
    30         *
    31         *  Structure that should be used by the implementor to
    32         *  define the logical tree "view" of the product. The product view is
    33         *  composed of elements that are either modules or groups.
    34         *  Groups can contain other groups or modules. The implementor will
    35         *  start with a root node and then logically build a tree
    36         *  comprising of groups and modules.
    37         *
    38         *  @field(elemName)        Name of element. Elements can be either
    39         *                          groups or modules
    40         *  @field(moduleName)      In case of a leaf node this field will
    41         *                          contain the module name. For intermediate
    42         *                          tree nodes the module name will be set to
    43         *                          `null`
    44         *  @field(iconFileName)    The name of the icon file that is associated
    45         *                          with this element
    46         *  @field(elemArray)       Array used to define children of a node.
    47         */
    48        metaonly struct ProductElemDesc {
    49            String elemName;             /*! Name of group or module */
    50            String moduleName;           /*! Name of module */
    51            String iconFileName;         /*! Icon file name representing element */
    52            ProductElemDesc elemArray[]; /*! Array of `ProductElemDesc` */
    53        };
    54
    55        /*!
    56         *  ======== getProductDescriptor ========
    57         *  Return product descriptor
    58         *
    59         *  This method is typically invoked by development tools like IDE's
    60         *  to get the product view tree structure.
    61         *
    62         *  @a(returns)
    63         *  Returns root node of the tree of `{@link #ProductElemDesc}` structures
    64         */
    65        ProductElemDesc getProductDescriptor();
    66    }
    67    /*
    68     *  @(#) xdc.tools.product; 1, 0, 0,40; 10-15-2010 11:41:34; /db/ztree/library/trees/xdctools/xdctools-d45x/src/
    69     */
    70


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,40; 10-15-2010 11:41:34; /db/ztree/library/trees/xdctools/xdctools-d45x/src/
    23     */
    24


module xdc.tools.product.plugingen.Main

     1    /*
     2     *  Copyright 2010 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     *
    52     *
    53     *  @a(Example)
    54     *  @p(code)
    55     *  xs xdc.tools.product.plugingen
    56     *                      -p exampleprod_1_0_0_00
    57     *                      -m xdc.tools.product.plugingen.examples.ExampleProduct
    58
    59     *
    60     */
    61    metaonly module Main inherits xdc.tools.ICmd
    62    {
    63        override config String usage[] = [
    64            '[-p product_root_directory]',
    65            ' -m module',
    66            '[-o outdir]',
    67            '[--suppress_product_type_info]',
    68            '[--disable_repo_search]'
    69        ];
    70
    71    instance:
    72
    73        /*!
    74         *  ======== productDir ========
    75         *  Product root directory
    76         *
    77         *  This option names the product root directory that is used by the
    78         *  tool to generate the plugin. If the '-o' option is not
    79         *  specified the tool generates the plugin in a sub-directory
    80         *  called `eclipse` in the product root directory.
    81         *
    82         */
    83        @CommandOption("p")
    84        config String productDir = "./";
    85
    86        /*!
    87         *  ======== schemaFile ========
    88         *  Input description of the plug-in to be specified
    89         *
    90         *  This required option names a module that implements
    91         *  `{@link xdc.tools.product.IProduct}`.
    92         *
    93         */
    94        @CommandOption("m")
    95        config String productModule;
    96
    97        /*!
    98         *  ======== outputDir ========
    99         *  Output directory in which the plugin will be generated.
   100         *
   101         *  This option names the directory in which the plugin
   102         *  will be generated in a sub-directory named `eclipse`.
   103         *  If this option is not specified the tool will generate
   104         *  the plugin in the product root directory specified with
   105         *  the '-p' option.
   106         *
   107         */
   108        @CommandOption("o")
   109        config String outputDir = null;
   110
   111        /*!
   112         *  ======== suppress_product_type_info ========
   113         *  Suppress generation of product type information in the
   114         *  generated plugin
   115         *
   116         * This option generates eclipse plugin without the product
   117         * type information. Should be invoked to generate plugins whose
   118         * product type is declared elsewhere
   119         *
   120         */
   121        @CommandOption("suppress_product_type_info")
   122        config Bool suppressProductTypeInfo = false;
   123
   124
   125        /*!
   126         *  ======== disable_repo_search ========
   127         *  Suppress search of product repositories
   128         *
   129         *  If this option is specified the tool does not
   130         *  search the product repositories for RTSC platforms.
   131         */
   132        @CommandOption("disable_repo_search")
   133        config Bool suppressSearch = false;
   134
   135
   136        /*!
   137         *  ======== run ========
   138         */
   139        override Any run(xdc.tools.Cmdr.Instance cmdr, String args[]);
   140    }
   141    /*
   142     *  @(#) xdc.tools.product.plugingen; 1, 0, 0,39; 10-15-2010 11:41:40; /db/ztree/library/trees/xdctools/xdctools-d45x/src/
   143     */
   144


package xdc.tools.product.plugingen

     1    /*
     2     *  Copyright 2010 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,39; 10-15-2010 11:41:40; /db/ztree/library/trees/xdctools/xdctools-d45x/src/
    15     */
    16


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,187; 10-15-2010 11:41:46; /db/ztree/library/trees/xdctools/xdctools-d45x/src/
   355     */
   356


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     */
    20    package xdc.tools.repoman [1,0,0]
    21    {
    22        module Main;
    23    }
    24
    25    /*
    26     *  @(#) xdc.tools.repoman; 1, 0, 0,187; 10-15-2010 11:41:47; /db/ztree/library/trees/xdctools/xdctools-d45x/src/
    27     */
    28


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     *  ======== Main ========
    14     *  Graphical interface to repoman tool
    15     *
    16     */
    17    metaonly module Main inherits xdc.tools.ICmd {
    18
    19        override config String usage[] = [
    20           '[--packagepath PATH]'
    21        ];
    22        /*!
    23         *  ======== createPartControl ========
    24         *  @_nodoc
    25         */
    26        function createPartControl(parent);
    27    instance:
    28        //! repositories to scan for packages
    29        @CommandOption('packagepath')
    30        config string pathArg = null;
    31    }
    32    /*
    33     *  @(#) xdc.tools.repoman.sg; 1, 0, 0,186; 10-15-2010 11:41:53; /db/ztree/library/trees/xdctools/xdctools-d45x/src/
    34     */
    35


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     *  Graphical front end to the repoman tool
    17     */
    18    package xdc.tools.repoman.sg [1, 0, 0] {
    19        module Main;
    20    }
    21
    22    /*
    23     *  @(#) xdc.tools.repoman.sg; 1, 0, 0,186; 10-15-2010 11:41:53; /db/ztree/library/trees/xdctools/xdctools-d45x/src/
    24     */
    25


Extending xdc.runtime Gates/Example 1 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

Extending xdc.runtime Gates/Example 1

A posix-based IGateProvider implementation

Contents

  • 1 pthread-based IGateProvider Module
  • 2 The Lock Module
  • 3 The Package Files
  • 4 See also

pthread-based IGateProvider Module

In this example we show the implementation of an IGateProvider, named examples.runtime.gates.Lock that was used in a previous example to enable the xdc.runtime package to be used in a pthread-based application.

In the following sections we look under the covers to see how Lock is implemented. Finally, we look at all the other files necessary to create a package to build and house the the Lock module.

The Lock Module

All gate providers must implement the xdc.runtime.IGateProvider interface. In addition, because gate instances are most often created during configuration, gate providers should also support configuration-time instance creation. Fortunately, both of these requirements are easily meet. The Lock.xdc file declares that the Lock module inherits xdc.runtime.IGateProvider and includes an internal section that defines the instance object's state structure. This definition, together with the initialization function instance$static$init, defined in Lock.xs, is sufficient to enable static instances to be created during configuration.

Lock.xdc (Lock module's Specification)

import xdc.runtime.Assert;

/*!
 *  ======== Lock ========
 *  Simple mutex lock
 */
@InstanceFinalize    /* need to pthread_mutex_destroy() all mutexes */
@ModuleStartup       /* need to pthread_mutex_init() all statically created mutexes */
module Lock inherits xdc.runtime.IGateProvider
{
    /*! *  ======== A_bigEnough ======== */
    readonly config Assert.Id A_bigEnough = {
        msg: "Lock instance not large enough to hold a pthread_mutex_t"
    };

    /*! *  ======== A_initSucceeded ======== */
    readonly config Assert.Id A_initSucceeded = {
        msg: "Initialization of pthread_mutex_t failed"
    };

internal:
    struct Instance_State {
        Char mutex_buf[32];   /* buffer big enough to hold a pthread_mutex_t */
    }
}

The Lock module works by simply embedding a posix mutex object in the Lock module's instance object. Entering or leaving a gate is simply translated into pthread_mutex_lock or pthread_mutex_lock as necessary. But, in order to initialize the posix mutex objects that are created at configuration time, the Lock.xdc module specification uses the @ModuleStartup attribute to declare that it has a "startup" method that must be called prior to the application's main() entry-point. This startup method, named Lock_Module_startup, is defined in Lock.c and uses the standard posix pthread_mutex_init function to initialize the statically created Lock instance objects. In this case, the statically created Lock instance objects are simply the space necessary to hold a pthread_mutex_t; the real initialization occurs in Lock_Module_startup where we loop over all statically created instances and run the instance initializer, Lock_Instance_init, on each static instance.

This technique, of only allocating space at configuration time and performing instance initialization in a runtime startup function, can be generally applied to "wrap" most existing runtime content in a RTSC module that provides both static and runtime instance creation.

For completeness we need to delete the posix mutex when we delete a lock. To ensure this is done, the Lock.xdc module specification uses the @InstanceFinalize attribute to declare that this module defines an instance finalizer function, in this case Lock_Instance_finalize, that must be called when its instances are deleted.

Lock.c (Lock module's initialization and finalization code)

#include <xdc/runtime/Assert.h>
#include <xdc/runtime/Startup.h>

#define _XOPEN_SOURCE   500
#include <pthread.h>

#include "package/internal/Lock.xdc.h"

/* ======== Lock_Module_startup ======== */
Int Lock_Module_startup(Int state)
{
    Int i;

    /* Make sure size is big enough */
    Assert_isTrue(sizeof(Lock_Object) > sizeof(pthread_mutex_t),
        Lock_A_bigEnough);

    /* initialize all permanent instances */
    for (i = 0; i < Lock_Object_count(); i++) {
        Lock_Instance_init(Lock_Object_get(NULL, i), NULL);
    }

    return (Startup_DONE);
}

/* ======== Lock_Instance_init ======== */
Void Lock_Instance_init(Lock_Object *lock,
                            const Lock_Params *params)
{
    Int status;
    pthread_mutexattr_t mattrs;

    pthread_mutexattr_init(&mattrs);
    pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_RECURSIVE);
    status = pthread_mutex_init(
        (pthread_mutex_t *)&lock->mutex_buf, &mattrs);
    Assert_isTrue(status == 0, Lock_A_initSucceeded);
}

/* ======== Lock_Instance_finalize ======== */
Void Lock_Instance_finalize(Lock_Object *lock)
{
    pthread_mutex_destroy((pthread_mutex_t *)&lock->mutex_buf);
}

Lock.xs (Lock module's meta-domain implementation)

/* ======== instance$static$init ======== */
function instance$static$init(obj, params)
{
    /* RTSC requires all static data to be initialized */
    for (var i = 0; i < obj.mutex_buf.length; i++) {
        obj.mutex_buf[i] = 0;
    }
}

/* ======== queryMeta ======== */
function queryMeta(qual)
{
    /* posix mutexes are both blocking and preemptable */
    if (qual == IGateProvider.Q_BLOCKING
        || qual == IGateProvider.Q_PREEMPTING) {
        return (true);
    }
    return (false);
}

To complete the implementation it is, of course, necessary to define methods that enter and leave the gate (as well as any other methods declared in the xdc.runtime.IGateProvider interface). As shown below, these methods simply use the posix mutex operations pthread_mutex_lock and pthread_mutex_unlock to enter and exit the gate.

Lock.c (remainder of Lock's target implementation)

#include <xdc/runtime/IGateProvider.h>

/* ======== Lock_enter ======== */
IArg Lock_enter(Lock_Object *lock)
{
    pthread_mutex_lock((pthread_mutex_t *)&lock->mutex_buf);
    return (0);
}

/* ======== Lock_leave ======== */
Void Lock_leave(Lock_Object *lock, IArg key)
{
    pthread_mutex_unlock((pthread_mutex_t *)&lock->mutex_buf);
}

/* ======== Lock_query ======== */
Bool Lock_query(Int qual)
{
    if (qual == IGateProvider_Q_BLOCKING
        || qual == IGateProvider_Q_PREEMPTING) {
        return (TRUE);
    }
    return (FALSE);
}

To simplify this example, the implementation of Lock_enter and Lock_leave do not check for possible errors returned by the pthread_mutex methods. This example code should be modified to handle such errors before using this code in production applications. These methods could, for example, simply assert that the return values from the pthread_mutex methods indicate success. Although seemingly draconian, this would be much better than ignoring the error and potentially failing intermittently because a critical section is not being protected.

The Package Files

Since all modules must live in a package we also need to create a two other files:

  1. package.xdc - a file that define the package's name and identifies the modules it contains, and
  2. package.bld - a file that specifies which targets should be used to build the sources contained in this package.

package.xdc

package examples.runtime.gates {
    module Lock;
}
package.bld

for (var i = 0; i < Build.targets.length; i++) {
    var targ = Build.targets[i];

    if (targ.os == "Linux") {
        var lib = Pkg.addLibrary("lib/" + Pkg.name, targ);
        lib.addObjects(["Lock.c"]);
    }
}

The package.xdc file is largely self explanatory; it defines the name of the package examples.runtime.gates and it specifies the modules contained in the package, Lock.

The package.bld file, on the other hand, requires some explanation. The contents of this package.bld file indicate that the package builds a separate library in the lib/ sub-directory containing the compiled version of Lock.c for every target supported by the producer's build environment whose operating system is "Linux" (and therefore supports pthreads). Remarkably, this package.bld file is sufficient to compile Lock.c for every target, archive it into a library, and create a binary release of this package that supports all targets supported by the producer's build environment.

See also

Using xdc.runtime Gates/Example 1 | Adding concurrency support for pthread-based applications
C - Instance_init | Module's instance initialization function
XDCscript - Instance-Body.instance$static$init | Statically initialize a target module's instance object
C - Instance_finalize | Module's instance finalization function

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Extending xdc.runtime Logging/Example 1 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

Extending xdc.runtime Logging/Example 1

A logger that filters Log events

Contents

  • 1 An Event Filter
  • 2 How to Use the Filter
  • 3 How to Implement the Filter
    • 3.1 The ChanEvents Module
    • 3.2 The ChanFilter Module
      • 3.2.1 Extending ChanFilter
    • 3.3 The Package Files

An Event Filter

In the following sections we develop a simple ILogger that illustrates how to create custom event filters. Suppose, for example, you have a high-density "channel-based" application and you need the ability to display events from just one channel selected at runtime. Although the xdc.runtime package enables you to easily enable (disable) events on a per module basis, what's really needed in this case is the ability to enable (disable) events on a per "channel" basis. Since the only other control dimension offered by the Log interface is an 8-bit user bit-mask, applications with more than 8 channels must use an alternate mechanism to filter events.

In this example there are two separate modules:

  • ChanEvents which defines a set of "channel" events raised by the application, and
  • ChanFilter a module that implements the ILogger interface and provides functions that allow the application to dynamically enable and disable events from a selected channel.

Before showing the implementation of these modules we show how client applications might use the them. Then we look at the implementation of these modules and consider several more advanced capabilities that are easily added.

How to Use the Filter

We begin by showing how the ChanFilter module can be configured atop an existing ILogger to filter out unwanted events. In the example below we show a simple client application that generates events unrelated to "channels". This example illustrates that adding the ChanFilter requires a very small change to an existing configuration file and this filter does not affect those parts of the application unrelated to channels.

app.cfg

1

2

var Diags = xdc.useModule("xdc.runtime.Diags");
var Log = xdc.useModule("xdc.runtime.Log");

/* enable runtime control of "info" events for non-modules */
var Main = xdc.useModule("xdc.runtime.Main");
Main.common$.diags_INFO = Diags.RUNTIME_ON;

/* use ChanFilter ILogger service provider to filter events */
var ChanFilter = xdc.useModule("examples.runtime.logger.ChanFilter");
Main.common$.logger = ChanFilter.create();

/* use LoggerSys ILogger to handle events not filtered by ChanFilter */
var LoggerSys = xdc.useModule("xdc.runtime.LoggerSys");
ChanFilter.common$.logger = LoggerSys.create();

Comparing the configuration file to that in the "hello world" example, we see that we only needed to use the ChanFilter in lieu of LoggerSys 1 and then configure ChanFilter to use the original LoggerSys logger 2. This allows ChanFilter to see all events first and then optionally pass these events on to its logger (in this case, LoggerSys).

The figure below illustrates the "binding" of ILogger instances and clients of the Log module that results from this configuration. Notice that all non-module code references to Log, managed by the xdc.runtime.Main module, pass events to a ChanFilter logger whereas ChanFilter itself references LoggerSys. This allows ChanFilter to "see" all events produced by the application and conditionally pass them on to a "real" logger, in this case, LoggerSys.

Since ChanFilter is designed to work "transparently" with existing applications and loggers, it should come as no surprise that the configuration script above has no affect on the output of the "hello world" example.

app.c

#include <xdc/std.h>

#include <xdc/runtime/Diags.h>
#include <xdc/runtime/Log.h>

Int main(Int argc, String argv[])
{
    Log_info0("hello world");
    return (0);
}
Output

xdc.runtime.Main: "app.c", line 8: hello world

Now let's look at how the ChanFilter behaves when "channel" events are raised and how an application can control ChanFilter in real-time to select which channels events should be recorded. Let's assume that channels can raise some set of predefined events and each time one of these events is raised the first argument passed is a channel ID. For this example, the set of events is defined in the ChanEvents module, which includes HELLO, GOODBYE, and ERROR events.

Although we could have defined these events in the ChanFilter module, we opted to put these event definitions in a separate module, ChanEvents, to emphasize the point that these events might be defined by a group separate from the group that is developing this ILogger. Because the application below directly references values defined by ChanEvents, we must add an xdc.useModule() of ChanEvents to the application's configuration script. Except for this one line, denoted with + below, the application's configuration script is identical to the one above.

app.cfg

+

var Diags = xdc.useModule("xdc.runtime.Diags");
var Log = xdc.useModule("xdc.runtime.Log");

/* "import" the channel events definitions */
var ChanEvents = xdc.useModule("examples.runtime.logger.ChanEvents");

/* enable runtime control of "info" events only for non-modules */
var Main = xdc.useModule("xdc.runtime.Main");
Main.common$.diags_INFO = Diags.RUNTIME_ON;

/* use ChanFilter ILogger service provider to filter events */
var ChanFilter = xdc.useModule("examples.runtime.logger.ChanFilter");
Main.common$.logger = ChanFilter.create();

/* use LoggerSys ILogger to handle events not filtered by ChanFilter */
var LoggerSys = xdc.useModule("xdc.runtime.LoggerSys");
ChanFilter.common$.logger = LoggerSys.create();

In addition to the methods required by the ILogger interface, ChanFilter also provides a method, ChanFilter_setCurChan() to set the "current channel" ID; ChanFilter filters out all events that are not from this current channel. We use this method in the application (see c1 below) to illustrate how it's possible to enable the acquisition of events from selected channels at runtime in real-time.

app.c

c1

c2

c3

#include <xdc/std.h>

#include <xdc/runtime/Diags.h>
#include <xdc/runtime/Log.h>

#include <examples/runtime/logger/ChanEvents.h>
#include <examples/runtime/logger/ChanFilter.h>

Int main(Int argc, String argv[])
{
    /* generate simple printf event */
    Log_info0("hello world");

    /* generate a channel 0 event */
    Log_write1(ChanEvents_HELLO, 0);

    /* enable channel 0 events */
    ChanFilter_setCurChanId(0);

    Log_write2(ChanEvents_ERROR, 0, 23);
    Log_write1(ChanEvents_HELLO, 1);
    Log_write1(ChanEvents_GOODBYE, 0);

    return (0);
}

The output of this example is shown below.

1
2
3

xdc.runtime.Main: "app.c", line 12: hello world
xdc.runtime.Main: Channel 0: Error: 0x17
xdc.runtime.Main: Channel 0: goodbye

In the example above, notice that:

  1. the "hello world" Log_info event 1 was unaffected by the filter,
  2. the first call to Log_write with a channel event at c1 was dropped; prior to the first call to ChanFilter_setCurChanId() at c2 the current channel is undefined and all channel events are dropped, and
  3. after the call to ChanFilter_setCurChanId(0), only events from channel 0 are displayed; output from c3 does not appear between 2 and 3.

How to Implement the Filter

In this section we look under the covers to see how ChanFilter and ChanEvents are implemented. Not only is the implementation straight forward, it is easy to see how it can be generalized to handle virtually any target-side filtering you can imagine.

We begin by showing the ChanEvents module. Since ChanEvents does not need any runtime code, this module is the easiest to understand. We then look at the ChanFilter module and explore a variety of filtering techniques. Finally, we look at all the other files necessary to create a package to build and house these modules.

The ChanEvents Module

The ChanEvents module simply contains definitions of all "channel" events that are raised by the application. Because we only need to define the events, we only need to create a single .xdc file named ChanEvents.xdc with definition of all of the necessary Log events.

ChanEvents.xdc

import xdc.runtime.Diags;
import xdc.runtime.Log;

module ChanEvents
{
    /*! ======== HELLO ======== */
    config Log.Event HELLO = {
        mask: Diags.INFO,
        msg: "Channel %d: hello"
    };

    /*! ======== ERROR ======== */
    config Log.Event ERROR = {
        mask: Diags.INFO,
        msg: "Channel %d: Error: 0x%x"
    };

    /*! ======== GOODBYE ======== */
    config Log.Event GOODBYE = {
        mask: Diags.INFO,
        msg: "Channel %d: goodbye"
    };
}

The ChanFilter Module

The ChanFilter module must implement the ILogger interface and it must support configuration time instance creation. While this requires fairly advanced features of the RTSC model, the files required are quite straight forward. Moreover, once the basics are in place it is very easy to extend or generalize the ChanFilter module for virtually any application.

ChanFilter.xdc

/* ChanFilter implements ILogger */
module ChanFilter inherits xdc.runtime.ILogger {

    /*! Set the channel to allow events from */
    Int setCurChanId(Int newChanId);

instance: /* this module manages instances */

    /* per-instance creation parameter */
    config String onError = null;

internal: /* remainder is private internal implementation */

    struct Instance_State { /* static instances must declare instance state */
        String onError;
        Bool enabled;
    };
}

The implementation of this specification is shown below.

ChanFilter.c

#include <xdc/std.h>

#include <xdc/runtime/Log.h>
#include <xdc/runtime/Types.h>
#include <examples/runtime/logger/ChanEvents.h>

#include "package/internal/ChanFilter.xdc.h"

static Int curChanId = -1;

/* Initialize runtime created instance objects */
Void ChanFilter_Instance_init(ChanFilter_Object *filter,
                              const ChanFilter_Params *params)
{
    filter->onError = params->onError;
    filter->enabled = TRUE;
}

/* ======== disable ======== */
Bool ChanFilter_disable(ChanFilter_Object *filter)
{
    Bool prev = filter->enabled;
    filter->enabled = FALSE;
    return (prev);
}

/* ======== enable ======== */
Bool ChanFilter_enable(ChanFilter_Object *filter)
{
    Bool prev = filter->enabled;
    filter->enabled = TRUE;
    return (prev);
}

/* ======== setCurChanId ======== */
Int ChanFilter_setCurChanId(Int newChanId)
{
    Int oldChanId = curChanId;
    curChanId = newChanId;
    return (oldChanId);
}

/* ======== write0 ========= */
Void ChanFilter_write0(ChanFilter_Object *filter, Log_Event evt,
                       Types_ModuleId mid)
{
    /* It can't be a channel event if it has no arguments. */
    Log_put0(evt, mid);
}

/* ======== write1 ========= */
Void ChanFilter_write1(ChanFilter_Object *filter, Log_Event evt,
                       Types_ModuleId mid, IArg a1)
{
    ChanFilter_write8(filter, evt, mid, a1, 0, 0, 0, 0, 0, 0, 0);
}

/* ======== write2 ========= */
Void ChanFilter_write2(ChanFilter_Object *filter, Log_Event evt,
                       Types_ModuleId mid, IArg a1, IArg a2)
{
    ChanFilter_write8(filter, evt, mid, a1, a2, 0, 0, 0, 0, 0, 0);
}

/* ======== write4 ========= */
Void ChanFilter_write4(ChanFilter_Object *filter, Log_Event evt,
                       Types_ModuleId mid, IArg a1, IArg a2,
                       IArg a3, IArg a4)
{
    ChanFilter_write8(filter, evt, mid, a1, a2, a3, a4, 0, 0, 0, 0);
}

/* ======== write8 ========= */
Void ChanFilter_write8(ChanFilter_Object *filter, Log_Event evt,
                       Types_ModuleId mid, IArg a1, IArg a2, IArg a3,
                       IArg a4, IArg a5, IArg a6, IArg a7, IArg a8)
{
    Log_EventId eid = Log_getEventId(evt);

    /* check event id against range of all channel events */
    if (eid >= Log_getEventId(ChanEvents_HELLO)
        && eid <= Log_getEventId(ChanEvents_GOODBYE)) {

        if (curChanId != a1) {
            return; /* drop events from channels != curChanId */
        }
    }

    /* call underlying logger */
    Log_put8(evt, mid, a1, a2, a3, a4, a5, a6, a7, a8);
}

The heart of the filtering code is in the implementation of the ILogger.write8() method ChanFilter_write8(). In the example above, we first extract the event ID and compare this to the range of event IDs that correspond to the events defined by the ChanEvent module. This check is possible because Log event IDs are assigned in order for each module in the order that they are declared in the module specification. Since all events declared in the ChanEvents module require that the first argument is the channel ID of the channel raising the event, we can simply compare this argument against the curChanId value set by the application.

To complete the implementation, we need to add two meta-domain functions: instance$static$init and module$use.

ChanFilter.xs

/* Initialize static instance objects */
function instance$static$init(obj, params)
{
    obj.onError = params.onError;
    obj.enabled = true;
}
/* Declare modules used in ChanFilter.c */
function module$use()
{
    xdc.useModule("xdc.runtime.Log");
    xdc.useModule("examples.runtime.logger.ChanEvents");
}

The instance$static$init function is required to ensure that the static instances created by the ChanFilter module (as part of the user's configuration script) have all their fields initialized. The module$use function, on the other hand, ensures that all modules used in the implementation of ChanFilter are included in both the configuration process and in the link of the application using ChanFilter. By adding these statements, the user of ChanFilter does not need to add xdc.useModule statements to their configuration script for modules that are not directly referenced by their application. After all, the implementation of ChanFilter may change to require other modules and we don't want the client of ChanFilter to have to change anything to use this new version.

Extending ChanFilter

Extending ChanFilter. Of course much more sophisticated filtering criteria can easily be added to this function. One can even imagine using the occurrence of certain events to trigger (in real-time) actions that facilitate diagnosis of system problems. For example, the following code can be added to ChanFilter_write8() to enable/disable event generation whenever a ChanEvent_Error event occurs.

/* change diagnostic settings on occurrence of error */
if (filter->onError && (eid == Log_getEventId(ChanEvents_ERROR))) {
    Diags_setMask(filter->onError);
}

This can be useful when events are buffered locally (to keep event logging fast and deterministic) and space is limited. In order to preserve the state of the event buffers, so they can be analyzed well after the error condition is detected, we need to disable the collection of all events.

Finally one can even generalize the ChanFilter_write8() function to simply call a user supplied function. Rather than saving an onError string in each ChanFilter instance, we can save a pointer to a user supplied function (userFxn) to execute. This would allow applications to define filtering functions in any part of their code base without having to understand how to implement a RTSC interface or create a RTSC package.

Void ChanFilter_write8(ChanFilter_Object *filter, Log_Event evt, Types_ModuleId mid,
                   IArg a1, IArg a2, IArg a3, IArg a4,
                   IArg a5, IArg a6, IArg a7, IArg a8)
{
    if (!filter->userFxn(evt, mid, a1, a2, a3, a4, a5, a6, a7, a8)) {
        /* pass event to underlying logger if not handled by userFxn */
        Log_raise8(evt, mid, a1, a2, a3, a4, a5, a6, a7, a8);
    }
}

The Package Files

Since all modules must live in a package we also need to create a two other files:

  1. package.xdc - a file that define the package's name and identifies the modules it contains, and
  2. package.bld - a file that specifies which targets should be used to build the sources contained in this package.

package.xdc

package examples.runtime.logger {
    module ChanEvents;
    module ChanFilter;
}
package.bld

for (var i = 0; i < Build.targets.length; i++) {
    var targ = Build.targets[i];

    var lib = Pkg.addLibrary("lib/" + Pkg.name, targ);
    lib.addObjects(["ChanFilter.c"]);
}

The package.xdc file is largely self explanatory; it defines the name of the package examples.runtime.logger and it specifies the modules contained in the package, ChanEvents and ChanFilter.

The package.bld file, on the other hand, requires some explanation. The existence of package.bld indicates that the package is (re)buildable - unless the end-user is expected to build the package, deployed packages omit this file. The contents of this package.bld file indicate that the package contains a library in the lib/ sub-directory containing the compiled version of ChanFilter.c for every target supported by the producer's build environment. Remarkably, this package.bld file is sufficient to compile ChanFilter.c for every target, archive it into a library, and create a binary release of this package that supports all targets supported by the producer's build environment.

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Extending xdc.runtime Memory/Example 1 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

Extending xdc.runtime Memory/Example 1

A heap that tracks Memory allocations

Contents

  • 1 A Heap Monitor
  • 2 How to Use the Check Heap Monitor
  • 3 How to Implement the Check Heap Monitor
    • 3.1 The Check Module
    • 3.2 The Package Files
  • 4 Summary and Extensions

A Heap Monitor

In this section we develop a simple IHeap that illustrates how to create custom heaps. Suppose, for example that you want to monitor your application's use of memory and look for memory leaks or buffer overflows. The heap manager developed in this section illustrates how you can optionally add these checks to any existing heap manager without making any modifications to that manager.

How to Use the Check Heap Monitor

We begin by showing how the Check module can be configured atop an existing IHeap to monitor allocated memory. In the example below we show a simple client application that uses the Memory module to allocate a free memory. This example, illustrates that adding the Check only requires a very small change to an existing configuration file and no change to existing code.

app.c

#include <xdc/std.h>

#include <xdc/runtime/Error.h>
#include <xdc/runtime/Memory.h>
#include <xdc/runtime/LoggerBuf.h>

/* ======== main ======== */
Int main(Int argc, String argv[])
{
    Int i;
    LoggerBuf_Handle logger;
    Error_Block eb;

    Error_init(&eb);

    for (i = 0; i < 10; i++) {
        logger = LoggerBuf_create(NULL, &eb);
        if (logger != NULL) {
            if (i) { /* create a memory leak! */
                LoggerBuf_delete(&logger);
            }
        }
    }

    return (0);
}
app.cfg

var Error = xdc.useModule("xdc.runtime.Error");
var Memory = xdc.useModule("xdc.runtime.Memory");
var LoggerBuf = xdc.useModule("xdc.runtime.LoggerBuf");

var Check = xdc.useModule("examples.runtime.heap.Check");
var HeapStd = xdc.useModule("xdc.runtime.HeapStd");

/* make Check the heap for all allocations */
Memory.defaultHeapInstance = Check.create();

/* give Check a heap that can allocate real memory */
Check.common$.instanceHeap =
    HeapStd.create({size: 4096});

The output of this example is shown below.

examples.runtime.heap.Check: line 100: memory leak: 2 more allocations than frees (heap = @08050688)

How to Implement the Check Heap Monitor

In this section we look under the covers to see how Check is implemented. We begin by looking at the implementation of the Check module and end by showing the other files necessary to deliver this module within a package.

The Check Module

All heap managers must implement the xdc.runtime.IHeap interface. In addition, because heap instances are most often created during configuration, heap managers should also support configuration-time instance creation. Fortunately, both of these requirements are easily meet. The Check.xdc file declares that the Check module inherits xdc.runtime.IHeap and includes an internal section that defines the instance object's state structure. This definition, together with the initialization function instance$static$init(), defined in Check.xs, is sufficient to enable static instances to be created during configuration.

The Check module works by simply maintaining the number of allocations minus the number of frees for each heap instance. If this number is non-zero at the end of the application, a memory leak has occurred. In order to get control at the end of the application, Check uses the System_atexit() method to install the doCheck function, defined in Check.c, as a function to be executed when the application exits. But, in order to call System_atexit(), the Check.xdc module specification uses the @ModuleStartup attribute to declare that it has a "startup" method that must be called prior to the application's main() entry-point. This startup method, named Check_Module_startup, is defined in Check.c.

Check.xdc (Check Module's Specification)

import xdc.runtime.Error;

/*!
 *  ======== Check ========
 *  Check number of allocations and frees
 */
@ModuleStartup  /* this module has a startup fxn to be called prior to main */
module Check inherits xdc.runtime.IHeap
{
    /*!
     *  ======== E_memory ========
     */
    config Error.Id E_memory = {
        msg: "memory leak: %d more allocations than frees (heap = %p)"
    };

internal:
    struct Instance_State {
        Int count;
    };
}

The implementation of this specification is shown below.

Check.c (initialization code)

#include <xdc/std.h>

#include <xdc/runtime/Startup.h>
#include <xdc/runtime/System.h>

#include "package/internal/Check.xdc.h"

static Void doCheck(Void); /*checks all instances */

/* ======== Check_Instance_init ======== */
Void Check_Instance_init(Check_Object *obj,
    const Check_Params *params)
{
    obj->count = 0;
}

/* ======== Check_Module_startup ======== */
Int Check_Module_startup(Int state)
{
    if (!Startup_rtsDone()) {
        return (Startup_NOTDONE);
    }

    System_atexit(doCheck);

    return (Startup_DONE);
}
Check.xs (initialization code)

/* ======== instance$static$init ======== */
function instance$static$init(obj, params)
{
    obj.count = 0;
}

The doCheck() function, shown below, loops over all statically defined instances of the Check module looking for a counter that is non-zero.

Check.c (heap check code)

1
2

#include <xdc/runtime/Error.h>

/* ======== doCheck ======== */
static Void doCheck(Void)
{
    Int i;
    Error_Block eb;

    Error_init(&eb);

    /* loop over all static instances */
    for (i = 0; i < Check_Object_count(); i++) {
        Check_Object *obj = Check_Object_get(NULL, i);
        if (obj->count != 0) {
            Error_raise(&eb, Check_E_memory, obj->count, (IArg)obj);
        }
    }
}

The methods used to loop over the instances, Check_Object_count() 1 and Check_Object_get() 2 are automatically generated from the Check module's specification. For more information about these methods, see the C Language Binding reference for Object_count() and Object_get(), respectively.

The doCheck function above does not look at any runtime created Check heap instances. This can be added, of course, but since most heaps are created statically and we want to keep the example small, the implementation above does not check runtime created heaps. For information about how to enumerate all runtime created instances of module, see C - Object_first and C - Object_next.

To complete the C implementation it is, of course, necessary to define methods that allocate and free memory (as well as any other methods declared in the xdc.runtime.IHeap interface). Shown below, these methods simply increment or decrement a counter and call the Check module's heap manager to do the "real" memory management. The Check_Object_heap() method returns the heap instance configured for the Check module and, to support concurrent environments, the counter is modified atomically using the "system gate" via Gate_enterSystem().

Recall that the Check_Object_heap() method, like all *_Module_* methods, is declared in the headers automatically generated from the Check.xdc specification and defined in the *.c file generated by the configuration process. See the C Language Binding for a complete list of these automatically generated methods.

Check.c (IHeap interface functions)

#include <xdc/runtime/Gate.h>
#include <xdc/runtime/Memory.h>

/* ======== Check_alloc ======== */
Ptr Check_alloc(Check_Object *obj, SizeT size,
    SizeT align, Error_Block *eb)
{
    Ptr result = Memory_alloc(Check_Object_heap(), size, align, eb);

    if (result != NULL) {
        /* atomically increment count */
        IArg key = Gate_enterSystem();
        obj->count++;
        Gate_leaveSystem(key);
    }

    return (result);
}

/* ======== Check_free ======== */
Void Check_free(Check_Object *obj, Ptr block, SizeT size)
{
    /* atomically decrement count */
    IArg key = Gate_enterSystem();
    obj->count--;
    Gate_leaveSystem(key);

    Memory_free(Check_Object_heap(), block, size);
}

/* ======== Check_isBlocking ======== */
Bool Check_isBlocking(Check_Object *obj)
{
    return (Memory_query(Check_Object_heap(), Memory_Q_BLOCKING));
}

/* ======== Check_getStats ======== */
Void Check_getStats(Check_Object *obj, Memory_Stats *stats)
{
    Memory_getStats(Check_Object_heap(), stats);
}

Finally we need to add a meta-domain function to Check.xs: module$use.

Check.xs (implementation dependencies)

/* ======== module$use======== */
function module$use()
{
    xdc.useModule("xdc.runtime.System");
    xdc.useModule("xdc.runtime.Error");
    xdc.useModule("xdc.runtime.Gate");
    xdc.useModule("xdc.runtime.Memory");
}

The module$use function ensures that all modules used in the implementation of Check are included in both the configuration process and in the link of the application using Check. By adding these statements, the user of Check does not need to add xdc.useModule statements their configuration script for modules that are not directly referenced by their application. After all, the implementation of Check may change to require other modules and we don't want the client of Check to have to change anything to use this new version.

The Package Files

Since all modules must live in a package we also need to create a two other files:

  1. package.xdc - a file that define the package's name and identifies the modules it contains, and
  2. package.bld - a file that specifies which targets should be used to build the sources contained in this package.
package.xdc

package examples.runtime.heap {
    module Check;
}
package.bld

for (var i = 0; i < Build.targets.length; i++) {
    var targ = Build.targets[i];

    var lib = Pkg.addLibrary("lib/" + Pkg.name, targ);
    lib.addObjects(["Check.c"]);
}

The package.xdc file is largely self explanatory; it defines the name of the package examples.runtime.heap and it specifies the modules contained in the package, Check.

The package.bld file, on the other hand, requires some explanation. The existence of package.bld indicates that the package is (re)buildable - unless the end-user is expected to build the package, deployed packages omit this file. The contents of this package.bld file indicate that the package contains a library in the lib/ sub-directory containing the compiled version of Check.c for every target supported by the producer's build environment. Remarkably, this package.bld file is sufficient to compile Check.c for every target, archive it into a library, and create a binary release of this package that supports all targets supported by the producer's build environment.

Summary and Extensions

This example illustrated how to create and deploy a new IHeap memory manager. Along the way, it also illustrated several key concepts:

  • how a module can scan all of its statically created instances; Check_Object_count() and Check_Object_get().
  • how a module can perform module-specific initialization before main(); @ModuleStartup and Check_Module_startup()
  • how to "stack" IHeap memory managers to add functionality to an existing memory manager without changing (or re-compiling) the application's sources.

Although simplistic, it is clear that this example can be extended to provide far more robust memory checking. Possible extensions include

  • wrapping each allocation with a leading and a trailing "cookie" which can be checked on each free operation to detect buffer over/under flow problems;
  • tagging each allocation with a "thread id" so that when a leak is detected it's possible to identify the culprit and even recover the memory;
  • add methods to Check that can be called by the application to set thread-specific limits on the total outstanding memory allocated by each thread; and
  • add methods to Check that direct it to return NULL after a specific number of allocations allowing one to reliably test the application's ability to handle out-of-memory faults.
[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Extending xdc.runtime System/Example 1 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

Extending xdc.runtime System/Example 1

A minimal System support module for tiny systems

Contents

  • 1 A Minimal ISystemSupport Module
  • 2 Using SysBuf
  • 3 Implementation of SysBuf
    • 3.1 The SysBuf Module
    • 3.2 The Package Files

A Minimal ISystemSupport Module

In this section we show the complete implementation of a package that includes a module, named SysBuf, that provides the "backend" services required by the xdc.runtime.System module. This example serves two purposes:

  1. illustrate how to create a simple "system support" module, and
  2. provide a small footprint System support module appropriate for deeply embedded multi-threaded systems.

System support modules are responsible for handling character output (generated from say System_printf()) as well as providing extensions to the System_exit() and System_abort() application termination process. The SysBuf module simply records each output character into a circular buffer (which is sized and placed at configuration time), and extends System_abort() by copying a termination message into the output buffer just prior to termination.

Using SysBuf

To illustrate the use of the ISystemSupport module SysBuf, we start with the "hello world" example from Using xdc.runtime System/Example 1 and add two lines to the application's configuration script. These statements (denoted by + below) simply declare that we want to use SysBuf as the System module's "support proxy" in lieu of the default, SysMin.

hello.c

#include <xdc/std.h>

#include <xdc/runtime/System.h>

/*  ======== main ======== */
Int main(Int argc, String argv[])
{
    System_printf("hello world\n");
    return (0);
}
hello.cfg

+
+

var System = xdc.useModule("xdc.runtime.System");
var SysBuf = xdc.useModule("xdc.runtime.SysBuf");
System.SupportProxy = SysBuf;

When we run this application no output is displayed; the output from the call to System_printf is simply written to the buffer managed by SysBuf. The only way to view the output is to examine the contents of this buffer. While this is ridiculously onerous when developing applications for platforms with a high-level operating system (such as Linux or WinCE), it can be a life saver when developing low-level bootstrap code for these platforms, code targeted for platforms without character output facilities, or device driver code for character output peripherals.

As we'll see in the implementation of SysBuf below, this module defines a global variable that makes it relatively easy to display the contents of the buffer from a modern graphical debugger. By default, SysBuf defines a global variable named SYSBUF that contains a pointer to the character output buffer.

You can configure the name of the global variable containing the pointer to the output buffer, the size of the output buffer, and even the output section where the output buffer is placed. For example, by adding more two lines to the configuration script (indicated by +), the configuration script below defines the global variable name to be STDOUT and sets the output buffer size to be just 256 characters.

hello.cfg

+
+

var System = xdc.useModule("xdc.runtime.System");
var SysBuf = xdc.useModule("xdc.runtime.SysBuf");
System.SupportProxy = SysBuf;
SysBuf.bufName = "STDOUT";
SysBuf.bufSize = 256;

Implementation of SysBuf

In this section we show the entire implementation of the SysBuf module as well as all package files necessary to build and deliver the SysBuf module to anyone wishing to use it.

The SysBuf Module

The SysBuf module implements the ISystemSupport interface but makes minimal assumptions about underlying platform capabilities. In particular, it handles all character output by simply writing all output to a "global" buffer managed by SysBuf.

SysBuf.xdc

1

2

3

4

module SysBuf inherits xdc.runtime.ISystemSupport {

    /*!
     *  ======== bufName =========
     *  The name of a variable that points to the buffer
     */
    metaonly config bufName = "SYSBUF";

    /*!
     *  ======== bufSize ========
     *  Size (in MAUs) of the internal buffer where all output is stored
     */
    config SizeT bufSize = 1024;

    /*!
     *  ======== sectionName ========
     *  Section where the internal buffer managed by SysBuf is placed.
     */
    metaonly config String sectionName = null;

internal:
    struct Module_State {
        Char outbuf[];  /* output buffer */
        UInt outidx;    /* index of next available output character */
    }
}

As you can see from SysBufs specification, the size and placement of the output buffer can be configured by the end-user; 2 and 3 respectively. The bufName metaonly configuration parameter 1 allows you control the name of a global variable used to hold the pointer to the output buffer. This global variable's only purpose is to make it easy to display this buffer from an attached debugger. By making it a configuration parameter, the system integrator can control the name of this global variable without having to modify the sources of the SysBuf module; different applications can use different names (e.g., to avoid clashes with other global variables) and still use exactly the same pre-compiled SysBuf module.

SysBuf.c

#include <xdc/std.h>

#include <xdc/runtime/Gate.h>
#include "package/internal/SysBuf.xdc.h"

/* ======== SysBuf_abort ======== */
Void SysBuf_abort(String str)
{
    if (SysBuf_bufSize != 0 && str != NULL) {
        Char ch;
        while ((ch = *str++) != '\0') {
            SysBuf_putch(ch);
        }
    }
}

/* ======== SysBuf_exit ======== */
Void SysBuf_exit(Int stat) {/* do nothing */}

/* ======== SysBuf_flush ======== */
Void SysBuf_flush() {/* nothing to do */}

/* ======== SysBuf_putch ======== */
Void SysBuf_putch(Char ch)
{
    if (SysBuf_bufSize != 0) {
        IArg key = Gate_enterSystem();
        if (module->outidx >= SysBuf_bufSize) {
            module->outidx = 0;
        }
        module->outbuf[module->outidx++] = ch;
        Gate_leaveSystem(key);
    }
}

/* ======== SysBuf_ready ======== */
Bool SysBuf_ready()
{
    return (SysBuf_bufSize != 0 ? TRUE : FALSE);
}
SysBuf.xs

a

b

c

d

var Memory = null;

/* ======== module$static$init ======== */
function module$static$init(obj, mod)
{
    /* set size of SysBuf's output buffer, outbuf */
    obj.outbuf.length = mod.bufSize;

    /* specify alignment and placement of outbuf */
    Memory.staticPlace(obj.outbuf,
        0, mod.sectionName);

    /* initialize output index state */
    obj.outidx = 0;

    /* initialize output buffer */
    for (var i = 0; i < obj.outbuf.length; i++) {
        obj.outbuf[i] = 0;
    }

    /* optionally define variable to easily read buf */
    if (mod.bufName != null) {
        Program.global[mod.bufName] = obj.buf;
    }
}

/* ======== module$use ======== */
function module$use(obj, mod)
{
    Memory = xdc.module('xdc.runtime.Memory');
    xdc.module('xdc.runtime.Gate');
}

The C implementation of the ISystemSupport interface, SysBuf.c, is fairly straight forward. Perhaps the only comment worth making is about the implementation of the putch function, a function that handles every character output by the System module's methods. This implementation, although 100% portable ANSI C and thread-safe, is somewhat heavyweight for the output of a single character. In most cases it is possible (and easy) to greatly reduce the overhead of this function by taking advantage of device-specific instructions to "atomically" update the circular output buffer.

What makes the implementation of SysBuf interesting is not so much the code that's in SysBuf.c, rather it's the code that's not in SysBuf.c. Since RTSC modules can declare a "state" structure that is initialized by the module's meta-domain function module$static$init() and accessible by target code, there is no need to allocate or initialize the output buffer in SysBuf.c, no need to declare the global variable SYSBUF, nor is it necessary to recompile SysBuf.c to support different buffer sizes; RTSC Module Primer Lesson 7 contains another example leveraging Module_State and a complete discussion of this aspect of RTSC modules.

In this case, module$static$init() is passed two parameters: obj - an object that corresponds to the Module_State declaration in SysBuf.xdc 4, and mod - a reference to the current module object that in turn contains all of the module-wide configuration parameters. By initializing obj in this method, corresponding values will be used to initialize the SysBuf module's state data on the target before the target code even begins to run. In outline, this function

a allocates a static buffer by setting the length of the outbuf array declared by SysBuf.xdc;
b uses Memory.staticPlace() to identify the section where this buffer should be placed and how it should be aligned by the linker;
c initializes the buffer with values that will be seen by the initial code running on the target; and finally
d uses Program.global to define the global variable, whose name is declared at 1 in the specification of SysBuf, that makes it easy to view this output buffer from a debugger. The name is configurable to allow the user to either change the name to avoid clashes with existing code or to optionally not define any variable (by setting bufName to null).

The Package Files

Since all modules must live in a package we also need to create a two other files:

  1. package.xdc - a file that define the package's name and identifies the modules it contains, and
  2. package.bld - a file that specifies which targets should be used to build the sources contained in this package.

package.xdc

package examples.runtime.system {
    module SysBuf;
}
package.bld

for (var i = 0; i < Build.targets.length; i++) {
    var targ = Build.targets[i];

    var lib = Pkg.addLibrary("lib/" + Pkg.name, targ);
    lib.addObjects(["SysBuf.c"]);
}

The package.xdc file is largely self explanatory; it defines the name of the package, examples.runtime.system, and it specifies the modules contained in the package, SysBuf.

The package.bld file, on the other hand, requires some explanation. This package.bld file specifies that the package contains a library in the lib/ sub-directory containing the compiled version of SysBuf.c for every target supported by the producer's build environment. Remarkably, this package.bld file is sufficient to compile SysBuf.c for every target, archive it into a library, and a binary release of this package that supports all targets supported by the producer's build environment.

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Extending xdc.runtime Timestamps/Example 1 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

Extending xdc.runtime Timestamps/Example 1

A TI C64-plus ITimestampProvider Module

Contents

  • 1 A Device-Specific Timestamp Implementation
  • 2 How to Use the C64-plus Timestamp Module
  • 3 How to Implement the C64-plus Timestamp Module
    • 3.1 The Timestamp Module
    • 3.2 The Package Files

A Device-Specific Timestamp Implementation

In the following sections we develop a simple ITimestampProvider that illustrates how to create leverage platform-specific timing facilities. In this case, we show how to leverage the TI C64-plus processor's 64-bit CPU clock register (TSCH:TSCL).

How to Use the C64-plus Timestamp Module

Before looking at the implementation of a C64-plus Timestamp module, we show how such a module might be used in an application. We begin with a simple "test" application which simply uses the xdc.runtime.Timestamp module and show how this application is configured.

app.c

#include <xdc/std.h>

#include <xdc/runtime/System.h>
#include <xdc/runtime/Timestamp.h>
#include <xdc/runtime/Types.h>

/* ======== main ======== */
Int main(Int argc, String argv[])
{
    Types_FreqHz freq;

    Timestamp_getFreq(&freq);
    System_printf("freq = {0x%x : 0x%x}\n", freq.hi, freq.lo);

    System_printf("time = 0x%x\n", Timestamp_get32());
    System_printf("time = 0x%x\n", Timestamp_get32());

    return (0);
}

The full name of the timestamp provider is examples.runtime.c64p.Timestamp and the application above explicitly references the System and Timestamp modules from the xdc.runtime package. So, the following configuration script suffices to declare all used modules and "bind" examples.runtime.c64p.Timestamp as the timestamp provider for the xdc.runtime package's Timestamp module used by the application.

app.cfg

var System = xdc.useModule("xdc.runtime.System");
var Timestamp = xdc.useModule("xdc.runtime.Timestamp");

Timestamp.SupportProxy =
    xdc.useModule("examples.runtime.c64p.Timestamp");

The name examples.runtime.c64p.Timestamp might seem to be a poor choice for the C64-plus timestamp provider; the module name Timestamp within the examples.runtime.c64p package might conflict with the same named module in the xdc.runtime package. In fact, because these modules are in separate packages and all module symbols are scoped by the package name, both the xdc.runtime.Timestamp and examples.runtime.c64p.Timestamp modules can be linked into a single application without problems. But why use the same name, isn't it confusing?

The examples.runtime.c64p.Timestamp name was chosen for this example to illustrate an interesting design pattern that makes it possible and even desirable to confuse this module with the xdc.runtime.Timestamp module. Both modules inherit the xdc.runtime.ITimestampClient interface and, in fact, xdc.runtime.Timestamp module's C interface only provides the methods declared in ITimestampClient. So what? Any use of xdc.runtime.Timestamp in your code can be replaced with examples.runtime.c64p.Timestamp without affecting you program's behavior. Even better, you can replace all uses of xdc.runtime.Timestamp within any source file with examples.runtime.c64.Timestamp by making a one line change to the file.

For example, in the application above, we can replace all calls to xdc.runtime.Timestamp methods with calls to corresponding examples.runtime.c64p.Timestamp methods by simply changing the module header file include statement.

app.c

>

#include <xdc/std.h>

#include <xdc/runtime/System.h>
#include <xdc/runtime/Types.h>

#include <examples/runtime/c64p/Timestamp.h>

/* ======== main ======== */
Int main(Int argc, String argv[])
{
    Types_FreqHz freq;

    Timestamp_getFreq(&freq);
    System_printf("freq = {0x%x : 0x%x}\n", freq.hi, freq.lo);

    System_printf("time = 0x%x\n", Timestamp_get32());
    System_printf("time = 0x%x\n", Timestamp_get32());

    return (0);
}

Comparing this example with the original application, to only line that changed is the module include header >. All references within the application to the module Timestamp now reference the examples.runtime.c64p.Timestamp module rather than the xdc.runtime.Timestamp module, but no change to these references is required!

This is cute, but is it useful? Imagine an application which uses Timestamp services throughout the code bases. In most cases, the services provided by xdc.runtime.Timestamp are sufficient but if there are a file parts of the system that require C64-plus specific features it is easy to simply replace a single line. Code that relies on just the xdc.runtime.Timestamp services can be moved freely throughout the code base without much thought. Code that uses c64-plus features can be moved into previously platform-independent portions by simply changing the header file; any existing use of xdc.runtime.Timestamp will operate exactly as before.

How to Implement the C64-plus Timestamp Module

The Timestamp Module

The Timestamp module must implement the ITimestampProvider interface. Notice that the name of this module is identical to the name of the Timestamp module in the xdc.runtime package. Since this module is in a separate package, there is no danger of link-time conflicts and, as shown above, it makes it very easy for clients to switch between a device specific timestamp module and the generic time stamp module xdc.runtime.Timestamp.

Timestamp.xdc

import xdc.runtime.Types;

/*!
 *  ======== Timestamp ========
 *  Example implementation of ITimestampProvider
 */
@ModuleStartup
module Timestamp inherits xdc.runtime.ITimestampProvider
{
    config Types.FreqHz freq = {hi:0, lo: 600 * 1000000};
}

The actual implementation of the specification above is shown below. In this case, the implementation involves both C and assembly language.

Timestamp.c

#include <xdc/std.h>

#include <xdc/runtime/Startup.h>
#include <xdc/runtime/Types.h>

#include "package/internal/Timestamp.xdc.h"

extern void C64P_readtime(Bits32 *hi, Bits32 *lo);
extern void C64P_resetime(void);

/* ======== Timestamp_Module_startup ======== */
Int Timestamp_Module_startup(Int phase)
{
    C64P_resetime();  /* reset and start timer */
    return (Startup_DONE);
}

/* ======== Timestamp_get32 ======== */
Bits32 Timestamp_get32()
{
    Bits32 hi, lo;
    C64P_readtime(&hi, &lo);
    return (lo);
}

/* ======== Timestamp_get64 ======== */
Void Timestamp_get64(Types_Timestamp64 *result)
{
    C64P_readtime(&result->hi, &result->lo);
}

/* ======== Timestamp_getFreq ======== */
Void Timestamp_getFreq(Types_FreqHz *freq)
{
    freq->lo = Timestamp_freq.lo;
    freq->hi = Timestamp_freq.hi;
}
c64p_readtime.asm

; ======== _C64P_readtime ========
;
;  void C64P_readtime(Bits32 *hi, Bits32 *lo);
;
    .global _C64P_readtime
_C64P_readtime:
    .asmfunc
    b b3          ; return to caller & disable ints
    mvc TSCL, b6  ; get TSCL (must read this first)
    mvc TSCH, b5  ; get TSCH
    stw b6, *b4   ; *lo = a6
    stw b5, *a4   ; *hi = b5
    nop           ; additional delay for branch
    .endasmfunc
;
; ======== _C64P_resetime ========
;
;  void C64P_resetime(void);
;
    .global _C64P_resetime
_C64P_resetime:
    .asmfunc
    b    b3       ; return to caller
    zero b4       ; b4 = 0
    mvc  b4, TSCL ; TSCL = 0
    nop  3        ; additional delay for branch
    .endasmfunc

The Package Files

Since all modules must live in a package we also need to create a two other files:

  1. package.xdc - a file that define the package's name and identifies the modules it contains, and
  2. package.bld - a file that specifies which targets should be used to build the sources contained in this package.

package.xdc

package examples.runtime.timestamp.c64p {
    module Timestamp;
}
package.bld

for (var i = 0; i < Build.targets.length; i++) {
    var targ = Build.targets[i];
    if (targ.isa == "64P") {
        var lib = Pkg.addLibrary("lib/" + Pkg.name, targ);
        lib.addObjects(["Timestamp.c", "c64p_readtime.asm"]);
    }
}

The package.xdc file is largely self explanatory; it defines the name of the package examples.runtime.logger and it specifies the modules contained in the package, Timestamp.

The package.bld file, on the other hand, requires some explanation. The existence of package.bld indicates that the package is (re)buildable - unless the end-user is expected to build the package, deployed packages omit this file. The contents of this package.bld file indicate that the package contains a library in the lib/ sub-directory containing the compiled version of Timestamp.c and an assembled version of c64p_readtime.asm. Remarkably, this package.bld file is sufficient to compile Timestamp.c and c64p_readtime.asm, archive it into a library, and create a binary release of this package that supports all targets supported by the producer's build environment that also generate code for the C64P ISA.

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Overview of xdc.runtime/Example 1 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

Overview of xdc.runtime/Example 1

Using xdc.runtime in native host applications

Contents

  • 1 Leveraging Native OS Services
    • 1.1 Configuring the Memory Module
    • 1.2 Configuring the System Module
    • 1.3 A Complete Example
  • 2 See also

Leveraging Native OS Services

The xdc.runtime package's modules are designed to be used in environments where only a minimal subset of the ANSI C Standard Library is available. At the same time, these modules can be easily used in environments where you want them to use existing Standard Library support; e.g., using malloc() and free() for memory allocation and fwrite() for character I/O. In order to support both use cases, the xdc.runtime modules define several configuration parameters that allow the user to precisely control how much of the ANSI C Standard Library is required by the xdc.runtime package.

In this example we show how to configure the xdc.runtime packages to leverage the services of an ANSI C Standard Library. The xdc.runtime package optionally uses the ANSI C Standard Library to allocate memory, perform character I/O, and perform application shutdown. Since the Memory module handles all memory management and the System module is responsible for all character I/O and application shutdown, we need to configure the Memory and System modules to leverage the ANSI C Standard Library.

Configuring the Memory Module

All memory allocation within the xdc.runtime package is handled via calls to Memory_alloc() or Memory_calloc() and both take a heap parameter from which the memory is allocated. This heap parameter is either NULL, indicating that Memory should use the configured "default heap", or it is a non-NULL instance pointer created by some heap module. The Memory module itself does not reference any memory allocation functions from the ANSI C Standard Library, any such references are made indirectly via the specified heap instance. So, to eliminate all references to malloc() and free(), it is sufficient to ensure that all heaps instances come from modules that do not reference malloc() or free().

The xdc.runtime package contains two heap managers: HeapMin and HeapStd. The HeapStd module simply uses malloc() and free(). However, HeapMin simply manages a "high water" mark within a pre-configured static buffer. As a result, HeapMin can be used in applications that do not need dynamic memory management to eliminate references to malloc() and free().

By default, the Memory module uses HeapStd as the "default heap" when NULL is passed as the first parameter to Memory_alloc() or Memory_calloc(). Fortunately the Memory module provides a configuration parameter, Memory.defaultHeapInstance, that allows you to specify an alternative default heap.

var HeapSys = xdc.useModule("xdc.runtime.HeapSys");
var Memory = xdc.useModule("xdc.runtime.Memory");
Memory.defaultHeapInstance = HeapSys.create({size: 4096});

For more information about how to create custom heap mangers see Extending xdc.runtime Memory.

Configuring the System Module

The System module is responsible for basic character output and application termination. In order to enable System to operate in different environments with a variety of character output options, System relies on a "provider" module that implements the ISystemProvider interface. The System module provides a configuration parameter, System.SupportProxy, which determines the "provider" module used. The default provider is SysMin.

/* Configure System to use the SysStd provider for immediate character output. */
var System = xdc.useModule("xdc.runtime.System");
var SysStd = xdc.useModule("xdc.runtime.SysStd");
System.SupportProxy = SysStd;

The xdc.runtime package contains two system providers: SysMin and SysStd.

With SysStd, print statements will output immediately to the console. The SysStd module uses putchar() and fflush() for basic character output.

The SysMin module, on the other hand, simply copies the characters to a buffer, and the characters are only output when System_flush() is called. By default, SysMin will output the characters to the console when System_flush is called. If you want the characters output in a different way, such as over a UART, you can define your own output function and configure SysMin.outputFxn to reference it. Also, the size of the SysMin buffer and its placement are configurable.

Code size restrictions may dictate that you do not want your application to pull in the ANSI C Standard Library. With the exception of exit(), atexit(), and abort(), the System module does not directly reference any ANSI C Standard Library functions; any other references are the result of the System module's supporting module System.SupportProxy. For example, the SysMin support module will call fwrite() to output characters written to its internal buffer.

If neither SysMin nor SysStd are appropriate for your application, you may need to create your own ISystemProvider module. For information about how to create a new ISystemProvider module see Extending xdc.runtime System.

A Complete Example

Combining the configuration options illustrated above, we can create a configuration of the xdc.runtime package that leverages an existing ANSI C Standard Library to create a complete implementation of the xdc.runtime package.

app.c

#include <xdc/std.h>

#include <xdc/runtime/System.h>
#include <xdc/runtime/Memory.h>

#include <string.h>

/* ======== main ======== */
Int main(Int argc, String argv[])
{
    Int i;
    Char *buf;

    buf = Memory_calloc(NULL, 80, 0, NULL);
    strcat(buf, "hello world");

    for (i = 0; i < 3; i++) {
        System_printf("%s: %d\n", buf, i);
    }
    return (0);
}
app.cfg

var System = xdc.useModule("xdc.runtime.System");
var Memory = xdc.useModule("xdc.runtime.Memory");

/* use target's ANSI Standard Library support library */
var SysStd = xdc.useModule("xdc.runtime.SysStd");
System.SupportProxy = SysStd;

/* ensure all memory manager references go to HeapStd */
var HeapStd = xdc.useModule("xdc.runtime.HeapStd");
Memory.defaultHeapInstance = HeapStd.create({size: 4096});

See also

Overview of xdc.runtime/Example 2 Embedded use of xdc.runtime

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Overview of xdc.runtime/Example 2 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

Overview of xdc.runtime/Example 2

Embedded use of xdc.runtime

Contents

  • 1 Minimizing External Dependencies
    • 1.1 Configuring the Memory Module
    • 1.2 Configuring the System Module
    • 1.3 A Complete Example
  • 2 See also

Minimizing External Dependencies

The xdc.runtime package's modules are designed to be used in environments where only a minimal subset of the ANSI C Standard Library is available. At the same time, these modules can be easily used in environments where you want them to use existing Standard Library support; e.g., using malloc() and free() for memory allocation and fwrite() for character I/O. In order to support both use cases, the xdc.runtime modules define several configuration parameters that allow the user to precisely control how much of the ANSI C Standard Library is required by the xdc.runtime package.

In this example we show how to configure the xdc.runtime packages to minimize references to the ANSI C Standard Library. The xdc.runtime package optionally uses the ANSI C Standard Library to allocate memory, perform character I/O, and perform application shutdown. Since the Memory module handles all memory management and the System module is responsible for all character I/O and application shutdown, we need to configure the Memory and System modules to minimize their references to the ANSI C Standard Library.

Configuring the Memory Module

All memory allocation within the xdc.runtime package is handled via calls to Memory_alloc() or Memory_calloc(). Both methods take a heap parameter from which the memory is allocated and this heap parameter is either NULL, indicating that Memory should use the configured "default heap", or it is a non-NULL instance pointer created by some heap module. The Memory module itself does not reference any memory allocation functions from the ANSI C Standard Library, any such references are made indirectly via the specified heap instance. So, to eliminate all references to malloc() and free(), it is sufficient to ensure that all heaps instances come from modules that do not reference malloc() or free().

The xdc.runtime package contains two heap managers: HeapMin and HeapStd. The HeapStd module uses malloc() and free(). However, HeapMin simply manages a "high water" mark within a pre-configured static buffer. As a result, HeapMin can be used in applications that do not need dynamic memory management to eliminate references to malloc() and free().

By default, the Memory module uses HeapStd as the "default heap" when NULL is passed as the first parameter to Memory_alloc() or Memory_calloc(). Fortunately the Memory module provides a configuration parameter, Memory.defaultHeapInstance, that allows you to specify an alternative default heap.

var HeapMin = xdc.useModule("xdc.runtime.HeapMin");
var Memory = xdc.useModule("xdc.runtime.Memory");
Memory.defaultHeapInstance = HeapMin.create({size: 4096});

Of course some environments without malloc() and free() still need dynamic memory management. In this case, you will have to create your own module that implements the IHeap interface. For more information about how to create custom heap mangers see Extending xdc.runtime Memory.

Configuring the System Module

The System module is responsible for basic character output and application termination. In order to enable System to operate in different environments with a variety of character output options, System relies on a "provider" module that implements the ISystemProvider interface. The System module provides a configuration parameter, System.SupportProxy, which determines the "provider" module used.

The xdc.runtime package contains two system providers: SysMin and SysStd. The SysStd module uses putchar() and fflush() for basic character output. However, SysMin simply copies characters to a pre-configured static buffer for character output and provides a configuration parameter that allows you to specify how these characters are output when System_flush() is called. As a result, SysMin can be used in applications that need to avoid all references to the ANSI C Standard Library I/O functions.

With the exception of exit(), atexit(), and abort(), the System module does not directly reference any ANSI C Standard Library functions; any other references are the result of the System module's supporting module System.SupportProxy. If the System.SupportProxy configuration parameter is not set, it defaults to SysMin.

By default, the SysMin support module will call fwrite() to output characters written to its internal buffer. To eliminate this reference, it is sufficient to define your own output function, say myOutputFxn, and set SysMin.outputFxn to reference this function.

var System = xdc.useModule("xdc.runtime.System");
var SysMin = xdc.useModule("xdc.runtime.SysMin");
SysMin.outputFxn = "&myOutputFxn";
System.SupportProxy = SysMin;  /* not really necessary since this is the default */

Of course there may be other reasons why the use of SysMin is not appropriate. For example, you may want to output characters at the time they are generated rather than buffering them. In this case, you'll need to create your own ISystemProvider module. For information about how to create a new ISystemProvider module see Extending xdc.runtime System.

A Complete Example

Combining the configuration options illustrated above, we can create a configuration of the xdc.runtime package that has no external references to the ANSI C Standard Library functions other than exit(), atexit(), and abort().

app.c

#include <xdc/std.h>

#include <xdc/runtime/System.h>
#include <xdc/runtime/Memory.h>

#include <string.h>

/* ======== main ======== */
Int main(Int argc, String argv[])
{
    Int i;
    Char *buf;

    buf = Memory_calloc(NULL, 80, 0, NULL);
    strcat(buf, "hello world");

    for (i = 0; i < 3; i++) {
        System_printf("%s: %d\n", buf, i);
    }

    return (0);
}

/* ======== myOutputFxn ======== */
Void myOutputFxn(Char *buf, Int len)
{
    /* output len chars from the buffer buf */
        :
}
app.cfg

var System = xdc.useModule("xdc.runtime.System");
var Memory = xdc.useModule("xdc.runtime.Memory");

/*  eliminate all references to stdio (except exit,
 *  abort, and atexit)
 */
var SysMin = xdc.useModule("xdc.runtime.SysMin");
SysMin.outputFxn = "&myOutputFxn";
System.SupportProxy = SysMin;

/* ensure all memory manager references go to HeapMin */
var HeapMin = xdc.useModule("xdc.runtime.HeapMin");
Memory.defaultHeapInstance = HeapMin.create({size: 4096});

Notice that the only differences between this example and Runtime Example 1 is the addition of the output function, myOutputFxn, and straightforward changes to the application's configuration script. This illustrates one of the key benefits of the xdc.runtime package: code that only references the services provided by the xdc.runtime package is 100% reusable among platforms ranging all the way from native workstations down to highly resource constrained embedded platforms.

While it is technically possible to possible to make the same claim about the ANSI C Standard Library, the code size footprint, execution time overhead, and inflexibility of this library make it impractical in many embedded environments. As a result, embedded programmers have learned to avoid using the the ANSI C Standard Library in any code targeted for deployment in resource constrained devices, in effect requiring two distinct code bases: code for initial development and code for deployment. The xdc.runtime package allows you work with and reuse a single code base for any platform.

See also

Overview of xdc.runtime/Example 1 Using xdc.runtime in native host applications

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Using Encoded Types - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC

Using Encoded Types

How to create and use encoded types

TODO: belongs in the XDCtools User's Guide as a "WHATIS" + "HOWTO"

Contents

  • 1 Introduction
  • 2 Implementing An Encoded Type
    • 2.1 Module's Custom C/C++ Header
    • 2.2 Module's Meta-Domain Implementation

Introduction

RTSC modules have a dual existence: they exist in the meta-domain and (optionally) in the target-domain. On the other hand, modules have a single specification file. So, by default, a single specification results in the generation of two bindings: one for the meta-domain and one for the target domain. In most cases, the representation of types declared in the module's specification have an obvious representation in the target-domain.

However, there are situations where the module producer wants the target-domain representation of a type to differ from the default target-domain representation. For example, you need the representation of a target type to be a single integer whereas in the meta-domain (where there are virtually no performance constraints) the type is a multi-field structure. In these situations, you can declare the type to be "encoded" and take control of the target-domain representation of values having the specified encoded type.

Implementing An Encoded Type

When a type is declared with the @Encoded attribute the module must:

  1. have custom headers that declare the C type, and
  2. have a meta-domain file that defines functions that describe the alignment, sizeof and encoding of the type.
Module's Custom C/C++ Header

Module's Custom C/C++ Header. The module's custom headers, Mod__prologue.h and Mod__epilogue.h, must declare the C type for the type declared in the modules specification.

typedef xdc_Bits32 xdc_runtime_Log_Event;
Module's Meta-Domain Implementation

Module's Meta-Domain Implementation. The Mod module's meta-domain implementation file, Mod.xs, must define the following three functions for each encoded type EType:

  1. EType$alignof() - returns an integral target alignment value for the type in MAUs,
  2. EType$sizeof() - returns an integral target size value for the type in MAUs, and
  3. EType$encode(desc) - returns a string containing a C expression that evaluates to a constant that represents the value of the meta-domain value desc

/*
 *  ======== Event$alignof ========
 *  Return alignment required for an encoded value of an EventDesc
 */
function Event$alignof()
{
    return (Program.build.target.stdTypes.t_Int32.align);
}

/*
 *  ======== Event$encode ========
 *  Return a C expression that evaluates to the encoded value of an EventDesc
 */
function Event$encode(desc)
{
    var encodedDesc = "0";
    if (desc) {
        encodedDesc = "(((xdc_runtime_Log_Event)" + desc.$private.id
            + ") << 16 | " + (desc.mask & 0xFFFF) + ")";
    }
    return (encodedDesc);
}

/*
 *  ======== Event$sizeof ========
 *  Return sizeof the encoded value of an EventDesc
 */
function Event$sizeof()
{
    return (Program.build.target.stdTypes.t_Int32.size);
}
[printable version] [offline version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved

Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Using xdc.runtime Errors/Example 1 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

Using xdc.runtime Errors/Example 1

How to use the Error module

Contents

  • 1 Using the Error module
    • 1.1 Error Policies
    • 1.2 Ignoring Errors
  • 2 See also

Using the Error module

In the somewhat contrived example below, we show how errors are raised and how they are detected. The function half() raises an error when its argument is not an even number. The main() function initializes an Error_Block, calls half(), and then checks for an error.

Notice that the caller, in this case main(), must first initialize an Error_Block by calling Error_init(). After calling a function that raises errors, the caller uses Error_check() to test whether or not an an error was raised.

app.c

#include <xdc/std.h>

#include <xdc/runtime/Error.h>
#include <xdc/runtime/System.h>

/* ======== half ======== */
static Int half(Int num, Error_Block *eb)
{
    /* raise an error if num is not even */
    if ((num & 0x1) != 0) {
        Error_raise(eb, Error_E_generic,
            "num must be even", NULL);
    }
    return (num / 2);
}

/*  ======== main ======== */
Int main(Int argc, String argv[])
{
    Error_Block eb;

    /* must initialize prior to first use */
    Error_init(&eb);

    /* call a function that raises an error */
    System_printf("half returned %d\n", half(17, &eb));

    /* return 1 if an error occured, 0 otherwise */
    return (Error_check(&eb) ? 1 : 0);
}
app.cfg

var System = xdc.useModule("xdc.runtime.System");
var Error = xdc.useModule("xdc.runtime.Error");
Output

xdc.runtime.Main: "main.c", line 10: generic error: num must be even
half returned 8

For simplicity the half() function uses an existing error ID, Error_E_generic, defined by the Error module itself. We'll see in a later example (Example 4) how to define custom error IDs that allow complete control over the message format string as well as the number and type of the arguments supported by the error.

Error Policies

If we can change the Error policy to terminate on any error rather than "unwind" to the caller, any call to Error_raise() results in a call to System_abort() and control does not return to the caller. In the example above, a call to half() with an odd argument will terminate the program.

In the example below, we only change the Error.policy configuration parameter to Error.TERMINATE and without re-compiling the application it now terminates prior to returning from half(). This can be seen by comparing the output of this application with the previous example; notice that there is no output from the System_printf() function and there is a message from a call to System_abort() made by the Error module.

app.cfg

var Error  = xdc.useModule("xdc.runtime.Error");
var System = xdc.useModule("xdc.runtime.System");

Error.policy = Error.TERMINATE;
Output

xdc.runtime.Main: "main.c", line 10: generic error: num must be even
xdc.runtime.Error.raise: terminating execution

Ignoring Errors

In many small-footprint systems, errors are "handled" by aborting the application and restarting; if all errors are fatal, the application never needs to check for error return values and, thereby, eliminate unnecessary code. In cases where any error from a function that raises errors should be treated as a fatal error, it is possible to simply call the function with a NULL Error_Block reference. In effect, the caller is specifying that if an error occurs the application can not proceed and it must abort (via System_abort()).

If we modify our original example to pass NULL rather than an initialized Error_block, you'll see that the application aborts immediately upon passing an odd value to half(). Notice that the output is identical to output we got by setting the Error policy to Error.TERMINATE. Passing a NULL error block reference is effectively the same as setting the Error policy to Error.TERMINATE for the just the function being called.

app.c

#include <xdc/std.h>

#include <xdc/runtime/Error.h>
#include <xdc/runtime/System.h>

/* ======== half ======== */
static Int half(Int num, Error_Block *eb)
{
    /* raise an error if num is not even */
    if ((num & 0x1) != 0) {
        Error_raise(eb, Error_E_generic,
            "num must be even", NULL);
    }
    return (num / 2);
}

/*  ======== main ======== */
Int main(Int argc, String argv[])
{
    /* call half() with NULL Error_Block reference */
    System_printf("half returned %d\n", half(17, NULL));
}
app.cfg

var System = xdc.useModule("xdc.runtime.System");
var Error = xdc.useModule("xdc.runtime.Error");

Running the application above results in the following output.

xdc.runtime.Main: "main.c", line 10: generic error: num must be even
xdc.runtime.Error.raise: terminating execution

See also

Using xdc.runtime Errors/Example 2 How to use the Assert module

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Using xdc.runtime Errors/Example 2 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

Using xdc.runtime Errors/Example 2

How to use the Assert module

Contents

  • 1 Using the Assert module
    • 1.1 Internal assertions
    • 1.2 Runtime control of assertions
  • 2 See also

Using the Assert module

As with the Log_print and Log_write statements, Assert_isTrue assertions are

  1. enabled and disabled on a per module basis, and
  2. can be permanently enabled or disabled or even enabled and disabled at runtime.

In addition, a distinction is made between "internal" assertions (which are typically "compiled out" of released binary objects) and "public" assertions which are explicitly declared in module specification files, remain in production binary code, and are intended to be individually controllable by the system integrator.

Internal assertions

Similar to Log_write(), Assert_isTrue() takes an "event id" argument which allows one to provide additional information about the error - beyond the normal file and line number of the assertion statement itself. Unlike Log_write(), however, the "event id" passed may be NULL; in this case, the assert statement behaves like the an ordinary C assert() statement. Assertion statements that pass NULL as the event id are called "internal" assertions and can be enabled and disabled as a group separate from those assertions that pass an event id declared in a module specification file.

Since "internal" assertions do not require an event id, they can be used without creating or modifying a module specification file. In the example below, line 1 illustrates the use of an "internal" assert; it's an "internal" assert because the second argument to Assert_isTrure() is NULL.

app.c

1

#include <xdc/std.h>

#include <xdc/runtime/Assert.h>
#include <xdc/runtime/System.h>

/* ======== half ======== */
static Int half(Int num)
{
    Assert_isTrue((num & 0x1) == 0, NULL);

    return (num / 2);
}

/* ======== main ======== */
Int main(Int argc, String argv[])
{
    System_printf("half returned %d\n", half(16));

    /* trigger an assertion violation */
    System_printf("half returned %d\n", half(17));

    return (0);
}
app.cfg

var Assert  = xdc.useModule("xdc.runtime.Assert");
var System = xdc.useModule("xdc.runtime.System");
Output

half returned 8
half returned 8

Why didn't the assertion on line 1 execute? By default, "internal" assertions are disabled for all modules. To enable the evaluation of these assertions, you must set the module's common$.diags_INTERNAL configuration parameter to either Diags.ALWAYS_ON, Diags.RUNTIME_ON, or Diags.RUNTIME_OFF (and enable it at runtime via the Diags_setMask() function).

We can enable or disable the evaluation of assertions through configuration alone; it is not necessary to recompile any sources.

app.cfg

var Assert  = xdc.useModule("xdc.runtime.Assert");
var System = xdc.useModule("xdc.runtime.System");

var Diags  = xdc.useModule("xdc.runtime.Diags");
var Main = xdc.useModule("xdc.runtime.Main");

Main.common$.diags_INTERNAL = Diags.ALWAYS_ON;
Output

half returned 8
xdc.runtime.Main: "main.c", line 8: assertion failure
xdc.runtime.Error.raise: terminating execution

Runtime control of assertions

Unlike the normal ANSI C assert() mechanism, it is possible to enable and disable Assert_isTrue() assertions at runtime. Even though it is common practice to "compile out" assertions in production code, it is sometimes desirable to have a single binary image in which assertions can be optionally enabled (disabled) via a runtime variable. In the example below, there are two calls to half() that should trigger an assertion violation. Notice, however, that the first call to half() does not terminate the executable. Instead, this call simply returns to the caller with a value that is printed via System_printf. The call to Diags_setMask() enables assertion checking for the xdc.runtime.Main module (the module "containing" half()) and the next call to half() with an odd argument triggers an assertion which terminates the executable.

app.cfg

#include <xdc/std.h>

#include <xdc/runtime/Assert.h>
#include <xdc/runtime/System.h>
#include <xdc/runtime/Diags.h>

/* ======== half ======== */
static Int half(Int num)
{
    Assert_isTrue((num & 0x1) == 0, NULL);

    return (num / 2);
}

/* ======== main ======== */
Int main(Int argc, String argv[])
{
    /* call a function that raises an assertion */
    System_printf("half returned %d\n", half(17));

    /* enable internal assertions for Main */
    Diags_setMask("xdc.runtime.Main+I");

    /* call a function that raises an assertion */
    System_printf("half returned %d\n", half(17));

    return (0);
}
app.cfg

var Assert  = xdc.useModule("xdc.runtime.Assert");
var System = xdc.useModule("xdc.runtime.System");
var Diags  = xdc.useModule("xdc.runtime.Diags");

var Main = xdc.useModule("xdc.runtime.Main");
Main.common$.diags_INTERNAL = Diags.RUNTIME_OFF;
Output

half returned 8
xdc.runtime.Main: "enable.c", line 9: assertion failure
xdc.runtime.Error.raise: terminating execution

See also

Using xdc.runtime Errors/Example 1 How to use the Error module

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Using xdc.runtime Errors/Example 3 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

Using xdc.runtime Errors/Example 3

Creating a custom error handler

Contents

  • 1 Creating a Custom Error Handler
  • 2 See also

Creating a Custom Error Handler

In this example we show how to create and "install" a custom error handler. Each error raised by an application is optionally passed to a supplied user supplied function. Once an error handler function is created, it is "installed" by setting the Error.raiseHook configuration parameter to point to this function.

In the example below, we start with essentially the same application as Error Example 1 and add an "error hook" function named errHook().

app.c

1

2

3

#include <xdc/std.h>

#include <xdc/runtime/Error.h>
#include <xdc/runtime/System.h>
#include <xdc/runtime/Types.h>

#include <xdc/runtime/Main.h>
#include <xdc/runtime/Assert.h>

/* ======== errHook ======== */
Void errHook(Error_Block *eb)
{
    Types_Site *site = Error_getSite(eb);
    Error_Id eid = Error_getId(eb);

    /* print user supplied error code */
    System_printf("error %d: ", Error_getCode(eb));

    /* check originator's mod id against known mods */
    if (site->mod == Main_Module_id()) {
        System_printf("app error: ");
    }

    /* check error id against known errors */
    if (eid == Error_E_generic) {
        System_printf("generic: ");
    }
    else if (eid == Assert_E_assertFailed) {
        System_printf("assertion violation: ");
    }

    /* perform default error output */
    Error_print(eb);
}

/* ======== half ======== */
static Int half(Int num, Error_Block *eb)
{
    if ((num & 0x1) != 0) {
        Error_raise(eb, Error_E_generic,
            "num must be even", NULL);
    }
    return (num / 2);
}

/* ======== main ======== */
Int main(Int argc, String argv[])
{
    /* call a function that raises an error */
    System_printf("half returned %d\n",
        half(17, NULL));

    return (0);
}
app.cfg

var Error  = xdc.useModule("xdc.runtime.Error");
var System = xdc.useModule("xdc.runtime.System");
var Main   = xdc.useModule("xdc.runtime.Main");

/* set errHook (defined in main.c) as the error
 * hook function.  Strings begining with '&'
 * can be assigned to function pointers to
 * reference unspecified external functions
 */
Error.raiseHook = "&errHook";

/* set user-defined code for E_generic errors */
Error.E_generic.code = 28;

The errHook() function, while not very practical, illustrates the sorts of things that can be tested within an error handler. In particular, it is possible to

  • test which module originally raised the error 1,
  • test for and specially "handle" specific errors 2, and
  • display or log the error 3.

Every RTSC module Mod provides a Mod_Module_id() macro that returns a unique module ID. On line 1 above, we show how this ID can be retrieved and used at runtime to conditionally affect the behavior of the application based on which module raised the error. In this case, Main_Module_id() returns the ID of the xdc.runtime.Main module.

Running the application above results in the following output.

error 28: app error: generic: xdc.runtime.Main: "hook.c", line 66: generic error: num must be even
xdc.runtime.Error.raise: terminating execution

Comparing the output of this example with that of Error Example 1 we see that errHook()

  • outputs the error code specified by the user in the configuration script, "error 28:";
  • properly detected that the error occurred in the main application and output "app error:";
  • determined that the type of error was Error.E_generic and displayed "generic:", and finally
  • called the "normal" error print function to output the same information displayed in Example 1.

Error codes can be individually set in configuration script but it's also possible to find and set all error codes in an application or check that every error has a code that has been set.

var Error = xdc.useModule("xdc.runtime.Error");
var mods = xdc.om.$modules;
for (var i = 0; i < mods.length; i++) {
    var M = mods[i];
    for (var f in M) {
        if (M[f] instanceof Error.Id) {
            var err = M[f];
            err.code = 17;
            print("M.$name + "." + f + ".code = " + err.code);
        }
    }
}

See also

Using xdc.runtime Errors/Example 1 | How to use the Error module
Using xdc.runtime Errors/Example 2 | How to use the Assert module

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Using xdc.runtime Errors/Example 4 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

Using xdc.runtime Errors/Example 4

How to create and use custom Error IDs

Contents

  • 1 Creating Custom Error IDs
  • 2 The Errors Module
    • 2.1 The Package Files
  • 3 See also

Creating Custom Error IDs

The example below is identical to Error Example 1 except that we replace the use of the predefined error ID, Error.E_generic, with an error ID of our own. As before, the function half() raises an error when its argument is not an even number and main() initializes an Error_Block, calls half(), and checks for an error. The only difference is that the error raised is now defined in a new module, named examples.runtime.errors.Errors, and the output now includes the value of current value of the offending argument.

Since we are using an error defined in a new module (examples.runtime.errors.Errors), we mustn't forget to add this to our application's configuration script; otherwise, when we build the application we will get "undefined reference to ..." errors from the linker.

app.c

#include <xdc/std.h>

#include <xdc/runtime/Error.h>
#include <xdc/runtime/System.h>

#include <examples/runtime/errors/Errors.h>

/* ======== half ======== */
static Int half(Int num, Error_Block *eb)
{
    /* raise an error if num is not even */
    if ((num & 0x1) != 0) {
        Error_raise(eb, Errors_PARAMETER, num,
            "num must be even");
    }
    return (num / 2);
}

/*  ======== main ======== */
Int main(Int argc, String argv[])
{
    Error_Block eb;

    /* must initialize prior to first use */
    Error_init(&eb);

    /* call a function that raises an error */
    System_printf("half returned %d\n", half(17, &eb));

    /* return 1 if an error occured, 0 otherwise */
    return (Error_check(&eb) ? 1 : 0);
}
app.cfg

var System = xdc.useModule("xdc.runtime.System");
var Error = xdc.useModule("xdc.runtime.Error");

var Errors = xdc.useModule(
     "examples.runtime.errors.Errors");
Output

xdc.runtime.Main: "main.c", line 10: parameter value (= 0x11) is not valid: num must be even
half returned 8

The Errors Module

This section shows the complete set of files necessary to create a new module that specifies a set of custom error IDs. The module specification below couldn't be simpler: it declares the name of the new module, Errors, and defines a new Error.Id named PARAMETER that accepts two arguments, a value and a message.

Errors.xdc

import xdc.runtime.Error;

module Errors {
    config Error.Id PARAMETER = {
        msg: "parameter value (= 0x%x) is not valid: %s"
    };
}

The Package Files

Since all modules must live in a package we also need to create a two other files:

  1. package.xdc - a file that define the package's name and identifies the modules it contains, and
  2. package.bld - a file that specifies everything that needs to be included in the package.

Since this package does not contain any source files that need to be compiled or included in the this package, the package.bld file can be empty. Why is it needed at all if it can be empty? The existence of package.bld tells RTSC tooling that this package is "buildable" while the contents specify what should be built.

package.xdc

package examples.runtime.errors {
    module Errors;
}
package.bld

/* nothing more to say (package.xdc said it all) */

The package.xdc file is largely self explanatory; it defines the name of the package, examples.runtime.errors, and it specifies the modules contained in the package, ErrorID.

The package.bld file, on the other hand, requires some explanation. The existence of package.bld indicates that the package is (re)buildable and, because the RTSC build engine's default behavior is sufficient for this package, the package.bld file can be empty.

See also

Using xdc.runtime Errors/Example 1 | How to use the Error module
Using xdc.runtime Errors/Example 3 | Creating a custom error handler
Using xdc.runtime Logging/Example 1 | Classic "hello world" using Log

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Using xdc.runtime Errors/Example 5 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

Using xdc.runtime Errors/Example 5

Creating a logging error handler

Contents

  • 1 A Logging Error Handler
  • 2 Using the Logging Error Handler
  • 3 Implementation of the Logging Error Handler
    • 3.1 The ErrLog module
    • 3.2 The package files
    • 3.3 Why create a module?
  • 4 See also

A Logging Error Handler

In this example we show how to create and "install" a custom error handler that simply logs errors. Each error raised by an application is logged to a special logger. This allows one to easily see a complete list of each error that occurs during the operation of the system without changing or recompiling any components that raise errors.

In the example below, we create a module named ErrLog. This module supplies an Error "raise hook" that logs errors to the logger associated with the ErrLog module itself. So, to trace all errors raised in the system, you simply assign your preferred logger instance to the ErrLog module's logger. Logging Example 1 shows how to set a module's logger.

While it is obvious that an Error raise hook can simply call Log_print or Log_write, this particular Error raise hook uses Log_put to record events that appear to come directly from the caller of Error_raise. To see why this is useful, we first look at the behavior of this hook in a simple application. We then examine the implementation of this error handler.

Using the Logging Error Handler

To illustrate the use of the logging Error handler, ErrLog, we start with a contrived example application, app.c, that uses the Error module to raise and check for errors. The ErrLog module developed in this example provides a single method; an Error raise hook compatible function named ErrLog_raiseHook.

By configuring Error.raiseHook to be this function, without changing any application sources all errors are logged. This has the advantage that you can track all errors that occur in an application and the overhead of capturing these errors is quite small. No formatting or interpretation of errors occurs, the raw data is simply recorded for later analysis.

app.c

#include <xdc/std.h>

#include <xdc/runtime/Error.h>
#include <xdc/runtime/System.h>

/* ======== main ======== */
Int main(Int argc, String argv[])
{
    Error_Block eb;

    /* must initialize prior to first use */
    Error_init(&eb);

    /* call a function that raises an error */
    System_printf("half returned %d\n",
        half(17, &eb));

    /* return 1 if an error occurred */
    return (Error_check(&eb) ? 1 : 0);
}

/* ======== half ======== */
Int half(Int num, Error_Block *eb)
{
    if ((num & 0x1) != 0) {
        Error_raise(eb, Error_E_generic,
            "num must be even", NULL);
    }

    return (num / 2);
}
app.cfg

var Error  = xdc.useModule("xdc.runtime.Error");
var System = xdc.useModule("xdc.runtime.System");
var Diags = xdc.useModule("xdc.runtime.Diags");

/* import the ErrLog module */
var ErrLog = xdc.useModule(
    "examples.runtime.errors.ErrLog");

/* force all errors to call ErrLog_raiseHook() */
Error.raiseHook = ErrLog.raiseHook;

/* use LoggerSys for the application's logs */
var Logger = xdc.useModule("xdc.runtime.LoggerSys");

/* configure the default logger (and ErrLog's logger) */
var Defaults = xdc.useModule("xdc.runtime.Defaults");
Defaults.common$.logger = Logger.create();

Using the configuration above, the output of running app.c is shown below.

Output

xdc.runtime.Main: Error 0: errId 0xe20011, modId 0x800b, "app.c", line 39
half returned 8

Notice that the "source" of the Log event reporting the error is not the ErrLog module. Instead the source of the event is the source of the original error, xdc.runtime.Main. The ErrLog module appears to have magically arranged for all Error_raise calls to be immediately proceeded by a call to Log_write. The next section shows how ErrLog really works.

Implementation of the Logging Error Handler

In this section we show the entire implementation of the ErrLog module as well as all package files necessary to build and deliver the ErrLog module to anyone wishing to use it.

The ErrLog module

The ErrLog module. The ErrLog module specification is shown below.

ErrLog.xdc

1

2

import xdc.runtime.Log;
import xdc.runtime.Diags;
import xdc.runtime.Error;

module ErrLog
{
    /*! Log Event used to log all errors */
    config Log.Event LOGEVENT = {
        mask: Diags.USER1,
        msg: "Error %d: errId 0x%x, modId 0x%x, \"%s\", line %d"
    };

    /*! Error raise hook function that logs errors */
    Void raiseHook(Error.Block *err);
}

This specification declares a single function, raiseHook 2, compatible with the Error raise hook configuration parameter and defines a new Log event, creatively named LOGEVENT 1, that is used to log all errors.

Since ErrLog only specifies a single method, ErrLog_errorRaise(), and the declared Log_Event LOGEVENT is automatically defined in the configuration generated C file, the ErrLog module's C implementation (ErrLog.c) is quite small. Except for necessary headers, there are just three lines of functional code!

ErrLog.c

1

2

3

#include <xdc/std.h>

#include <xdc/runtime/Log.h>
#include <xdc/runtime/Error.h>
#include <xdc/runtime/Types.h>

#include "package/internal/ErrLog.xdc.h"

/* ======== ErrLog_raiseHook ======== */
Void ErrLog_raiseHook(Error_Block *eb)
{
    /* extract call site information from the error block */
    Types_Site *site = Error_getSite(eb);

    /* compose an event with the error block's call site information */
    Types_Event evt = Types_makeEvent(Log_getEventId(ErrLog_LOGEVENT), site->mod);

    /* "put" this new event into the ErrLog module's log */
    Log_put8(evt, Error_getCode(eb), Error_getId(eb),
        site->mod, (IArg)site->file, site->line, 0, 0, 0);
}

Although the ErrLog module's raiseHook function only has three lines of code, it leverages relatively advanced features of the Log and Types modules. While it's beyond the scope of this example to provide a detailed explanation of how this function works, the following outline should provide sufficient background for those who wish to learn more.

1 - Error_Blocks contain the call site where the call to Error_raise was made, on this line we extract this information via Error_getSite() so that in the next line we can construct a Types_Event that appears to come from the same place.
2 - here we construct a Types_Event, the event type handled by ILoggers. To construct this event we need a call site (from the line above) and an "event id". In this case, we use the Log_getEventId() to get the id of the LOGEVENT event defined by the ErrLog module's specification.
3 - now that we've constructed an event we simply need to put the event, and the arguments assumed by the event, to some event logger. We use Log_put8() to pass the event to the logger associated with the current module, ErrLog.
The package files

The package files. Since all modules must live in a package we also need to create a two other files:

  1. package.xdc - a file that define the package's name and identifies the modules it contains, and
  2. package.bld - a file that specifies which targets should be used to build the sources contained in this package.

package.xdc

package examples.runtime.errors {
    module ErrLog;
}
package.bld

for (var i = 0; i < Build.targets.length; i++) {
    var targ = Build.targets[i];

    var lib = Pkg.addLibrary("lib/" + Pkg.name, targ);
    lib.addObjects(["ErrLog.c"]);
}

The package.xdc file is largely self explanatory; it defines the name of the package, examples.runtime.errors, and it specifies the modules contained in the package, ErrLog.

The package.bld file, on the other hand, requires some explanation. This package.bld file specifies that the package contains a library in the lib/ sub-directory containing the compiled version of ErrLog.c for every target supported by the producer's build environment. Remarkably, this package.bld file is sufficient to compile ErrLog.c for every target, archive it into a library, and create a binary release of this package that supports all targets supported by the producer's build environment.

Why create a module?

Why create a module?. It's easy enough to define a raise hook function whose body matches the body of ErrLog_raiseHook(). Why bother defining a module and package just to define a three line Error "callback" function?

  • By virtue of being a module, ErrLog has its own logger which allows the integrator to easily redirect errors to a separate "error log";
  • ErrLog.LOGEVENT can be configured to give the integrator control over when error logging is enabled as well as the format of all error messages;
  • rather than cut-copy-pasting subtle error hooks into many applications, it's better to share and enhance a common implementation; and, finally
  • since we need to define a distinguished Log event for errors (ErrLog.LOGEVENT) and the only way to define a new Log event is to create a module, we really don't have a choice.

See also

Using xdc.runtime Errors/Example 1 | How to use the Error module
Using xdc.runtime Errors/Example 3 | Creating a custom error handler
Using xdc.runtime Errors/Example 4 | How to create and use custom Error IDs
Using xdc.runtime Logging/Example 1 | Classic "hello world" using Log

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Using xdc.runtime Gates/Example 1 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

Using xdc.runtime Gates/Example 1

Adding concurrency support for pthread-based applications

Contents

  • 1 Using Gate in a pthread-based Application
  • 2 A Simple Multi-Threaded Application
  • 3 How to Use Gate to Protect Global Data
  • 4 See also

Using Gate in a pthread-based Application

Before showing the use of Gate, we start with a somewhat contrived multi-threaded application that has a concurrency bug. Then we look at how the Gate module is used to fix the application.

A Simple Multi-Threaded Application

In the somewhat contrived example below we show a pthread-based application that creates two threads that each increments a global counter, named count, by one N times. When the application completes, we expect that the counter's value is precisely 2 * N. However, unless special precautions are taken, the final value of the counter may differ from 2 * N. How is this possible? Incrementing a global variable often requires several instructions (to read the current value into a register, increment the register, and write the new value to memory) and threads can preempt one another between any two instructions. So, starting with count = 0, the following sequence of instructions is possible:

  1. thread 0 reads count (= 0) into register A
  2. thread 1 reads count (= 0) into register A
  3. thread 0 increments and stores A (= 1) to count
  4. thread 1 increments and stores A (= 1, because each thread has a "private" version of A) to count

If this sequence is repeated for the entire run of the application, the final value of count will be N rather than 2 * N.

app.c

#include <stdio.h>
#include <pthread.h>

#define N   1000000
#define T   2

Int count = 0;   /* global counter updated by all threads */

/* ======== thread ======== */
static Void thread(Void *state) {
    Int i;
    printf("starting thread %d\n", *(Int *)state);
    for (i = 0; i < N; i++) {
        count++;                        /* update global data */
    }
    printf("thread %d done.\n", *(Int *)state);
}

/* ======== main ======== */
Int main(Int argc, String argv[]) {
    pthread_attr_t pattrs;
    pthread_t      pthread[T];
    Int            i, state[T];

    pthread_attr_init(&pattrs);
    for (i = 0; i < T; i++) {            /* create T threads */
        state[i] = i;
        pthread_create(&pthread[i], &pattrs,
            (void *(*)(void *))thread, (void *)(state + i));
    }

    for (i = 0; i < T; i++) {
        pthread_join(pthread[i], NULL);  /* wait for them to complete */
    }

    if (count != (N * T)) {              /* check their work */
        fprintf(stderr, "count = %d, should be %d\n", count, N);
        return (1);
    }
    return (0);
}
Output

starting thread 0
starting thread 1
thread 0 done.
thread 1 done.
count = 162752, should be 200000

How to Use Gate to Protect Global Data

Gates are used to protect modifiable data structures that are shared between two or more threads in a multi-threaded environment. In the application above we saw that when multiple threads update shared data, if these threads can preempt on another at arbitrary points in the instruction stream, there is a risk that the data will not be consistently updated. Gates provide a way to control or serialize access to global data and prevent the anomalies seen above.

To prevent this anomaly, we can modify the implementation of the thread() function above to encapsulate the modification of count with calls to Gate_enterSystem() > and Gate_leaveSystem() <. Since only one thread can be "in the system gate" at a time, the entire sequence of instructions that updates count is guarenteed to be executed without interruption. As a result, all threads will store a properly updated count before another thread can read it and the final value of count in the new application should always be 2 * N.

C Code

>

<

#include <xdc/runtime/Gate.h>

static Void thread(Void *state) {
    Int i;
    printf("starting thread %d\n", *(Int *)state);
    for (i = 0; i < N; i++) {
        IArg key = Gate_enterSystem();  /* enter critical section */
        count++;                        /* update global data     */
        Gate_leaveSystem(key);          /* leave critical section */
    }
    printf("thread %d done.\n", *(Int *)state);
}

Since we added a reference to a RTSC module, Gate, we need to add a configuration script that declares that we are using this module, run the RTSC configuration tool, and link the application above with the output. But if we re-run the application, the gate does not seem to help.

Config Code (Wrong!)

xdc.useModule("xdc.runtime.Gate");
Output

   starting thread 0
   starting thread 1
   thread 0 done.
   thread 1 done.
   count = 126370, should be 200000

The problem is twofold: although we need to use the Gate module, as shown above, we also need to

  • create an instance of a "real" gate, and
  • "bind" this instance to the System module's common$.gate configuration parameter

The Gate_enterSystem() method uses a the gate instance associated with the System module. Unless we bind a non-trivial gate instance System, Gate_enterSystem() will operate on a default gate instance created from GateNull. If we assume there is a module named examples.runtime.gates.Lock that provides a posix-based implementation of IGateProvider, we can finally fix the application with the configuration script shown below.

Config Code (Right)

var Gate= xdc.useModule("xdc.runtime.Gate");

var System = xdc.useModule("xdc.runtime.System");
var Lock = xdc.useModule("examples.runtime.gates.Lock");
System.common$.gate = Lock.create();
Output

starting thread 0
starting thread 1
thread 0 done.
thread 1 done.

A complete implementation of this presumed examples.runtime.gates.Lock module appears in the Runtime Gate Provider Example 1.

See also

Extending xdc.runtime Gates/Example 1 A posix-based IGateProvider implementation

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Using xdc.runtime Logging/Example 5 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

Using xdc.runtime Logging/Example 5

Controlling Logging

Contents

  • 1 Controlling Logging
  • 2 Event Categories
  • 3 Event Levels
  • 4 Event Filtering Example
  • 5 See also

Controlling Logging

It is possible, both at runtime and through static configuration, to control which log statements are actually logged by your application. This is important in managing the space within the log buffers on the target as well as in minimizing the bandwidth required to move the records off of the target to any realtime analysis tools.

There are three main ways in which events can be filtered on the target.

  1. Filtering based on the category of an event
  2. Filtering based on the level (detail level, priority, etc.) of an event
  3. Filtering based on the module which the event is logged from

Event Categories

Every Log Event is defined with a particular category, defined by the xdc.runtime.Diags module. For example, the STATUS category is used for error and warning type events, the ANALYSIS category is used for events related to benchmarks and performance analysis, and the INFO category is used for generic informational events.

Every module has a diagnostics mask which contains a bit representing each of the event categories, and these bits can be enabled or disabled both at configuration time and at runtime. This allows event categories to be enabled or disabled on a per-module basis.

Event Levels

Events may also represent different "levels" of information. Depending on the category of the event, there may be different priority levels of events, or there may be events which provide different levels of detail.

For every event category, there are four event levels. These levels form a hierarchy, so that LEVEL1 is the highest and LEVEL4 is the lowest. If the filtering level is set to LEVEL2 for a given category, then only the events in that category which are LEVEL1 or LEVEL2 will be logged.

See Diags.EventLevel for the definition of the event levels.

Unlike the event categories, which are enabled and disabled on a per-module basis through the module diagnostics mask, the event filter levels are handled by the ILogger implementation. Event level filtering is considered an advanced feature, and not all ILogger implementations provide support for it, only those which also implement the xdc.runtime.IFilterLogger interface. The xdc.runtime.LoggerBuf module supports event level filtering.

Event Filtering Example

app.cfg

1

2

3

4

var Log = xdc.useModule("xdc.runtime.Log");
var Diags = xdc.useModule("xdc.runtime.Diags");

/* Configure logging for xdc.runtime.Main */
var Main = xdc.useModule("xdc.runtime.Main");

/* Use the LoggerBuf ILogger service provider */
var LoggerBuf = xdc.useModule("xdc.runtime.LoggerBuf");

/* Create and bind a logger for Main */
Program.global.logger = LoggerBuf.create();

Main.common$.logger = Program.global.logger;

/* Enable the USER1 event category for Main. */
Main.common$.diags_USER1 = Diags.RUNTIME_ON;

/* Disable USER2 events of all levels for Main. */
Main.common$.diags_USER2 = Diags.RUNTIME_OFF;

/* We must enable filtering by level. */
LoggerBuf.filterByLevel = true;

/* Filter out all USER1 events below LEVEL2. */
LoggerBuf.level1Mask = 0;
LoggerBuf.level2Mask = Diags.USER1;
LoggerBuf.level3Mask = 0;
LoggerBuf.level4Mask = Diags.ALL_LOGGING & (~Diags.USER1);

The configuration contains the following important settings:

  1. We choose which event categories to enable or disable. We enable USER1 in 1, and disable USER2 in 2. All categories except STATUS are disabled by default, but we explicitly disable USER2 here for clarity.
  2. We enable filtering by event in 3. Since this is considered an advanced feature, it is disabled by default in order to save on the overhead of filtering.
  3. We configure the LoggerBuf module's event level filtering in 4. For all categories except USER1, we set the filter level to LEVEL4 so that events of all four levels are logged. To demonstrate the level-based filtering, we set USER1 to LEVEL2, so that only LEVEL2 and above events will be logged in this category. Note that these filtering settings are global and affect all modules.
app.c

#include <xdc/std.h>

#include <xdc/runtime/Log.h>
#include <xdc/runtime/LoggerBuf.h>
#include <xdc/runtime/Diags.h>

#include <xdc/cfg/global.h>

extern const LoggerBuf_Handle logger;

int main(int argc, String argv[])
{
    /* Print USER1 category events with each of the four levels. */
    Log_print0(Diags_USER1 | Diags_LEVEL1, "A USER1 category, LEVEL1 event.");
    Log_print0(Diags_USER1 | Diags_LEVEL2, "A USER1 category, LEVEL2 event.");
    Log_print0(Diags_USER1 | Diags_LEVEL3, "A USER1 category, LEVEL3 event.");
    Log_print0(Diags_USER1 | Diags_LEVEL4, "A USER1 category, LEVEL4 event.");

    /* Print a USER2 category event. */
    Log_print0(Diags_USER2 | Diags_LEVEL1, "A USER2 category, LEVEL1 event.");

    /* Flush the logger to see the records printed out. */
    LoggerBuf_flush(logger);

    return (0);
}

The application C code contains some arbitrary Log_print statements which demonstrate the effects of filtering. Based on the configuration, USER2 events will not be logged, and only USER1 events of LEVEL2 or higher will be logged. When we flush the LoggerBuf to see the records printed out, we see that the filtering has taken affect and there are only two records in the output.

Output

#0000000001 xdc.runtime.Main: A USER1 category, LEVEL1 event.
#0000000002 xdc.runtime.Main: A USER1 category, LEVEL2 event.

See also

Using xdc.runtime Logging/Example 1 | Classic "hello world" using Log
Using xdc.runtime Logging/Example 2 | Events provided by all RTSC target modules
Using xdc.runtime Logging/Example 3 | Adding logging to existing code bases
Using xdc.runtime Logging/Example 4 | Adding Logging to RTSC Modules

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Using xdc.runtime Startup/GNU - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

Using xdc.runtime Startup/GNU

How GNU gcc targets bootstrap

NOTE: to be written

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Using xdc.runtime Startup/Microsoft - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

Using xdc.runtime Startup/Microsoft

How Microsoft targets bootstrap

NOTE: to be written

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Using xdc.runtime Startup/TI - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

Using xdc.runtime Startup/TI

How Texas Instruments targets bootstrap

Contents

  • 1 Introduction
  • 2 Initialize Registers
    • 2.1 C6000
    • 2.2 C2000
    • 2.3 ARM
  • 3 User Reset Function
  • 4 Process .cinit Records
  • 5 Start Modules
  • 6 Process .pinit Records
  • 7 Main() Function

Introduction

The boot sequence for each target is implemented in the xdc runtime support package named by the target; see xdc.bld.ITarget.rts. This package contains both a compiled version of the xdc.runtime package's modules and any necessary bootstrap code.

The xdc runtime support package and the TI C Compiler RTS Library are not the same. The TI C Compiler RTS Library contains an implementation of the C Standard Library as required by the ANSI C Language. The xdc runtime support package contains bootstrap code and pre-compiled versions of the modules contained in the xdc.runtime package. In some cases, the xdc.runtime package's modules call functions specified by the ANSI C Language which, for TI targets, is provided in the TI C Compiler RTS Library.

In the sections that follow, we outline in detail the initialization process common to all TI targets. This initialization process unfolds as follows:

  1. Initialize Registers - initialize processor-specific registers to enable a minimal C environment necessary for subsequent initialization
  2. User Reset Function - call user supplied reset function
  3. Process .cinit Records - initialize statically initialized C data
  4. Start Modules - run module-specific startup functions
  5. Process .pinit Records - run any C++ initialization functions; e.g., constructors for statically defined objects.
  6. Main() Function - call user defined main().

Initialize Registers

Execution on TI targets always starts at _c_int00, which is plugged as the reset vector. The boot sequence begins with the initialization of a few critical registers, including the system stack pointer. This part of the sequence is target-specific.

For a detailed view of the initial register setup, the actual boot code is available in the XDCtools installation. On all targets, the relevant portion of the boot code (in terms of the initial register setup) occurs between _c_int00 (where execution starts) and the call to the xdc_runtime_Startup_reset() function. Boot code for any other targets should be available in a similar location, inside the "rts" folder for that target.

The following sections show what register initialization occurs for each target and where the actual boot code is located:

C6000

  • Clear the IER and IFR.
  • Set the system stack pointer (B15) to point to the end of the stack section.
  • Set the global page pointer (B14) to point to the beginning of the .bss section.
  • On C6700 class processors, also set the floating point registers.

The c6000 boot code is available in boot.c contained in the ti.targets.rts6000 package The auto_init() function is defined in autoinit.c in the same package.

C2000

Set up the stack, initialize any status bits not initialized by the reset, and set the C28x modes. The c2000 boot code is available in the boot_cg.asm file contained in the ti.targets.rts2800 package.

ARM

Set user mode, change to 16-bit state, and initialize and align the user mode stack.

The arm7 (arm9) boot code is available in the boot.asm file contained in the ti.targets.arm.rtsarm7 and ti.targets.arm.rtsarm9 packages.

User Reset Function

The reset function is the first control point in the boot sequence. It occurs almost immediately after the target has been reset. The user-specified reset function is called after the initial register initialization, but before even the .cinit records have been processed. Any code that needs to be executed immediately after a reset, such as configuring or disabling a watchdog timer, should occur here.

The Startup module has a module-wide configuration parameter called resetFxn, which specifies the function to run at this point. The following example XDCscript configuration script demonstrates the Startup module's use:

var Startup = xdc.useModule('xdc.runtime.Startup');
Startup.resetFxn = "&myResetFxn";

Note that the "&" isn't actually being used as an operator in these statements; it's just part of a string. Internally, XDCscript knows to interpret the characters after the & as the name of an external user-supplied function.

The resetFxn is called before the .cinit records have been processed, so no data structures or variables have been loaded with their initial values at this point.

Process .cinit Records

For each statically initialized variable, TI targets generate a ".cinit record" that contains the location of the variable in memory and its initial value. These records are gathered together (in no particular order) to form a special .cinit output section that is part of the resulting object file. This section may be loaded onto the target and processed during the target's bootstrap or it may be read and processed directly by the application's loader. The choice between these two options is controlled by the -r option passed to the TI linker.

If the .cinit section is processed by the target's bootstrap, it occurs after the resetFxn and before any modules are initialized. So, module startup functions may assume that the C environment has been fully initialized but the resetFxn can not.

Start Modules

At this point, the boot sequence calls the xdc_runtime_Startup_exec() function. This function then calls all the module startup functions (Mod_Module_startup) for each module Mod that was declared as "used" during the configuration process. The Startup module has two module-wide configuration parameters: firstFxns and lastFxns, which are arrays of user-specified functions to be called before and after the module startup functions, respectively.

The following example XDCscript configuration statements specify functions to be called with the firstFxns and lastFxns parameters.

var Startup = xdc.useModule('xdc.runtime.Startup');
var len = Startup.firstFxns.length;
Startup.firstFxns.length++;
Startup.firstFxns[len] = '&myFirst';
var len = Startup.lastFxns.length;
Startup.lastFxns.length++;
Startup.lastFxns[len] = '&myLast';

Functions added to "firstFxns" typically initialize values needed by module startup functions—such as initialization of global data used by modules, which is a function of platform-specific registers. Functions added to the "lastFxns" array might be used by middleware or other modules to perform any necessary initialization before main().

Process .pinit Records

After the module startup functions have run, the .pinit records are processed. The .pinit table consists of pointers to initialization functions. For C++ programs, class constructors of global objects execute during .pinit processing.

Note that the module initialization in the previous section may occur in the middle of .pinit processing. So, C++ constructors that require the services of a module must explicitly call Startup_exec() prior to using any module.

Main() Function

Finally, the startup function call the main() function with an argument count and an array of argument strings. The argument strings are stored on the target and initialized by the user's loader.

[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers


Using xdc.runtime System/Example 1 - Offline Version

From RTSC-Pedia

Jump to: navigation, search
revision tip
—— LANDSCAPE orientation
[printable version] offline version generated on 04-Aug-2010 21:08 UTC

Using xdc.runtime System/Example 1

Classic "hello world" using System

"hello world"

In this section, we use the System module to implement a "hello world" application.

The C application - shown in the table below - uses System_printf() to output the string "hello world." and its configuration file uses xdc.useModule() to declare that the application directly references the xdc.runtime.System module. This configuration statement is necessary - without it the configuration process will not know the initial set of package to load or which modules need to be part of the application link step. Note that only those modules directly referenced by the application need to be declared in this manner; modules used by this initial set are implicitly included based on information supplied by the packages containing these initial modules.

Why do we need a "printf-like" function, why not simply use the ANSI C Standard library printf() function? The printf() function is required by the ANSI standard to support a rich set of format specifications. While this set is necessary for sophisticated text output, most embedded systems use only a few basic formats and typically only as a debugging aid during development. As a result, it it possible to implement a much smaller and faster printf-like function that provides all of the functionality typically needed in embedded systems. For comparison, the ANSI C printf() implementation provided by the TI C6x code-gen tools is approximately 35KB whereas the corresponding System_printf() function in the xdc.runtime package is only 4KB. This reduction in size is possible because System_printf() does not support all of the ANSI C format specifications nor does it need to support the rich FILE * stream abstraction.

hello.c

#include <xdc/std.h>

#include <xdc/runtime/System.h>

/*  ======== main ======== */
Int main(Int argc, String argv[])
{
    System_printf("hello world\n");
    return (0);
}
hello.cfg

var System = xdc.useModule("xdc.runtime.System");

The output of this application is just:

hello world

How are the characters generated by System_printf() output? After all, every embedded application has a different way of interacting with the external environment. The System module can't possibly work in every embedded application environment without some means for the the developer to "tell" the System module how to output characters. To keep the implementation of System 100% portable, the System module provides a configuration parameter, called SupportProxy, which allows each developer to "bind" a unique set of low-level functions required in the implementation of System services.

In the next example, we use the same application C sources but we explicitly "bind" an implementation of the low-level functions necessary to do character output via configuration of the System module itself. Because the configuration script binds SysMin as the "service provider" for the System module, each character of output is simply copied to an internal buffer (managed by SysMin). When the application exits, the contents of the buffer are output to the screen (again, by SysMin).

In outline, the configuration file below

  1. gets a reference to the System module (via xdc.useModule()) so that subsequent statements can configure this module. This statement is necessary because the application directly references System functions.
  2. selects a "system provider" module, SysMin, that will be used to implement low-level services needed by the System module.
  3. configures the SysMin module's internal character output buffer to only hold 128 characters (more than enough for "hello world").
  4. "binds" the selected system provider to the System module by assigning to the System.SupportProxy configuration parameter.
hello.c

#include <xdc/std.h>

#include <xdc/runtime/System.h>

/*  ======== main ======== */
Int main(Int argc, String argv[])
{
    System_printf("hello world\n");
    return (0);
}
hello.cfg

var System = xdc.useModule("xdc.runtime.System");

/* declare that this app uses the SysMin module */
var SysMin = xdc.useModule("xdc.runtime.SysMin");

/* set SysMin's output buffer size */
SysMin.bufSize = 128;

/* tell System to use SysMin's implementation of putchar() */
System.SupportProxy = SysMin;

The output of this configuration is simply:

Output

hello world
[printable version] offline version generated on 04-Aug-2010 21:08 UTC
Copyright © 2008 The Eclipse Foundation. All Rights Reserved
Retrieved from "http://rtsc.eclipse.org/docs-tip/Special:Offline"
Views
  • Special
Personal tools
  • Log in / create account
Navigation
  • RTSC-pedia home
  • RTSC project home
  • News & support
  • Help
binders
  • General Information
  • RTSC Programming
  • User's Guide
  • Reference Manual
package reference
  • XDCtools packages
lists
  • Master doc-map
  • Category query
  • Redirected pages
tools
  • Find+Replace (grep)
  • RSS feed
more tools
  • Upload file
  • Special pages
Powered by MediaWiki
  • Privacy policy
  • About RTSC-Pedia
  • Disclaimers