enable specification of addresses for user-specified constructed objects
diff --git a/src/packages/xdc/rov/Model.xs b/src/packages/xdc/rov/Model.xs
index 7f02064..fcaf3cd 100644
--- a/src/packages/xdc/rov/Model.xs
+++ b/src/packages/xdc/rov/Model.xs
@@ -522,6 +522,7 @@
var varObj = {};
varObj.name = constructInst2[i].name;
varObj.type = constructInst2[i].type;
+ varObj.addr = constructInst2[i].addr;
varObj.offset = 0;
if (constructInst2[i].offset != undefined) {
varObj.offset = constructInst2[i].offset;
@@ -562,7 +563,6 @@
var varList = ofReader.getGlobalVariablesByType(".*_Struct$");
ofReader.close(); /* close file handle */
-
/* Run through the list and add only constructed objects */
for (var i = 0; i < varList.length; i++) {
var varObj = {};
diff --git a/src/packages/xdc/rov/StateReader.xs b/src/packages/xdc/rov/StateReader.xs
index a1c117c..63b03dc 100644
--- a/src/packages/xdc/rov/StateReader.xs
+++ b/src/packages/xdc/rov/StateReader.xs
@@ -143,12 +143,17 @@
symbolname = symbolname.substring(0,
symbolname.indexOf('.'));
}
- var constructInstAddr = symTable.getSymbolValue(symbolname);
- if (constructInstAddr != -1) {
- if ("offset" in constructInst) {
- constructInstAddr += constructInst.offset;
+ if ("addr" in constructInst && constructInst.addr != null) {
+ tempArray.push(parseInt(constructInst.addr));
+ }
+ else {
+ var constructInstAddr = symTable.getSymbolValue(symbolname);
+ if (constructInstAddr != -1) {
+ if ("offset" in constructInst) {
+ constructInstAddr += constructInst.offset;
+ }
+ tempArray.push(constructInstAddr);
}
- tempArray.push(constructInstAddr);
}
}
}