]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - ipc/ipcdev.git/blobdiff - ipc-bios.bld
heaps: Avoid possible divide by zero error
[ipc/ipcdev.git] / ipc-bios.bld
index d0b3e24a2398671c0251cf15e27c7f481e6a7394..afaecda5264fc228b18f1c427d284be1e42a204b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011-2013, Texas Instruments Incorporated
+ * Copyright (c) 2011-2018 Texas Instruments Incorporated - http://www.ti.com
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -67,7 +67,7 @@ var Build = xdc.useModule('xdc.bld.BuildEnvironment');
 var Pkg = xdc.useModule('xdc.bld.PackageContents');
 
 /* Common ccopts suffix used for all C6x targets */
-var c6xOpts = " -mi10 -mo -pdr -pden -pds=238 -pds=880 -pds1110 -g ";
+var c6xOpts = " -mi10 -mo -pdr -pden -pds=238 -pds=880 -pds1110 -g --mem_model:const=data --mem_model:data=far ";
 
 /*
  * -mi10 => maximum cycles that interrupts may be disabled is 10
@@ -76,21 +76,18 @@ var c6xOpts = " -mi10 -mo -pdr -pden -pds=238 -pds=880 -pds1110 -g ";
  * -pden => show remark ids
  * -pds=238 => ignore "controlling expression is constant"
  * -pds=880 => ignore "unused parameter"
+ * --mem_model:const=data => Const objects are placed according to the
+ * --mem_model:data option
+ * --mem_model:data=far => Data accesses default to far
  */
 
 var ccOpts = {
-    "ti.targets.C28_large"            : " -mo -g ",
-    "ti.targets.C28_float"            : " -mo -g ",
-
     "ti.targets.C64P"                 : c6xOpts,
-    "ti.targets.C64P_big_endian"      : c6xOpts,
     "ti.targets.C674"                 : c6xOpts,
 
     "ti.targets.elf.C64P"             : c6xOpts,
-    "ti.targets.elf.C64P_big_endian"  : c6xOpts,
     "ti.targets.elf.C64T"             : c6xOpts,
     "ti.targets.elf.C66"              : c6xOpts,
-    "ti.targets.elf.C66_big_endian"   : c6xOpts,
     "ti.targets.elf.C674"             : c6xOpts,
 
     "ti.targets.arm.elf.Arm9"         : " -ms -g ",
@@ -99,22 +96,27 @@ var ccOpts = {
     "ti.targets.arm.elf.M3"           : " --embed_inline_assembly -ms -pds=71",
     "ti.targets.arm.elf.M4"           : " -ms -g ",
     "ti.targets.arm.elf.M4F"          : " -ms -g ",
+    "ti.targets.arm.elf.R5F"          : " -ms -g ",
 
     "ti.targets.arp32.elf.ARP32"      : " -g ",
     "ti.targets.arp32.elf.ARP32_far"  : " -g ",
 
     "gnu.targets.arm.A8F"             : " -g ",
-    "gnu.targets.arm.A15F"            : " -g "
+    "gnu.targets.arm.A15F"            : " -g ",
+    "gnu.targets.arm.A53F"            : " -g "
 };
 
 var lnkOpts = {
     "ti.targets.elf.C66"              : " --cinit_compression=off",
     "ti.targets.arm.elf.M4"           : " --retain=.resource_table" +
+                                        " --cinit_compression=off",
+    "ti.targets.arm.elf.R5F"          : " --retain=.resource_table" +
                                         " --cinit_compression=off"
 };
 
 var platform = "";
 var smpEnabled = true;
+var Bld_goal = "";
 
 /* initialize local vars with those set in xdcpaths.mak (via XDCARGS) */
 for (arg = 0; arg < arguments.length; arg++) {
@@ -133,6 +135,15 @@ for (arg = 0; arg < arguments.length; arg++) {
         smpEnabled = configParts[0].split("=")[1].match(/^1$/);
         continue;
     }
+    else if (configParts[0].split("=")[0] == "GOAL") {
+        Bld_goal = configParts[0].split("=")[1];
+        continue;
+    }
+
+    if (platform == "") {
+        platform = "NONE";
+    }
+
     /*
      * Get the compiler's installation directory.
      * For "ti.targets.elf.C674=/vendors/c6x/7.2.0", we get "/vendors/c6x/7.2.0"
@@ -145,7 +156,8 @@ for (arg = 0; arg < arguments.length; arg++) {
         continue;
     }
 
-//    print("Building '" + targetName + "' using '" + rootDir + "' ...");
+//    print("Building for platform:" + platform + " targetName:" + targetName
+//            + " rootDir: " + rootDir + " smpEnabled:" + smpEnabled + "...");
 
     var target = xdc.useModule(targetName);
     target.rootDir = rootDir;
@@ -180,12 +192,28 @@ for (arg = 0; arg < arguments.length; arg++) {
 
     if (targetName.match(/elf\.C66$/)) {
         switch (platform) {
+            case '66AK2G':
+                target.platforms.$add("ti.platforms.evmTCI66AK2G02:core0");
+                break;
+
+            case '66AK2E':
+                target.platforms.$add("ti.platforms.evmC66AK2E:core0");
+                break;
+
+            case 'TCI6630':
+                target.platforms.$add("ti.platforms.evmTCI6630K2L:core0");
+                break;
+
             case 'TCI6636':
-                target.platforms.$add("ti.platforms.evmTCI6636K2H");
+                target.platforms.$add("ti.platforms.evmTCI6636K2H:core0");
                 break;
 
             case 'TCI6638':
-                target.platforms.$add("ti.platforms.evmTCI6638K2K");
+                target.platforms.$add("ti.platforms.evmTCI6638K2K:core0");
+                break;
+
+            case 'C6678':
+                target.platforms.$add("ti.platforms.evm6678");
                 break;
 
             case 'DRA7XX':
@@ -193,8 +221,16 @@ for (arg = 0; arg < arguments.length; arg++) {
                 target.platforms.$add("ti.platforms.evmDRA7XX:dsp2");
                 break;
 
+            case 'TDA3XX':
+                target.platforms.$add("ti.platforms.evmTDA3XX");
+                break;
+
+            case 'NONE':
+                /* okay, no platform specified */
+                break;
+
             default:
-                print("Unknown platform, skipping " + platform);
+                print("Unknown C66x platform, skipping " + platform);
                 break;
         }
     }
@@ -216,8 +252,29 @@ for (arg = 0; arg < arguments.length; arg++) {
                 target.platforms.$add("ti.platforms.evmDRA7XX:ipu1");
                 break;
 
+            case 'TDA3XX':
+                target.platforms.$add("ti.platforms.evmTDA3XX");
+                break;
+
+            case 'NONE':
+                /* okay, no platform specified */
+                break;
+
             default:
-                print("Unknown platform, skipping " + platform);
+                print("Unknown M4 platform, skipping " + platform);
+                break;
+        }
+    }
+
+    if (targetName.match(/elf\.R5F$/)) {
+        switch (platform) {
+            case 'AM65XX':
+                target.platforms.$add("ti.platforms.cortexR:AM65X:false:R5F0");
+                target.platforms.$add("ti.platforms.cortexR:AM65X:false:R5F1");
+                break;
+
+            default:
+                print("Unknown R5F platform, skipping " + platform);
                 break;
         }
     }
@@ -232,6 +289,10 @@ if (smpEnabled) {
                 xdc.module("ti.targets.arm.elf.M3").profiles["debug"];
         xdc.module("ti.targets.arm.elf.M4").profiles["smp"] =
                 xdc.module("ti.targets.arm.elf.M4").profiles["debug"];
+        xdc.module("gnu.targets.arm.A15F").profiles["smp"] =
+                xdc.module("gnu.targets.arm.A15F").profiles["debug"];
+        xdc.module("gnu.targets.arm.A53F").profiles["smp"] =
+                xdc.module("gnu.targets.arm.A53F").profiles["debug"];
     }
 }
 
@@ -254,3 +315,6 @@ for (var t = 0; t < Build.targets.length; t++) {
 /* -----------------------------------------------------------------------*/
 /* make release files '.tar.gz' files (.tar is default) */
 Pkg.attrs.compress = true;
+
+/* catch inadvertant use of unsupported data types */
+Pkg.attrs.defs = "-Dxdc__strict";