1    /* 
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     * 
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     * 
    11     * */
    12    /*
    13     *  ======== C55_huge.xdc ========
    14     *
    15     */
    16    
    17    /*!
    18     *  ======== C55_huge ========
    19     *  TI C55 huge model target
    20     */
    21    metaonly module C55_huge inherits ti.targets.ITarget {
    22        override readonly config string name                = "C55_huge";   
    23        override readonly config string suffix              = "55H";
    24        override readonly config string isa                 = "55"; 
    25        override readonly config xdc.bld.ITarget.Model model= {
    26            endian: "big",
    27            dataModel: "huge"
    28        };
    29        override readonly config string rts                 = "ti.targets.rts5500";
    30    
    31        override readonly config xdc.bld.ITarget.Module base= ti.targets.C55;
    32    
    33        override readonly config ITarget.Command ar = {
    34            cmd: "ar55",
    35            opts: "rq"
    36        };
    37    
    38        /*!
    39         *  ======== cc ========
    40         *  Required options:
    41         *  @p(dlist)
    42         *      -`--memory_model=huge`
    43         *          huge model; data pointers are greater than 16-bits
    44         */
    45        override readonly config ITarget.Command cc = {
    46            cmd: "cl55 -c",
    47            opts: "--memory_model=huge"
    48        };
    49    
    50        override readonly config ITarget.Command vers = {
    51            cmd: "cl55",
    52            opts: ""
    53        };
    54    
    55        /*!
    56         *  ======== asm ========
    57         *  Required options:
    58         *  @p(dlist)
    59         *      -`--memory_model=huge`
    60         *          huge model; data pointers are greater than 16-bits
    61         */
    62        override readonly config ITarget.Command asm = {
    63            cmd: "cl55 -c",
    64            opts: "--memory_model=huge"
    65        };
    66    
    67        override readonly config ITarget.Command lnk = {
    68            cmd: "lnk55",
    69            opts: ""
    70        };
    71    
    72        /*!
    73         *  ======== asmOpts ========
    74         *  User configurable assembler options.
    75         *
    76         *  Defaults:
    77         *  @p(dlist)
    78         *      -`-qq`
    79         *          super quiet mode
    80         *      -`-vcore:3`
    81         *          huge model is only supported on rev 3 cores (and above)
    82         */
    83        override config ITarget.Options asmOpts = {
    84            prefix: "-qq -vcore:3",
    85            suffix: ""
    86        };
    87    
    88        /*!
    89         *  ======== ccOpts ========
    90         *  User configurable compiler options.
    91         *
    92         *  Defaults:
    93         *  @p(dlist)
    94         *      -`-qq`
    95         *          super quiet mode
    96         *      -`-vcore:3`
    97         *          huge model is only supported on rev 3 cores (and above)
    98         *      -`-pdsw225`
    99         *          generate a warning for implicitly declared functions; i.e.,
   100         *          functions without prototypes
   101         *      -`-Dfar=`
   102         *          ignore keyword far; this allows one to write code that can
   103         *          be compiled in large model and small model without #ifdef's
   104         */
   105        override config ITarget.Options ccOpts = {
   106            prefix: "-qq -vcore:3 -pdsw225 -Dfar= ",
   107            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 ITarget.Options lnkOpts = {
   130            prefix: "-w -q -u _c_int00",
   131            suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts55h.lib"
   132        };
   133    
   134        override config string includeOpts = "-I$(rootDir)/include";
   135    
   136        final override readonly config string sectMap[string] =
   137            ti.targets.C55.sectMap;
   138    
   139        override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
   140            t_IArg          : { size: 2, align: 2 },
   141            t_Char          : { size: 1, align: 1 },
   142            t_Double        : { size: 2, align: 2 },
   143            t_Float         : { size: 2, align: 2 },
   144            t_Fxn           : { size: 2, align: 2 },
   145            t_Int           : { size: 1, align: 1 },
   146            t_Int8          : { size: 1, align: 1 },
   147            t_Int16         : { size: 1, align: 1 },
   148            t_Int32         : { size: 2, align: 2 },
   149            t_Int40         : { size: 4, align: 2 },
   150            t_Long          : { size: 2, align: 2 },
   151            t_LDouble       : { size: 2, align: 2 },
   152            t_LLong         : { size: 4, align: 2 },
   153            t_Ptr           : { size: 2, align: 2 },
   154            t_Short         : { size: 1, align: 1 },
   155            t_Size          : { size: 2, align: 2 },
   156        };
   157    
   158        override readonly config Int bitsPerChar = 16;
   159    
   160    }
   161    /*
   162     *  @(#) ti.targets; 1, 0, 3,320; 7-29-2009 16:34:46; /db/atree/library/trees/xdctargets/xdctargets-b12x/src/
   163     */
   164