Skip to content
Merged
Show file tree
Hide file tree
Changes from 14 commits
Commits
Show all changes
115 commits
Select commit Hold shift + click to select a range
5a61fba
Component Viewer initial commit
thorstendb-ARM Jan 8, 2026
db0edef
fixed mock file paths
thorstendb-ARM Jan 8, 2026
d0a388b
removed paralelism, added functions for Debug IF, added minimal scvd …
thorstendb-ARM Jan 8, 2026
58af03e
removed "any" from parser, added parser tests
thorstendb-ARM Jan 9, 2026
916c093
fixed parser for const folding, added tests
thorstendb-ARM Jan 9, 2026
a460a5e
moved test files, updated evaluator and cache, removed bigInt handling
thorstendb-ARM Jan 9, 2026
8080fc9
removed "any"
thorstendb-ARM Jan 9, 2026
bc32470
added test for pseudo members _count, _addr
thorstendb-ARM Jan 9, 2026
b1ae4bb
fixed evaluator func call
thorstendb-ARM Jan 9, 2026
e96a6b4
minor evaluator fixes, added tests
thorstendb-ARM Jan 9, 2026
a6ecf34
readded gdbtargetDebugTracker, fixed evaluator for context
thorstendb-ARM Jan 9, 2026
9a80f69
fix for potential issue in evaluator.ts
thorstendb-ARM Jan 9, 2026
b3e82ec
fixed unused in test
thorstendb-ARM Jan 9, 2026
a869b4e
fixed memory read, removed most console log, refactored CalcMem
thorstendb-ARM Jan 9, 2026
5d56755
changes to printf return
thorstendb-ARM Jan 9, 2026
902a058
cache refactor and test
thorstendb-ARM Jan 9, 2026
04d9675
added tests for scvd-eval-interface.ts
thorstendb-ARM Jan 9, 2026
7aa9465
cleanup
thorstendb-ARM Jan 9, 2026
a3e297d
refactored
thorstendb-ARM Jan 12, 2026
cb66e7e
refactor
thorstendb-ARM Jan 12, 2026
14a7036
refactored register host
thorstendb-ARM Jan 12, 2026
822e038
added async to readRegister
thorstendb-ARM Jan 12, 2026
9015331
fixed async
thorstendb-ARM Jan 12, 2026
c90bb4a
added class member access modifiers public, private etc.
thorstendb-ARM Jan 12, 2026
46534b5
refactor, moved if/else to multiline with braces
thorstendb-ARM Jan 12, 2026
7c451aa
refactored eval-interface, generalized name check
thorstendb-ARM Jan 12, 2026
75f21d5
refactored eval interface
thorstendb-ARM Jan 12, 2026
3782869
refactored tests and minimized files
thorstendb-ARM Jan 12, 2026
04dfc66
refactor
thorstendb-ARM Jan 12, 2026
f0d2d12
refactured and simplified data host
thorstendb-ARM Jan 12, 2026
40ffba1
renamed TODO to TOIMPL to outsmart qltysh bot
thorstendb-ARM Jan 12, 2026
daf6d1f
refactor, implemented review comments
thorstendb-ARM Jan 12, 2026
1625892
Merge branch 'main' into componentViewer
thorstendb-ARM Jan 12, 2026
7eaea38
added copyright headers
thorstendb-ARM Jan 12, 2026
d478af7
changed to multiline if/else
thorstendb-ARM Jan 12, 2026
de426a3
simplified cache
thorstendb-ARM Jan 12, 2026
01cd2d5
cleaned AI comments
thorstendb-ARM Jan 12, 2026
bbd2785
fixed copyrights
thorstendb-ARM Jan 13, 2026
ad6cb66
Merge branch 'main' into componentViewer
thorstendb-ARM Jan 13, 2026
a2ec3a1
refactor, if SPACE (
thorstendb-ARM Jan 13, 2026
dd90a6d
refactored for linter: Object injection sink
thorstendb-ARM Jan 13, 2026
7631b49
fixed errors
thorstendb-ARM Jan 13, 2026
d6e7afc
linter object sink
thorstendb-ARM Jan 13, 2026
aa2b3e6
fixed linter
thorstendb-ARM Jan 13, 2026
8b7fade
added calculateMemoryUsage() tests (normal, full, overflow, corrupt, …
thorstendb-ARM Jan 13, 2026
5b19514
added remaining printf spec and tests
thorstendb-ARM Jan 13, 2026
2a7cc01
added proposal for __size_of
thorstendb-ARM Jan 13, 2026
c223e5a
added implementation for getNumArrayElements()
thorstendb-ARM Jan 13, 2026
8a91c94
removed unnecessary guards
thorstendb-ARM Jan 13, 2026
330fb7c
fixed printf padding logic
thorstendb-ARM Jan 13, 2026
6148ec0
simplified padding
thorstendb-ARM Jan 13, 2026
2e4571f
retrieve file context from gdb
thorstendb-ARM Jan 13, 2026
be9346f
added printf test IPv6
thorstendb-ARM Jan 13, 2026
7ce2878
added bigint support for float64
thorstendb-ARM Jan 13, 2026
d7341ca
Component viewer target access addition (#732)
omarArm Jan 13, 2026
8275267
remove all global mocks from component viewer (#734)
omarArm Jan 14, 2026
e386bb5
for HEX display, removed padding and truncated float
thorstendb-ARM Jan 14, 2026
e6f09c6
fixed test
thorstendb-ARM Jan 14, 2026
5b66de0
fixed findSymbol error return
thorstendb-ARM Jan 14, 2026
ed873bc
refactoring expression
thorstendb-ARM Jan 14, 2026
c1da5c9
refactored expression
thorstendb-ARM Jan 14, 2026
88c5e73
huge refactor, divided ScvdBase into Base and Node
thorstendb-ARM Jan 14, 2026
e161587
refactored: removed model invalidate
thorstendb-ARM Jan 14, 2026
3e5df99
refactored expression
thorstendb-ARM Jan 14, 2026
a561ebd
refactored xml read, removed any
thorstendb-ARM Jan 14, 2026
5daec54
refactored castToDerived
thorstendb-ARM Jan 14, 2026
efd1d8a
added printf test
thorstendb-ARM Jan 15, 2026
2d313bb
removed unused code
thorstendb-ARM Jan 15, 2026
2326061
added condition to <break> "instruction"
thorstendb-ARM Jan 15, 2026
b0c764b
added missing copyrights
thorstendb-ARM Jan 15, 2026
9fcd1f0
added TPIP for xml2js
thorstendb-ARM Jan 15, 2026
26a1ea5
Add register reads (#737)
omarArm Jan 15, 2026
9859182
fixing collapsible state maintainence in tree view (#738)
omarArm Jan 15, 2026
6e1536e
refactored GUI tree to display a stable tree over multiple run/stop o…
thorstendb-ARM Jan 15, 2026
03bdb35
Catch unable to read memory errors (#739)
omarArm Jan 15, 2026
132cb78
added tests, added type awareness to evaluator
thorstendb-ARM Jan 16, 2026
f6df80f
refactor, added tests
thorstendb-ARM Jan 16, 2026
03345f5
refactured evaluator
thorstendb-ARM Jan 16, 2026
6368427
inline refactor
thorstendb-ARM Jan 16, 2026
06b830d
evaluator coverage test
thorstendb-ARM Jan 16, 2026
9278129
more tests added
thorstendb-ARM Jan 19, 2026
481d0e1
added tests
thorstendb-ARM Jan 19, 2026
dae6c5f
added tests for data-host (memory and registers)
thorstendb-ARM Jan 19, 2026
3870fa1
added tests
thorstendb-ARM Jan 20, 2026
87a50e6
remaining coverage
thorstendb-ARM Jan 20, 2026
7645fba
test cleanup
thorstendb-ARM Jan 20, 2026
649b946
prettify
thorstendb-ARM Jan 20, 2026
341d78f
fixed copyright headers
thorstendb-ARM Jan 20, 2026
2e80ba2
Merge branch 'main' into componentViewer
thorstendb-ARM Jan 20, 2026
a6cb0f8
fix view do display data
thorstendb-ARM Jan 20, 2026
558f03b
moved tests to unit and integration folders, renamed test files
thorstendb-ARM Jan 20, 2026
7bdd35e
added small description to copyright header for tests
thorstendb-ARM Jan 20, 2026
623e034
Code cleanup (#746)
omarArm Jan 20, 2026
09c68fe
removed wording "coverage"
thorstendb-ARM Jan 20, 2026
30f2ef6
fixed comments
thorstendb-ARM Jan 20, 2026
a780cb7
updated TPIP
thorstendb-ARM Jan 20, 2026
b2dbb8f
no need to set tree view functions as async functions (#747)
omarArm Jan 20, 2026
bf818df
removing jest timeout but leaving a comment (also logged)
thorstendb-ARM Jan 20, 2026
48d999f
Renaming Controller as Main (#748)
omarArm Jan 20, 2026
bfabc75
Merge branch 'main' into componentViewer
thorstendb-ARM Jan 21, 2026
19e74e7
Remove unneeded test file (#750)
omarArm Jan 21, 2026
541e28d
simplifying snapshotContainer()
thorstendb-ARM Jan 20, 2026
b6b1ec9
updated for snapshotContainer
thorstendb-ARM Jan 20, 2026
cfcf356
set "get classname" to a string, use instanceof where logic is needed
thorstendb-ARM Jan 21, 2026
d771f8f
removed unused function
thorstendb-ARM Jan 21, 2026
8431524
fixed checks for valid GDB data
thorstendb-ARM Jan 21, 2026
f9a6718
minor fixes on readMemory handling
thorstendb-ARM Jan 21, 2026
b3aa9b2
declaring member variable at the beginning of the class (#751)
omarArm Jan 21, 2026
625ff0a
fixed test
thorstendb-ARM Jan 21, 2026
4657a17
refactoring and code cleanup (#755)
omarArm Jan 21, 2026
163723b
adjust copyright message (#756)
omarArm Jan 21, 2026
3758187
fixed copyright headers
thorstendb-ARM Jan 21, 2026
81e5d88
review work
thorstendb-ARM Jan 21, 2026
36accaf
adjusting tests to new private members names
omarArm Jan 21, 2026
46f8f7d
minor file cleanup
thorstendb-ARM Jan 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 18 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,11 @@
"id": "cmsis-debugger.liveWatch",
"name": "Live Watch",
"icon": "media/trace-and-live-light.svg"
},
{
"id": "cmsis-debugger.componentViewer",
"name": "Component Viewer",
"icon": "${rocket}"
Comment thread
omarArm marked this conversation as resolved.
Outdated
}
]
},
Expand Down Expand Up @@ -337,7 +342,16 @@
}
}
}
]
],
"configuration": {
Comment thread
jreineckearm marked this conversation as resolved.
Outdated
"properties": {
"vscode-cmsis-debugger.useMocks": {
"type": "boolean",
"default": false,
"description": "If enabled, CMSIS Debugger uses mock data for testing and development purposes."
}
}
}
},
"scripts": {
"prepare": "yarn run build",
Expand All @@ -362,7 +376,8 @@
"baseContentUrl": "https://github.com/Open-CMSIS-Pack/vscode-cmsis-debugger/blob/main/README.md"
},
"dependencies": {
"yaml": "^2.8.1"
"yaml": "^2.8.1",
"xml2js": "^0.6.2"
Comment thread
thorstendb-ARM marked this conversation as resolved.
},
"devDependencies": {
"@open-cmsis-pack/vsce-helper": "^0.2.2",
Expand All @@ -373,6 +388,7 @@
"@types/node": "^20.19.25",
"@types/node-fetch": "^2.6.13",
"@types/vscode": "^1.106.1",
"@types/xml2js": "^0.4.14",
"@types/yargs": "^17.0.35",
"@types/yarnpkg__lockfile": "^1.1.9",
"@typescript-eslint/eslint-plugin": "^8.47.0",
Expand Down
20 changes: 20 additions & 0 deletions src/cbuild-run/cbuild-run-reader.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,26 @@ export class CbuildRunReader {
return svdFilePaths;
}

public getScvdFilePaths(cmsisPackRoot?: string, pname?: string): string[] {
if (!this.cbuildRun) {
return [];
}
// Get SCVD file descriptors
const systemDescriptions = this.cbuildRun['system-descriptions'];
const scvdFileDescriptors = systemDescriptions?.filter(descriptor => descriptor.type === 'scvd') ?? [];
Comment thread
jreineckearm marked this conversation as resolved.
Outdated
if (scvdFileDescriptors.length === 0) {
return [];
}
// Replace potential ${CMSIS_PACK_ROOT} placeholder
const effectiveCmsisPackRoot = cmsisPackRoot ?? getCmsisPackRootPath();
// Map to copies, leave originals untouched
const filteredScvdDescriptors = pname ? scvdFileDescriptors.filter(descriptor => descriptor.pname === pname): scvdFileDescriptors;
const scvdFilePaths = filteredScvdDescriptors.map(descriptor => `${effectiveCmsisPackRoot
? descriptor.file.replaceAll(CMSIS_PACK_ROOT_ENVVAR, effectiveCmsisPackRoot)
: descriptor.file}`);
return scvdFilePaths;
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
qltysh[bot] marked this conversation as resolved.
Outdated
Comment thread
thorstendb-ARM marked this conversation as resolved.
Outdated
}

public getPnames(): string[] {
if (!this.cbuildRun) {
return [];
Expand Down
27 changes: 27 additions & 0 deletions src/component-viewer/test/test-files/scvd/BaseExample.scvd
Comment thread
thorstendb-ARM marked this conversation as resolved.
Outdated
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>

<component_viewer schemaVersion="0.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="Component_Viewer.xsd">

<component name="MyView" version="0.0.1"/> <!-- name and version of the component -->

<typedefs>
<typedef name="MyType" size="8" info="This is MyType with 2 members">
<member name="hi" type="uint32_t" offset="0" info="member hi"/>
<member name="low" type="uint32_t" offset="4" info="member low"/>
</typedef>
</typedefs>

<objects>
<object name="MyObject">
<read name="MySymbol" type="MyType" symbol="mysymbol" const="0"/>

<out name="MyObjectView">
<item property="MyObject">
<item property="Low" value="%x[MySymbol.low]"/>
<item property="Hi" value="%d[MySymbol.hi]"/>
</item>
</out>
</object>
</objects>

</component_viewer>
317 changes: 317 additions & 0 deletions src/component-viewer/test/test-files/scvd/EventRecorder.scvd

Large diffs are not rendered by default.

1,135 changes: 1,135 additions & 0 deletions src/component-viewer/test/test-files/scvd/FileSystem.scvd

Large diffs are not rendered by default.

114 changes: 114 additions & 0 deletions src/component-viewer/test/test-files/scvd/GetRegVal_Test.scvd
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
<?xml version="1.0" encoding="utf-8"?>
<component_viewer schemaVersion="0.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="Component_Viewer.xsd">
<component name="RTOS" version="5.0.0"/> <!-- name and version of the component -->

<typedefs>
</typedefs>

<objects>
<object name="RTX RTOS Object">
<var name="R0" type="uint32_t" value="0xA5A5A5A5"/>
<var name="R1" type="uint32_t" value="0xA5A5A5A5"/>
<var name="R2" type="uint32_t" value="0xA5A5A5A5"/>
<var name="R3" type="uint32_t" value="0xA5A5A5A5"/>
<var name="R4" type="uint32_t" value="0xA5A5A5A5"/>
<var name="R5" type="uint32_t" value="0xA5A5A5A5"/>
<var name="R6" type="uint32_t" value="0xA5A5A5A5"/>
<var name="R7" type="uint32_t" value="0xA5A5A5A5"/>
<var name="R8" type="uint32_t" value="0xA5A5A5A5"/>
<var name="R9" type="uint32_t" value="0xA5A5A5A5"/>
<var name="R10" type="uint32_t" value="0xA5A5A5A5"/>
<var name="R11" type="uint32_t" value="0xA5A5A5A5"/>
<var name="R12" type="uint32_t" value="0xA5A5A5A5"/>
<var name="R13" type="uint32_t" value="0xA5A5A5A5"/>
<var name="R14" type="uint32_t" value="0xA5A5A5A5"/>
<var name="R15" type="uint32_t" value="0xA5A5A5A5"/>
<var name="PSP" type="uint32_t" value="0xA5A5A5A5"/>

<var name="MSP_NS" type="uint32_t" value="0xA5A5A5A5"/>
<var name="PSP_NS" type="uint32_t" value="0xA5A5A5A5"/>
<var name="MSP_S" type="uint32_t" value="0xA5A5A5A5"/>
<var name="PSP_S" type="uint32_t" value="0xA5A5A5A5"/>
<var name="MSPLIM_S" type="uint32_t" value="0xA5A5A5A5"/>
<var name="PSPLIM_S" type="uint32_t" value="0xA5A5A5A5"/>
<var name="MSPLIM_NS" type="uint32_t" value="0xA5A5A5A5"/>
<var name="PSPLIM_NS" type="uint32_t" value="0xA5A5A5A5"/>
<var name="SYSREGS_S" type="uint32_t" value="0xA5A5A5A5"/>
<var name="SYSREGS_NS" type="uint32_t" value="0xA5A5A5A5"/>
<var name="SECURITY" type="uint32_t" value="0xA5A5A5A5"/>

<calc>
R0 = __GetRegVal ("R0");
R1 = __GetRegVal ("R1");
R2 = __GetRegVal ("R2");
R3 = __GetRegVal ("R3");
R4 = __GetRegVal ("R4");
R5 = __GetRegVal ("R5");
R6 = __GetRegVal ("R6");
R7 = __GetRegVal ("R7");
R8 = __GetRegVal ("R8");
R9 = __GetRegVal ("R9");
R10 = __GetRegVal ("R10");
R11 = __GetRegVal ("R11");
R12 = __GetRegVal ("R12");
R13 = __GetRegVal ("R13");
R14 = __GetRegVal ("R14");
R15 = __GetRegVal ("R15");

PSP = __GetRegVal ("PSP");
</calc>

<calc>
MSP_NS = __GetRegVal("MSP_NS");
PSP_NS = __GetRegVal("PSP_NS");
MSP_S = __GetRegVal("MSP_S");
PSP_S = __GetRegVal("PSP_S");
MSPLIM_S = __GetRegVal("MSPLIM_S");
PSPLIM_S = __GetRegVal("PSPLIM_S");
MSPLIM_NS = __GetRegVal("MSPLIM_NS");
PSPLIM_NS = __GetRegVal("PSPLIM_NS");
SYSREGS_S = __GetRegVal("SYSREGS_S");
SYSREGS_NS = __GetRegVal("SYSREGS_NS");
SECURITY = __GetRegVal("SECURITY");
</calc>

<out name="GetRegVal Test">
<item property="Registers" value="">
<item property="R0" value="%x[R0]"/>
<item property="R1" value="%x[R1]"/>
<item property="R2" value="%x[R2]"/>
<item property="R3" value="%x[R3]"/>
<item property="R4" value="%x[R4]"/>
<item property="R5" value="%x[R5]"/>
<item property="R6" value="%x[R6]"/>
<item property="R7" value="%x[R7]"/>
<item property="R8" value="%x[R8]"/>
<item property="R9" value="%x[R9]"/>
<item property="R10" value="%x[R10]"/>
<item property="R11" value="%x[R11]"/>
<item property="R12" value="%x[R12]"/>
<item property="R13" value="%x[R13]"/>
<item property="R14" value="%x[R14]"/>
<item property="R15" value="%x[R15]"/>
<item property="PSP" value="%x[PSP]"/>

<item property="MSP_NS" value="%x[MSP_NS]"/>
<item property="PSP_NS" value="%x[PSP_NS]"/>
<item property="MSP_S" value="%x[MSP_S]"/>
<item property="PSP_S" value="%x[PSP_S]"/>
<item property="MSPLIM_S" value="%x[MSPLIM_S]"/>
<item property="PSPLIM_S" value="%x[PSPLIM_S]"/>
<item property="MSPLIM_NS" value="%x[MSPLIM_NS]"/>
<item property="PSPLIM_NS" value="%x[PSPLIM_NS]"/>
<item property="SYSREGS_S" value="%x[SYSREGS_S]"/>
<item property="SYSREGS_NS" value="%x[SYSREGS_NS]"/>
<item property="SECURITY" value="%x[SECURITY]"/>
</item>

</out>
</object>
</objects>

<events>
</events>
</component_viewer>
38 changes: 38 additions & 0 deletions src/component-viewer/test/test-files/scvd/MinimalTest.scvd
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8"?>
<component_viewer schemaVersion="0.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="Component_Viewer.xsd">
<component name="RTOS" version="5.0.0"/> <!-- name and version of the component -->

<typedefs>
<typedef name="myType" size="4" >
<member name="data" offset="0" size="4" type="uint32_t" />
<var name="var1" type="uint32_t" />
<var name="var2" type="uint32_t" />
<var name="var3" type="uint32_t" />
</typedef>

</typedefs>

<objects>
<object name="Test Object">
<var name="cnt" type="uint32_t" value="0"/>

<!-- <var name="myVar" type="myType" value="0x00000000"/> -->
<read name="myVar" type="myType" offset="0" size="4" />

<calc>
myVar.var1 = cnt;
cnt++;
myVar.var2 = cnt;
cnt++;
myVar.var3 = cnt;
</calc>

<out name="MyTest">
<item property="data" value="%x[myVar.data]"/>
<item property="var1" value="%x[myVar.var1]"/>
<item property="var2" value="%x[myVar.var2]"/>
<item property="var3" value="%x[myVar.var3]"/>
</out>
</object>
</objects>
</component_viewer>
Loading
Loading