Move Hwi.excHandlerFunc assignment into ti.deh.Deh:module$use() 3.30.01.10_eng 3.30.01.11_eng
authorRobert Tivy <rtivy@ti.com>
Wed, 22 Oct 2014 22:51:53 +0000 (15:51 -0700)
committerRobert Tivy <rtivy@ti.com>
Wed, 22 Oct 2014 23:03:58 +0000 (16:03 -0700)
A previous change moved this assignment from module$static$init() to
module$meta$init(), but this no longer works since ti.ipc.ipcmgr:getLibs()
now references ti.deh.Deh:
        var deh = xdc.module("ti.deh.Deh");
and if a module has not otherwise been "used" up until this point then
the xdc.module() reference will run module$meta$init(), and since this
is getLibs() you can't "useModule" at this point (which Deh's
module$meta$init() does).

Also, some other change is causing ti.deh's getLibs() to be called even
when nothing does a useModule() on any module within the ti.deh package.
For a device which ti.deh doesn't support, such as Keystone, it would
previously throw an error and fail the whole app build.  Now, ti.deh's
getLibs() is changed to contribute nothing if none of its modules are
used for an unsupported device.

packages/ti/deh/Deh.xs
packages/ti/deh/package.xs
packages/ti/ipc/ipcmgr/package.xs

index baa024d8b4949e224f5f1e4ae468bd4b6b61631a..bb0376e5de1197a46814c1374d41a4c1b00c6585 100644 (file)
 var Deh = null;
 var MultiProc = null;
 
-function module$meta$init()
+/*
+ *  ======== module$use ========
+ */
+function module$use()
 {
+    var Swi = null;
+    var Task = null;
+    var Exception = null;
     var Settings = xdc.module("ti.sysbios.family.Settings");
     var Hwi;
 
-    /* Only process during "cfg" phase */
-    if (xdc.om.$name != "cfg") {
-        return;
-    }
-
     Deh = this;
 
     /*
@@ -66,16 +67,6 @@ function module$meta$init()
         /* Need to do this early before it gets sealed */
         Hwi.excHandlerFunc = Deh.excHandler;
     }
-}
-
-/*
- *  ======== module$use ========
- */
-function module$use()
-{
-    var Swi = null;
-    var Task = null;
-    var Exception = null;
 
     xdc.useModule('xdc.runtime.System');
 
index 6a0156e16d6507645cbcd80ff2039874913877bb..87624cee66255beae39f4ec937815de8bbd88658 100644 (file)
@@ -63,7 +63,17 @@ function getLibs(prog)
            break;
 
        default:
-           throw new Error("Unsupported device: " + device);
+           var deh = xdc.module("ti.deh.Deh");
+           var watchdog = xdc.module("ti.deh.Watchdog");
+           var stackdbg = xdc.module("ti.deh.StackDbg");
+           if (deh.$used || watchdog.$used || stackdbg.$used) {
+                   throw new Error("Unsupported device: " + device);
+           }
+           else {
+               /* package is merely referenced and not used */
+               return "";
+           }
+
            break;
     }
 
index 9830ae459a825c107a8627c9e118dc210874b9d0..af7385526fe9d91d05810adaa579c6d97fada1a5 100644 (file)
  *
  */
 
+/*
+ *  ======== init ========
+ */
+function init()
+{
+    if (xdc.om.$name != 'cfg') {
+        return;
+    }
+
+    xdc.loadPackage("ti.deh");
+}
+
 /*
  *  ======== getLibs ========
  */