1    /*
     2     *  Copyright 2020 by Texas Instruments Incorporated.
     3     *
     4     */
     5    
     6    /*
     7     * Copyright (c) 2008-2020 Texas Instruments Incorporated - http://www.ti.com
     8     * All rights reserved.
     9     *
    10     * Redistribution and use in source and binary forms, with or without
    11     * modification, are permitted provided that the following conditions
    12     * are met:
    13     *
    14     * *  Redistributions of source code must retain the above copyright
    15     *    notice, this list of conditions and the following disclaimer.
    16     *
    17     * *  Redistributions in binary form must reproduce the above copyright
    18     *    notice, this list of conditions and the following disclaimer in the
    19     *    documentation and/or other materials provided with the distribution.
    20     *
    21     * *  Neither the name of Texas Instruments Incorporated nor the names of
    22     *    its contributors may be used to endorse or promote products derived
    23     *    from this software without specific prior written permission.
    24     *
    25     * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    26     * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    27     * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
    28     * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
    29     * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
    30     * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
    31     * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    32     * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
    33     * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
    34     * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    35     * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    36     */
    37    import xdc.bld.ITarget2;
    38    
    39    /*!
    40     *  ======== M3.xdc ========
    41     *  Embedded little endian Cortex M3 bare metal target
    42     *
    43     *  This module defines an embedded bare metal target on Cortex M3. The target
    44     *  generates code compatible with the "v7M" architecture.
    45     *
    46     */
    47    metaonly module M3 inherits IM {
    48        override readonly config string name                = "M3"; 
    49        override readonly config string suffix              = "m3g";
    50        override readonly config string isa                 = "v7M";
    51    
    52        override config string platform     = "ti.platforms.tiva:TM4C1294NCPDT";
    53    
    54        override readonly config ITarget2.Command cc = {
    55            cmd: "$(rootDir)/bin/$(GCCTARG)-gcc -c -MD -MF $@.dep",
    56            opts: "-mcpu=cortex-m3 -mthumb -mabi=aapcs -g"
    57        };
    58    
    59        readonly config ITarget2.Command ccBin = {
    60            cmd: "bin/arm-none-eabi-gcc -c -MD -MF $@.dep",
    61            opts: "-mcpu=cortex-m3 -mthumb -mabi=aapcs -g"
    62        };
    63    
    64        override readonly config ITarget2.Command asm = {
    65            cmd: "$(rootDir)/bin/$(GCCTARG)-gcc -c -x assembler-with-cpp",
    66            opts: "-mcpu=cortex-m3 -mthumb"
    67        };
    68    
    69        readonly config ITarget2.Command asmBin = {
    70            cmd: "bin/arm-none-eabi-gcc -c -x assembler-with-cpp",
    71            opts: "-mcpu=cortex-m3 -mthumb"
    72        };
    73    
    74        override config ITarget2.Options lnkOpts = {
    75            prefix: "-mcpu=cortex-m3 -mthumb -nostartfiles -Wl,-static -Wl,--gc-sections",
    76            suffix: "-L$(packageBase)/libs/install-native/$(GCCTARG)/lib/thumb/v7-m/nofp -Wl,--start-group -lgcc -lc -lm -Wl,--end-group --specs=nano.specs -Wl,-Map=$(XDCCFGDIR)/$@.map"
    77        };
    78    
    79        /*!
    80         *  ======== includeOpts ========
    81         *  Additional user configurable target-specific include path options
    82         *
    83         *  This target uses newlib-nano run-time.
    84         */
    85        override config string includeOpts = "-I$(packageBase)/libs/install-native/$(GCCTARG)/include/newlib-nano -I$(packageBase)/libs/install-native/$(GCCTARG)/include";
    86    }
    87    /*
    88     *  @(#) gnu.targets.arm; 1, 0, 0,; 4-8-2020 12:50:23; /db/ztree/library/trees/xdctargets/xdctargets-w13/src/ xlibrary
    89    
    90     */
    91