metaonly module ti.platforms.arp32.Platform

Generic platform support for the arp32

This platform requires a memory map file called board.xs to be available in the same directory as the application config file. It should define values for the config parameters which are declared in this platform. [ more ... ]
Configuration settings sourced in ti/platforms/arp32/Platform.xdc
var Platform = xdc.useModule('ti.platforms.arp32.Platform');
module-wide constants & types
        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  ...
 
        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  ...
        obj.cacheable// Is this block cacheable? = Bool  ...
        obj.cacheAttrs// Device specific MMU attributes = Any  ...
module-wide config parameters
    Platform.BOARD//  = IPlatform.Board undefined;
per-instance config parameters
    var params = new Platform.Params// Instance config-params object;
            id: "0",
            clockRate: 1.0,
            catalogName: "ti.catalog.arp32",
            deviceName: "",
            revision: ""
        };
        params.codeMemory// The default segment for code sections = String null;
        params.dataMemory// The default segment for data sections = String null;
        params.renameMap// A map for renaming memory objects = String[string] undefined;
        params.sectionMap// A section name to SectionSpec mapping = Any[string] undefined;
        params.stackMemory// The default segment for stack = String null;
per-instance creation
    var inst = Platform.create// Create an instance-object(String name, params);
 
DETAILS
This platform requires a memory map file called board.xs to be available in the same directory as the application config file. It should define values for the config parameters which are declared in this platform.
EXAMPLES
A sample board.xs file.
  var boardARP32 = {
      CPU: {
          clockRate:      200.0,
          catalogName:    "ti.catalog.arp32",
          deviceName:     "Arctic",
      },
      externalMemoryMap: [
          ["ARP32VECS", {
              comment: "External memory for ARP32 interrupt vectors",
              name:  "ARP32VECS",
              base:  0x80000000,
              len:   0x00000100,
              page:  0,
              space: "code/data"
          }],

          ["ARP32", {
              comment: "External memory for ARP32 use",
              name:  "ARP32",
              base:  0x80000100,
              len:   0x0fffff00,
              page:  1,
              space: "code/data"
          }]
      ],
      codeMemory:  "ARP32",
      dataMemory:  "DMEM",
      stackMemory: "DMEM",
  };
 
struct Platform.Board

Board-level description

Configuration settings
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

A named contiguous range of addresses

Configuration settings
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"
    obj.cacheable = Bool  ...
    // Is this block cacheable?
    obj.cacheAttrs = Any  ...
    // Device specific MMU attributes
 
DETAILS
Memory structures are used in the description of the memory available from CPUs and platforms.
 
config Platform.BOARD  // module-wide
Configuration settings
Platform.BOARD = IPlatform.Board undefined;
 
Instance Config Parameters

Configuration settings
var params = new Platform.Params;
// Instance config-params object
    params.CPU = IExeContext.Cpu {
    // CPU Attributes necessary to create an execution context
        id: "0",
        clockRate: 1.0,
        catalogName: "ti.catalog.arp32",
        deviceName: "",
        revision: ""
    };
    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.externalMemoryMap = IPlatform.Memory[string] undefined;
    // A mapping of memory names to memory objects for external memory
    params.memoryExclude = Bool false;
    // Section to exclude from linker command file generation
    params.renameMap = String[string] undefined;
    // A map for renaming memory objects
    params.sectionMap = Any[string] undefined;
    // A section name to SectionSpec mapping
    params.sectionsExclude = String null;
    // Section to exclude from linker command file generation
    params.sectionsTemplate = String null;
    // Replace the sections portion of the generated linker command file
    params.stackMemory = String null;
    // The default segment for stack
 
config Platform.Params.CPU  // instance

CPU Attributes necessary to create an execution context

Configuration settings
var params = new Platform.Params;
  ...
params.CPU = IExeContext.Cpu {
    id: "0",
    clockRate: 1.0,
    catalogName: "ti.catalog.arp32",
    deviceName: "",
    revision: ""
};
 
DETAILS
The platform requires these attributes to get the device internal memory map.
SEE
 
config Platform.Params.codeMemory  // instance

The default segment for code sections

Configuration settings
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
 
config Platform.Params.customMemoryMap  // instance

A custom mapping of memory names to memory objects

Configuration settings
var params = new Platform.Params;
  ...
params.customMemoryMap = IPlatform.Memory[string] undefined;
 
DETAILS
This parameter allows platform instances to completely overwrite a default memory map based on the internal memory map coming from CPU's memory map and externalMemoryMap.
Custom memory map must fit within the default memory map, unless the verification of the fit is disabled (see xdc.platform).
 
config Platform.Params.dataMemory  // instance

The default segment for data sections

Configuration settings
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
 
config Platform.Params.externalMemoryMap  // instance

A mapping of memory names to memory objects for external memory

Configuration settings
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.Params.memoryExclude  // instance

Section to exclude from linker command file generation

Configuration settings
var params = new Platform.Params;
  ...
params.memoryExclude = Bool false;
 
SEE
 
config Platform.Params.renameMap  // instance

A map for renaming memory objects

Configuration settings
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.Params.sectionMap  // instance

A section name to SectionSpec mapping

Configuration settings
var params = new Platform.Params;
  ...
params.sectionMap = Any[string] undefined;
 
SEE
 
config Platform.Params.sectionsExclude  // instance

Section to exclude from linker command file generation

Configuration settings
var params = new Platform.Params;
  ...
params.sectionsExclude = String null;
 
SEE
 
config Platform.Params.sectionsTemplate  // instance

Replace the sections portion of the generated linker command file

Configuration settings
var params = new Platform.Params;
  ...
params.sectionsTemplate = String null;
 
SEE
 
config Platform.Params.stackMemory  // instance

The default segment for stack

Configuration settings
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
Static Instance Creation

Configuration settings
var params = new Platform.Params;
// Allocate instance config-params
params.config =   ...
// Assign individual configs
 
var inst = Platform.create(String name, 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 "".
generated on Tue, 14 Feb 2017 20:00:44 GMT