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