crosspad-mcp-server 9.1.0 โ 9.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +1 -1
- package/dist/config.d.ts +7 -0
- package/dist/config.js +15 -0
- package/dist/config.js.map +1 -1
- package/dist/index.js +129 -29
- package/dist/index.js.map +1 -1
- package/dist/tools/stm-build.d.ts +23 -0
- package/dist/tools/stm-build.js +78 -0
- package/dist/tools/stm-build.js.map +1 -0
- package/dist/tools/stm-flash.d.ts +36 -0
- package/dist/tools/stm-flash.js +112 -0
- package/dist/tools/stm-flash.js.map +1 -0
- package/dist/tools/trace-session.d.ts +12 -0
- package/dist/tools/trace-session.js +69 -0
- package/dist/tools/trace-session.js.map +1 -1
- package/dist/tools/trace-webui.d.ts +14 -7
- package/dist/tools/trace-webui.js +77 -33
- package/dist/tools/trace-webui.js.map +1 -1
- package/dist/tools/trace-write.d.ts +9 -0
- package/dist/tools/trace-write.js +32 -0
- package/dist/tools/trace-write.js.map +1 -0
- package/dist/utils/userConfig.d.ts +9 -0
- package/dist/utils/userConfig.js.map +1 -1
- package/package.json +2 -1
- package/skills/swd-tracer/SKILL.md +48 -0
- package/tracer/PROTOCOL.md +69 -0
- package/tracer/swd_tracer.py +460 -15
- package/tracer/ui/config.js +40 -0
- package/tracer/ui/connection.js +170 -0
- package/tracer/ui/index.html +50 -798
- package/tracer/ui/main.js +30 -0
- package/tracer/ui/plot.js +337 -0
- package/tracer/ui/signals.js +39 -0
- package/tracer/ui/state.js +57 -0
- package/tracer/ui/stats.js +52 -0
- package/tracer/ui/style.css +97 -0
- package/tracer/ui/symbols.js +80 -0
- package/tracer/ui/toolbar.js +95 -0
- package/tracer/ui/util.js +62 -0
- package/tracer/ui/watchlist.js +179 -0
- package/vscode-extension/README.md +32 -0
- package/vscode-extension/extension.js +56 -0
- package/vscode-extension/package.json +14 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-session.js","sourceRoot":"","sources":["../../src/tools/trace-session.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"trace-session.js","sourceRoot":"","sources":["../../src/tools/trace-session.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,24 @@
|
|
|
1
1
|
import type { TraceSession } from "./trace-session.js";
|
|
2
2
|
export declare function buildUiUrl(port: number): string;
|
|
3
|
+
/** Resolve a request route to a static UI asset path, GUARDED against path
|
|
4
|
+
* traversal: the resolved path must stay inside the ui directory. Returns null
|
|
5
|
+
* for "/" (handled separately as index.html) and for anything escaping the dir.
|
|
6
|
+
* Pure (no fs access) so it can be unit-tested. */
|
|
7
|
+
export declare function resolveStaticAsset(route: string): {
|
|
8
|
+
filePath: string;
|
|
9
|
+
contentType: string;
|
|
10
|
+
} | null;
|
|
3
11
|
/** Allow a WS upgrade only from a loopback Origin, or when no Origin is sent
|
|
4
12
|
* (native/non-browser clients). Defends against cross-site WebSocket hijacking. */
|
|
5
13
|
export declare function originIsLoopback(info: {
|
|
6
14
|
origin?: string;
|
|
7
15
|
}): boolean;
|
|
8
|
-
/** ยง12.4 best-effort
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* Returns true if an opener was actually spawned, false if skipped. */
|
|
16
|
+
/** ยง12.4 best-effort open of the dashboard in the SYSTEM browser โ the fallback
|
|
17
|
+
* used by the `start` watchdog (ยง12.6) when nobody opened the in-editor link.
|
|
18
|
+
* Routing/mode (vscode-link vs immediate vs none) is decided by the caller in
|
|
19
|
+
* index.ts; this just does the actual system-browser open. SKIPS (returns
|
|
20
|
+
* false) when CROSSPAD_TRACE_NO_BROWSER is set, or on linux with no
|
|
21
|
+
* DISPLAY/WAYLAND_DISPLAY (headless). Never throws. */
|
|
15
22
|
export declare function openInBrowser(url: string): boolean;
|
|
16
23
|
/**
|
|
17
24
|
* ยง12.1 Persistent dashboard singleton. ONE http+ws server that OUTLIVES trace
|
|
@@ -5,49 +5,22 @@ import { spawn } from "child_process";
|
|
|
5
5
|
import { fileURLToPath } from "url";
|
|
6
6
|
import { WebSocketServer } from "ws";
|
|
7
7
|
import { listSymbols, resolvedElf } from "./trace-symbols.js";
|
|
8
|
-
|
|
9
|
-
function
|
|
10
|
-
export function buildUiUrl(port) { return `http://localhost:${port}/`; }
|
|
11
|
-
/** Allow a WS upgrade only from a loopback Origin, or when no Origin is sent
|
|
12
|
-
* (native/non-browser clients). Defends against cross-site WebSocket hijacking. */
|
|
13
|
-
export function originIsLoopback(info) {
|
|
14
|
-
if (!info.origin)
|
|
15
|
-
return true;
|
|
16
|
-
try {
|
|
17
|
-
const h = new URL(info.origin).hostname;
|
|
18
|
-
return h === "localhost" || h === "127.0.0.1" || h === "::1";
|
|
19
|
-
}
|
|
20
|
-
catch {
|
|
21
|
-
return false;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
/** ยง12.4 best-effort browser opener. Spawns the platform opener detached so the
|
|
25
|
-
* MCP server never owns the browser process, swallows every failure (a missing
|
|
26
|
-
* opener / headless box must never throw), and SKIPS when:
|
|
27
|
-
* - CROSSPAD_TRACE_NO_BROWSER is set (explicit opt-out), or
|
|
28
|
-
* - on linux when neither DISPLAY nor WAYLAND_DISPLAY is set (headless โ no GUI
|
|
29
|
-
* to pop, so xdg-open would just error).
|
|
30
|
-
* Returns true if an opener was actually spawned, false if skipped. */
|
|
31
|
-
export function openInBrowser(url) {
|
|
32
|
-
if (process.env.CROSSPAD_TRACE_NO_BROWSER)
|
|
33
|
-
return false;
|
|
8
|
+
/** Spawn the OS system-browser opener for an http url. Detached + never throws. */
|
|
9
|
+
function spawnOpener(target) {
|
|
34
10
|
const platform = process.platform;
|
|
35
|
-
if (platform === "linux" && !process.env.DISPLAY && !process.env.WAYLAND_DISPLAY)
|
|
36
|
-
return false;
|
|
37
11
|
try {
|
|
38
|
-
let cmd;
|
|
39
|
-
let args;
|
|
12
|
+
let cmd, args;
|
|
40
13
|
if (platform === "darwin") {
|
|
41
14
|
cmd = "open";
|
|
42
|
-
args = [
|
|
15
|
+
args = [target];
|
|
43
16
|
}
|
|
44
17
|
else if (platform === "win32") {
|
|
45
18
|
cmd = "cmd";
|
|
46
|
-
args = ["/c", "start", "",
|
|
19
|
+
args = ["/c", "start", "", target];
|
|
47
20
|
}
|
|
48
21
|
else {
|
|
49
22
|
cmd = "xdg-open";
|
|
50
|
-
args = [
|
|
23
|
+
args = [target];
|
|
51
24
|
}
|
|
52
25
|
const child = spawn(cmd, args, { detached: true, stdio: "ignore" });
|
|
53
26
|
child.on("error", () => { });
|
|
@@ -58,6 +31,65 @@ export function openInBrowser(url) {
|
|
|
58
31
|
return false;
|
|
59
32
|
}
|
|
60
33
|
}
|
|
34
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
35
|
+
function uiDir() { return path.resolve(__dirname, "..", "..", "tracer", "ui"); }
|
|
36
|
+
function uiHtmlPath() { return path.resolve(uiDir(), "index.html"); }
|
|
37
|
+
export function buildUiUrl(port) { return `http://localhost:${port}/`; }
|
|
38
|
+
/** Content types for the static UI assets the dashboard serves (the ESM modules
|
|
39
|
+
* + stylesheet split out of index.html). */
|
|
40
|
+
const CONTENT_TYPES = {
|
|
41
|
+
".html": "text/html",
|
|
42
|
+
".js": "text/javascript",
|
|
43
|
+
".mjs": "text/javascript",
|
|
44
|
+
".css": "text/css",
|
|
45
|
+
".json": "application/json",
|
|
46
|
+
".map": "application/json",
|
|
47
|
+
".svg": "image/svg+xml",
|
|
48
|
+
".ico": "image/x-icon",
|
|
49
|
+
};
|
|
50
|
+
/** Resolve a request route to a static UI asset path, GUARDED against path
|
|
51
|
+
* traversal: the resolved path must stay inside the ui directory. Returns null
|
|
52
|
+
* for "/" (handled separately as index.html) and for anything escaping the dir.
|
|
53
|
+
* Pure (no fs access) so it can be unit-tested. */
|
|
54
|
+
export function resolveStaticAsset(route) {
|
|
55
|
+
if (route === "/" || route === "")
|
|
56
|
+
return null;
|
|
57
|
+
const rel = route.replace(/^\/+/, "");
|
|
58
|
+
if (!rel)
|
|
59
|
+
return null;
|
|
60
|
+
const dir = uiDir();
|
|
61
|
+
const full = path.resolve(dir, rel);
|
|
62
|
+
if (full !== dir && !full.startsWith(dir + path.sep))
|
|
63
|
+
return null; // traversal guard
|
|
64
|
+
const ext = path.extname(full).toLowerCase();
|
|
65
|
+
return { filePath: full, contentType: CONTENT_TYPES[ext] ?? "application/octet-stream" };
|
|
66
|
+
}
|
|
67
|
+
/** Allow a WS upgrade only from a loopback Origin, or when no Origin is sent
|
|
68
|
+
* (native/non-browser clients). Defends against cross-site WebSocket hijacking. */
|
|
69
|
+
export function originIsLoopback(info) {
|
|
70
|
+
if (!info.origin)
|
|
71
|
+
return true;
|
|
72
|
+
try {
|
|
73
|
+
const h = new URL(info.origin).hostname;
|
|
74
|
+
return h === "localhost" || h === "127.0.0.1" || h === "::1";
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/** ยง12.4 best-effort open of the dashboard in the SYSTEM browser โ the fallback
|
|
81
|
+
* used by the `start` watchdog (ยง12.6) when nobody opened the in-editor link.
|
|
82
|
+
* Routing/mode (vscode-link vs immediate vs none) is decided by the caller in
|
|
83
|
+
* index.ts; this just does the actual system-browser open. SKIPS (returns
|
|
84
|
+
* false) when CROSSPAD_TRACE_NO_BROWSER is set, or on linux with no
|
|
85
|
+
* DISPLAY/WAYLAND_DISPLAY (headless). Never throws. */
|
|
86
|
+
export function openInBrowser(url) {
|
|
87
|
+
if (process.env.CROSSPAD_TRACE_NO_BROWSER)
|
|
88
|
+
return false;
|
|
89
|
+
if (process.platform === "linux" && !process.env.DISPLAY && !process.env.WAYLAND_DISPLAY)
|
|
90
|
+
return false;
|
|
91
|
+
return spawnOpener(url);
|
|
92
|
+
}
|
|
61
93
|
/**
|
|
62
94
|
* ยง12.1 Persistent dashboard singleton. ONE http+ws server that OUTLIVES trace
|
|
63
95
|
* sessions for the MCP server's whole lifetime. `currentSession` is mutable:
|
|
@@ -101,6 +133,18 @@ export class Dashboard {
|
|
|
101
133
|
this.serveSymbols(url, res);
|
|
102
134
|
return;
|
|
103
135
|
}
|
|
136
|
+
// Static UI assets (style.css, ESM modules). Traversal-guarded resolve.
|
|
137
|
+
const asset = resolveStaticAsset(route);
|
|
138
|
+
if (asset) {
|
|
139
|
+
try {
|
|
140
|
+
if (fs.statSync(asset.filePath).isFile()) {
|
|
141
|
+
res.writeHead(200, { "Content-Type": asset.contentType });
|
|
142
|
+
res.end(fs.readFileSync(asset.filePath));
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
catch { /* missing/not a file โ fall through to 404 */ }
|
|
147
|
+
}
|
|
104
148
|
res.writeHead(404);
|
|
105
149
|
res.end();
|
|
106
150
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-webui.js","sourceRoot":"","sources":["../../src/tools/trace-webui.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,eAAe,EAAa,MAAM,IAAI,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE9D,
|
|
1
|
+
{"version":3,"file":"trace-webui.js","sourceRoot":"","sources":["../../src/tools/trace-webui.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,eAAe,EAAa,MAAM,IAAI,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE9D,mFAAmF;AACnF,SAAS,WAAW,CAAC,MAAc;IACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,IAAI,CAAC;QACH,IAAI,GAAW,EAAE,IAAc,CAAC;QAChC,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAAC,GAAG,GAAG,MAAM,CAAC;YAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QAAC,CAAC;aACxD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YAAC,GAAG,GAAG,KAAK,CAAC;YAAC,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QAAC,CAAC;aAC9E,CAAC;YAAC,GAAG,GAAG,UAAU,CAAC;YAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACpE,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAmD,CAAC,CAAC,CAAC;QAC7E,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/D,SAAS,KAAK,KAAa,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACxF,SAAS,UAAU,KAAa,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;AAE7E,MAAM,UAAU,UAAU,CAAC,IAAY,IAAY,OAAO,oBAAoB,IAAI,GAAG,CAAC,CAAC,CAAC;AAExF;6CAC6C;AAC7C,MAAM,aAAa,GAA2B;IAC5C,OAAO,EAAE,WAAW;IACpB,KAAK,EAAE,iBAAiB;IACxB,MAAM,EAAE,iBAAiB;IACzB,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,kBAAkB;IAC3B,MAAM,EAAE,kBAAkB;IAC1B,MAAM,EAAE,eAAe;IACvB,MAAM,EAAE,cAAc;CACvB,CAAC;AAEF;;;oDAGoD;AACpD,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAC/C,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACtC,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,GAAG,GAAG,KAAK,EAAE,CAAC;IACpB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACpC,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC,CAAE,kBAAkB;IACtF,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7C,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,CAAC,GAAG,CAAC,IAAI,0BAA0B,EAAE,CAAC;AAC3F,CAAC;AAED;oFACoF;AACpF,MAAM,UAAU,gBAAgB,CAAC,IAAyB;IACxD,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAC9B,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC;QACxC,OAAO,CAAC,KAAK,WAAW,IAAI,CAAC,KAAK,WAAW,IAAI,CAAC,KAAK,KAAK,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;wDAKwD;AACxD,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,IAAI,OAAO,CAAC,GAAG,CAAC,yBAAyB;QAAE,OAAO,KAAK,CAAC;IACxD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe;QAAE,OAAO,KAAK,CAAC;IACvG,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,SAAS;IACZ,MAAM,GAAuB,IAAI,CAAC;IAClC,GAAG,GAA2B,IAAI,CAAC;IACnC,OAAO,GAAG,IAAI,GAAG,EAAa,CAAC;IAC/B,GAAG,GAAkB,IAAI,CAAC;IAClC,2EAA2E;IAC3E,2EAA2E;IACnE,cAAc,GAAwB,IAAI,CAAC;IACnD,IAAI,GAAG,CAAC,CAAC;IAET;;6DAEyD;IACzD,aAAa,CAAC,aAAa,GAAG,IAAI;QAChC,IAAI,IAAI,CAAC,GAAG;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBAC3C,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC;gBAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;oBAClB,IAAI,CAAC;wBACH,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;wBACpD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;oBACzC,CAAC;oBAAC,MAAM,CAAC;wBACP,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;wBAAC,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;oBAClD,CAAC;oBACD,OAAO;gBACT,CAAC;gBACD,2EAA2E;gBAC3E,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;oBACzB,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;oBAC5B,OAAO;gBACT,CAAC;gBACD,wEAAwE;gBACxE,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBACxC,IAAI,KAAK,EAAE,CAAC;oBACV,IAAI,CAAC;wBACH,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;4BACzC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;4BAC1D,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;4BACzC,OAAO;wBACT,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC,CAAC,8CAA8C,CAAC,CAAC;gBAC5D,CAAC;gBACD,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YAChC,CAAC,CAAC,CAAC;YACH,qEAAqE;YACrE,2EAA2E;YAC3E,sEAAsE;YACtE,IAAI,CAAC,GAAG,GAAG,IAAI,eAAe,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,CAAC,CAAC;YACxF,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE;gBAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACrB,yEAAyE;gBACzE,uEAAuE;gBACvE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;oBACrB,IAAI,EAAE,OAAO;oBACb,MAAM,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI;oBACnC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE;iBACzD,CAAC,CAAC,CAAC;gBACJ,gEAAgE;gBAChE,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;gBAChE,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAChD,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAChC,sEAAsE;YACtE,mDAAmD;YACnD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,WAAW,EAAE,GAAG,EAAE;gBAClD,IAAI,CAAC,IAAI,GAAI,IAAI,CAAC,MAAO,CAAC,OAAO,EAAU,CAAC,IAAI,CAAC;gBACjD,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,8EAA8E;IAC9E,IAAI,CAAC,OAAqB;QACxB,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,EAAS,CAAC,CAAC;IACxF,CAAC;IAED;8EAC0E;IAC1E,MAAM;QACJ,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,4EAA4E;QAC5E,2EAA2E;QAC3E,mCAAmC;QACnC,IAAI,EAAE,QAAQ,EAAE,CAAC;QACjB,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,WAAW,EAAS,CAAC,CAAC;IAC/C,CAAC;IAED;8EAC0E;IAC1E,UAAU;QACR,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAAC,IAAI,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAC;QAAC,CAAC;QAC9E,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;sFAEkF;IAC1E,KAAK,CAAC,YAAY,CAAC,GAAW,EAAE,GAAwB;QAC9D,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC;YAClF,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,WAAW,EAAE,CAAC;YAC5D,MAAM,CAAC,GAAG,MAAM,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACpC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED;;2CAEuC;IAC/B,aAAa,CAAC,GAAW;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC;QACpC,IAAI,CAAC,OAAO;YAAE,OAAO,CAAG,iDAAiD;QACzE,IAAI,GAAQ,CAAC;QACb,IAAI,CAAC;YAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO;QAAC,CAAC;QAChD,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO;QAC5C,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;QAC7B,IAAI,CAAC,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,OAAO;QAC3E,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;QACpE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC/B,IAAI,CAAC;YACH,yEAAyE;YACzE,sEAAsE;YACtE,uEAAuE;YACvE,MAAM,CAAC,GAAG,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACnF,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAgB,CAAC,CAAC,CAAC;QACnD,CAAC;QAAC,MAAM,CAAC,CAAC,kCAAkC,CAAC,CAAC;IAChD,CAAC;IAEO,SAAS,CAAC,CAAQ;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9B,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAAC,IAAI,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC,IAAI;gBAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAAC,CAAC;IACjF,CAAC;CACF;AAED,8DAA8D;AAC9D,IAAI,SAAS,GAAqB,IAAI,CAAC;AACvC,MAAM,UAAU,YAAY;IAC1B,IAAI,CAAC,SAAS;QAAE,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;IAC5C,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Pure builders for the daemon write/call subcommands and live-trace stdin cmds. */
|
|
2
|
+
export declare function buildWriteArgv(elf: string, writes: string[]): string[];
|
|
3
|
+
export declare function buildCallArgv(elf: string, func: string, args: number[], confirm: boolean, retType: string, timeout: number): string[];
|
|
4
|
+
export declare function writeStdinCmd(id: number, writes: string[]): string;
|
|
5
|
+
export declare function callStdinCmd(id: number, func: string, args: number[], confirm: boolean, retType: string, timeout: number): string;
|
|
6
|
+
export declare function parseResultFrame(line: string, id: number): {
|
|
7
|
+
match: boolean;
|
|
8
|
+
frame?: any;
|
|
9
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/** Pure builders for the daemon write/call subcommands and live-trace stdin cmds. */
|
|
2
|
+
export function buildWriteArgv(elf, writes) {
|
|
3
|
+
return ["write", "--elf", elf, "--writes", writes.join(";")];
|
|
4
|
+
}
|
|
5
|
+
export function buildCallArgv(elf, func, args, confirm, retType, timeout) {
|
|
6
|
+
const argv = ["call", "--elf", elf, "--func", func,
|
|
7
|
+
"--args", args.map((n) => String(n)).join(",")];
|
|
8
|
+
if (confirm)
|
|
9
|
+
argv.push("--confirm");
|
|
10
|
+
argv.push("--ret-type", retType, "--timeout", String(timeout));
|
|
11
|
+
return argv;
|
|
12
|
+
}
|
|
13
|
+
export function writeStdinCmd(id, writes) {
|
|
14
|
+
return JSON.stringify({ cmd: "write", id, writes });
|
|
15
|
+
}
|
|
16
|
+
export function callStdinCmd(id, func, args, confirm, retType, timeout) {
|
|
17
|
+
return JSON.stringify({ cmd: "call", id, func, args, confirm, ret_type: retType, timeout });
|
|
18
|
+
}
|
|
19
|
+
export function parseResultFrame(line, id) {
|
|
20
|
+
const t = line.trim();
|
|
21
|
+
if (!t.startsWith("{"))
|
|
22
|
+
return { match: false };
|
|
23
|
+
try {
|
|
24
|
+
const o = JSON.parse(t);
|
|
25
|
+
if ((o.type === "write_result" || o.type === "call_result") && o.id === id) {
|
|
26
|
+
return { match: true, frame: o };
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
catch { /* not a json frame */ }
|
|
30
|
+
return { match: false };
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=trace-write.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace-write.js","sourceRoot":"","sources":["../../src/tools/trace-write.ts"],"names":[],"mappings":"AAAA,qFAAqF;AAErF,MAAM,UAAU,cAAc,CAAC,GAAW,EAAE,MAAgB;IAC1D,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,GAAW,EAAE,IAAY,EAAE,IAAc,EAAE,OAAgB,EAC3D,OAAe,EAAE,OAAe;IAEhC,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI;QACpC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9D,IAAI,OAAO;QAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACpC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAAU,EAAE,MAAgB;IACxD,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,EAAU,EAAE,IAAY,EAAE,IAAc,EAAE,OAAgB,EAC1D,OAAe,EAAE,OAAe;IAEhC,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AAC9F,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,EAAU;IACvD,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IACtB,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAChD,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;YAC3E,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC;IAClC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC1B,CAAC"}
|
|
@@ -3,6 +3,15 @@ export interface UserConfig {
|
|
|
3
3
|
pyocd_python?: string;
|
|
4
4
|
probe_serial?: string;
|
|
5
5
|
trace_dir?: string;
|
|
6
|
+
/** Absolute path to STM32_Programmer_CLI (ST's flasher). Resolution order at
|
|
7
|
+
* flash time: this config value โ $STM32_PROG env โ PATH lookup. Set when the
|
|
8
|
+
* CubeProgrammer bundle is not on PATH. */
|
|
9
|
+
stm_programmer_cli?: string;
|
|
10
|
+
/** How `start` surfaces the live dashboard: "vscode" (default โ agent replies
|
|
11
|
+
* with the link; user clicks โ VS Code Simple Browser via externalUriOpeners;
|
|
12
|
+
* system-browser fallback after ~30s if unopened), "browser" (open the system
|
|
13
|
+
* browser immediately), or "none" (never auto-open). */
|
|
14
|
+
ui_open?: string;
|
|
6
15
|
}
|
|
7
16
|
/** @internal test-only โ override the config file path. Pass null to clear. */
|
|
8
17
|
export declare function _setConfigPathForTest(p: string | null): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userConfig.js","sourceRoot":"","sources":["../../src/utils/userConfig.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"userConfig.js","sourceRoot":"","sources":["../../src/utils/userConfig.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAkBxB,IAAI,gBAAgB,GAAkB,IAAI,CAAC;AAC3C,+EAA+E;AAC/E,MAAM,UAAU,qBAAqB,CAAC,CAAgB;IACpD,gBAAgB,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,IAAI,gBAAgB;QAAE,OAAO,gBAAgB,CAAC;IAC9C,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;IAC/E,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAE,GAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,2GAA2G;AAC3G,MAAM,UAAU,kBAAkB,CAChC,GAAqB,EACrB,QAAgB,EAChB,QAA4B,EAC5B,YAAoB;IAEpB,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC;IACtE,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC;IACrD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAqB,EAAE,KAAa;IACjE,MAAM,CAAC,GAAG,cAAc,EAAE,CAAC;IAC3B,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAC7B,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACjB,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACrE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "crosspad-mcp-server",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.2.0",
|
|
4
4
|
"description": "MCP development server for CrossPad โ build, test, manage apps, interact with simulator",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"dist/",
|
|
12
12
|
"tracer/",
|
|
13
13
|
"skills/",
|
|
14
|
+
"vscode-extension/",
|
|
14
15
|
".claude-plugin/",
|
|
15
16
|
".mcp.json"
|
|
16
17
|
],
|
|
@@ -85,6 +85,26 @@ stop โ end the trace (always frees the probe)
|
|
|
85
85
|
`actual_fs` (ST-Link V2 + pyOCD tops out ~480 Hz total across all ranges).
|
|
86
86
|
Fewer/contiguous signals = higher Fs.
|
|
87
87
|
|
|
88
|
+
### ALWAYS hand the user the dashboard link
|
|
89
|
+
|
|
90
|
+
On every `start` (and whenever you start/restart a trace), **reply with the
|
|
91
|
+
`ui_url` as a clickable link** โ prominently, e.g.:
|
|
92
|
+
|
|
93
|
+
> ๐ Live dashboard: **http://localhost:7373/** โ click to open it in VS Code.
|
|
94
|
+
|
|
95
|
+
This is the primary way the user opens the view. With the recommended VS Code
|
|
96
|
+
setting `"workbench.externalUriOpeners": {"localhost:7373": "simpleBrowser"}`, a
|
|
97
|
+
click opens the dashboard **inside VS Code (Simple Browser)**, not the system
|
|
98
|
+
browser. Assume the driver may be seeing VS Code for the first time โ give them
|
|
99
|
+
the link every time, never make them hunt for it. The server is persistent, so
|
|
100
|
+
once they click it the tab stays live across all later traces (it auto-reconnects).
|
|
101
|
+
|
|
102
|
+
The tool also has a safety net: with `ui_open=vscode` (default), if **no client
|
|
103
|
+
connects within ~30 s**, it auto-opens the system browser as a fallback so a
|
|
104
|
+
first-timer is never left looking at nothing. `ui_open=browser` opens the system
|
|
105
|
+
browser immediately; `ui_open=none` disables both. Set the fallback delay with
|
|
106
|
+
`CROSSPAD_TRACE_OPEN_FALLBACK_MS`.
|
|
107
|
+
|
|
88
108
|
## Signal-spec syntax
|
|
89
109
|
|
|
90
110
|
| Form | Resolves to |
|
|
@@ -95,12 +115,40 @@ Fewer/contiguous signals = higher Fs.
|
|
|
95
115
|
| `hpcd.Init.speed` | nested struct member |
|
|
96
116
|
| `s_adc_raw` / `s_adc_raw[*]` | **whole array** โ expands to every element |
|
|
97
117
|
| `s_inputs[0:8]` | half-open slice โ elements 0..7 |
|
|
118
|
+
| `@0x40021000` | **raw address** (no DWARF) โ one u32 at that address |
|
|
119
|
+
| `@0x50000010:u16` | typed raw read โ `u8 u16 u32 i8 i16 i32 f32` (default u32) |
|
|
120
|
+
| `@0x20000000:u8[16]` | raw block โ 16 consecutive elements (same 256 cap) |
|
|
121
|
+
| `@0x50000410:u16#5` | **bit 5** of the value โ 0/1 (e.g. one GPIO pin) |
|
|
122
|
+
| `@0x50000410:u16#3:0` | **bit range** [3:0] โ field value 0..15 |
|
|
123
|
+
| `GPIOB_ODR&0x820` | **masked** field, normalized to the lowest set bit |
|
|
124
|
+
|
|
125
|
+
A `#bit` / `#hi:lo` / `&mask` suffix extracts part of the value (works on symbols
|
|
126
|
+
and raw `@addr`). Trace several `#bit` specs on the same port to plot each pin
|
|
127
|
+
separately as 0/1; they coalesce into one read.
|
|
128
|
+
|
|
129
|
+
Raw `@address` specs read MCU memory directly โ peripheral registers
|
|
130
|
+
(`GPIOx->IDR`, `RCC->CR`) or any RAM the ELF has no symbol for; they need no
|
|
131
|
+
symbol so they work even if `symbols` can't find the name. **Caution:** reads hit
|
|
132
|
+
the AHB while the core runs โ avoid registers with read-side-effects (data
|
|
133
|
+
registers that clear flags / pop FIFOs on read).
|
|
98
134
|
|
|
99
135
|
Expansion is capped at 256 elements. A spec that lands on an aggregate (struct
|
|
100
136
|
with no trailing index) is reported as `unresolved`, not fatal. See
|
|
101
137
|
[reference/signals.md](reference/signals.md) for the CrossPad-specific cheat sheet
|
|
102
138
|
(pads, ADC channels, and the built-in `g_trace_demo.*` self-test signals).
|
|
103
139
|
|
|
140
|
+
### Writing & calling (poke + RCE)
|
|
141
|
+
|
|
142
|
+
`crosspad_trace action=write writes=["@0x50000414:u16=0xFFFF","s_vbat_mv=4200"]`
|
|
143
|
+
โ non-halting pokes by address or symbol. Allowed regions: SRAM, peripheral, PPB;
|
|
144
|
+
the flash/Code region is blocked. Works live (during a trace) or standalone.
|
|
145
|
+
|
|
146
|
+
`crosspad_trace action=call func="led_set" args=[3,16711680] confirm=true` โ call a
|
|
147
|
+
firmware function (โค4 int args โ r0-r3), returns r0 (`ret_type` decodes it). **Halts
|
|
148
|
+
the core briefly**, masks interrupts, restores context and resumes. `confirm:true`
|
|
149
|
+
is mandatory. Use for driving the firmware from the agent; avoid functions that
|
|
150
|
+
block or never return (they hit the `timeout` and the call is rolled back).
|
|
151
|
+
|
|
104
152
|
## Quick self-test (no real inputs needed)
|
|
105
153
|
|
|
106
154
|
If the firmware includes the demo module, `g_trace_demo.demo_sine` draws a clean
|
package/tracer/PROTOCOL.md
CHANGED
|
@@ -57,6 +57,70 @@ bounds) for both the initial `--signals` set and live `add` commands.
|
|
|
57
57
|
|
|
58
58
|
`encoding โ {int, uint, float, bool, char, uchar, address}`.
|
|
59
59
|
|
|
60
|
+
## 1.2 Raw absolute-address specs
|
|
61
|
+
|
|
62
|
+
A spec beginning with `@` reads MCU memory **straight by address**, bypassing
|
|
63
|
+
DWARF entirely โ for peripheral registers (e.g. `GPIOA->IDR`, `RCC->CR`) or any
|
|
64
|
+
RAM the ELF has no symbol for. Because there is no type to infer width/encoding
|
|
65
|
+
from, the type tag is explicit (default `u32`):
|
|
66
|
+
|
|
67
|
+
| Form | Reads |
|
|
68
|
+
|---|---|
|
|
69
|
+
| `@0x40021000` | one u32 at `0x40021000` |
|
|
70
|
+
| `@0x50000010:u16` | one u16; type โ `u8 u16 u32 i8 i16 i32 f32` |
|
|
71
|
+
| `@0x20000000:u8[16]` | 16 consecutive elements (expands like an array; same **256** cap) |
|
|
72
|
+
|
|
73
|
+
A single-element raw spec keeps your exact text as its signal name; an expanded
|
|
74
|
+
block re-renders each element as `@0x<addr>:<type>` so names stay unique. A
|
|
75
|
+
malformed raw spec (bad address/type/count) is reported in `unresolved`.
|
|
76
|
+
|
|
77
|
+
**Caution:** reads go over the AHB while the core runs. Reading a register with
|
|
78
|
+
read-side-effects (a peripheral data register that clears a flag on read, FIFO
|
|
79
|
+
pops, etc.) will perturb firmware โ point raw specs at status/config registers,
|
|
80
|
+
not at volatile data registers, unless you intend the side effect.
|
|
81
|
+
|
|
82
|
+
## 1.3 Write specs and function calls
|
|
83
|
+
|
|
84
|
+
`write` takes `target=value` specs: the LHS is any read spec (ยง1.1 symbol or ยง1.2
|
|
85
|
+
raw `@address[:type]`), the RHS a hex (`0x..`) or decimal literal (float for `f32`).
|
|
86
|
+
Writes are **non-halting** (AHB poke). Allowlist (Cortex-M architectural map, all
|
|
87
|
+
STM32 series): SRAM `0x20000000โ0x3FFFFFFF`, Peripheral `0x40000000โ0x5FFFFFFF`,
|
|
88
|
+
PPB `0xE0000000โ0xE00FFFFF`. The Code region `0x00000000โ0x1FFFFFFF` (flash, system
|
|
89
|
+
memory, option bytes) is **blocked**. A CMSIS-pack target narrows the SRAM window
|
|
90
|
+
to the real RAM regions.
|
|
91
|
+
|
|
92
|
+
`call` invokes a firmware function by symbol: up to 4 integer args (r0-r3, AAPCS),
|
|
93
|
+
returns r0. It **halts the core**, runs the function with interrupts masked
|
|
94
|
+
(PRIMASK=1) and a return breakpoint, then restores full context and resumes.
|
|
95
|
+
Requires `confirm:true`. A function that does not return within `timeout` (default
|
|
96
|
+
2 s) leaves the firmware running in its pre-call state and reports a timeout.
|
|
97
|
+
|
|
98
|
+
## 1.4 Bit / mask transforms
|
|
99
|
+
|
|
100
|
+
A spec may end with ONE transform suffix that extracts part of the decoded value
|
|
101
|
+
โ so e.g. a GPIO port read plots individual pins as 0/1 instead of the full word.
|
|
102
|
+
The sigils `#` and `&` do not occur in the ยง1.1/ยง1.2 grammar and are stripped
|
|
103
|
+
before the base spec is resolved. The transform applies to both symbol and raw
|
|
104
|
+
`@address` specs.
|
|
105
|
+
|
|
106
|
+
| Suffix | Meaning | Result (v = value, unsigned, masked to width) |
|
|
107
|
+
|---|---|---|
|
|
108
|
+
| `#N` | bit N | `(v>>N)&1` โ 0/1 |
|
|
109
|
+
| `#hi:lo` | bit range, inclusive, hiโฅlo | `(v>>lo)&((1<<(hi-lo+1))-1)` |
|
|
110
|
+
| `&0xMASK` | AND mask, normalized to LSB | `(v&mask)>>ctz(mask)` |
|
|
111
|
+
|
|
112
|
+
(ctz = count trailing zeros, i.e. the 0-based index of the lowest set bit)
|
|
113
|
+
|
|
114
|
+
Examples: `@0x50000410:u16#5` (pin 5 โ 0/1), `@0x50000410:u16#3:0` (low 4 pins as
|
|
115
|
+
0..15), `GPIOB_ODR&0x820`, `s_flags#2`. Several bits of one address become
|
|
116
|
+
separate, uniquely-named signals that still coalesce into a single memory read.
|
|
117
|
+
|
|
118
|
+
The transform applies only to a spec that resolves to a SINGLE scalar. A suffix on
|
|
119
|
+
an expanding spec (`[*]`, `[a:b]`, a whole array, or a raw block `@a:type[count]`)
|
|
120
|
+
is reported in `unresolved` as `"โฆ (transform on expanding spec unsupported)"`. An
|
|
121
|
+
out-of-range bit/mask (โฅ the access width), `hi<lo`, mask `0`, or a malformed
|
|
122
|
+
suffix is also reported unresolved.
|
|
123
|
+
|
|
60
124
|
## 2. Daemon stdin commands (Node โ daemon, NDJSON)
|
|
61
125
|
|
|
62
126
|
```jsonc
|
|
@@ -65,6 +129,11 @@ bounds) for both the initial `--signals` set and live `add` commands.
|
|
|
65
129
|
{"cmd":"remove","signals":["s_inputs[3]"]} // drop from live poll set
|
|
66
130
|
```
|
|
67
131
|
|
|
132
|
+
- `{"cmd":"write","id":N,"writes":["@0x..=v", ...]}` โ emits
|
|
133
|
+
`{"type":"write_result","id":N,"ok":bool,"results":[{name,address,size,ok,old,new,error?}]}`.
|
|
134
|
+
- `{"cmd":"call","id":N,"func":"name","args":[...],"confirm":true,"ret_type":"u32","timeout":2.0}`
|
|
135
|
+
โ emits `{"type":"call_result","id":N,"ok":bool,"r0":int,"decoded"?:num,"error"?:str}`.
|
|
136
|
+
|
|
68
137
|
`add`/`remove` mutate the poll set on the running daemon. The poll loop
|
|
69
138
|
re-coalesces ranges on the next iteration. Unknown / unresolvable specs in an
|
|
70
139
|
`add` are skipped (reported via a `signals` frame's `unresolved`), never fatal.
|