jlink-mcp
Version:
MCP server for SEGGER J-Link debug probes — LLM-driven embedded debugging with RTT, GDB server, and Trice/Pigweed support
57 lines • 2.08 kB
TypeScript
import { ProbeBackend, CommandResult, GDBServerInfo } from "./backend";
import { ProcessManager } from "../utils/process-manager";
export interface JLinkConfig {
installDir: string;
device: string;
interface: "SWD" | "JTAG";
speed: number;
serialNumber?: string;
gdbPort: number;
rttTelnetPort: number;
swoTelnetPort: number;
}
export declare class JLinkBackend extends ProbeBackend {
readonly type: "jlink";
readonly displayName = "SEGGER J-Link";
private config;
private processManager;
private gdbOutputBuffer;
constructor(config: Partial<JLinkConfig>, processManager: ProcessManager);
private get jlinkExe();
private get gdbServerExe();
/** Core execution: spawn JLinkExe with commands piped to stdin */
private exec;
getDeviceInfo(): Promise<CommandResult>;
halt(): Promise<CommandResult>;
resume(): Promise<CommandResult>;
reset(halt?: boolean): Promise<CommandResult>;
step(): Promise<CommandResult>;
readMemory(address: number, length: number): Promise<CommandResult>;
writeMemory(address: number, value: number): Promise<CommandResult>;
readAllRegisters(): Promise<CommandResult>;
readRegister(name: string): Promise<CommandResult>;
flash(filePath: string, baseAddress?: number): Promise<CommandResult>;
erase(): Promise<CommandResult>;
setBreakpoint(address: number): Promise<CommandResult>;
clearBreakpoints(): Promise<CommandResult>;
executeRaw(commands: string[]): Promise<CommandResult>;
startGDBServer(): Promise<{
success: boolean;
message: string;
}>;
stopGDBServer(): {
success: boolean;
message: string;
};
isGDBServerRunning(): boolean;
getGDBServerStatus(): GDBServerInfo;
getGDBServerOutput(lines?: number): string[];
isDeviceConfigured(): boolean;
getDeviceName(): string;
setDevice(device: string): void;
listDevices(): Promise<CommandResult>;
supportsRTT(): boolean;
getRTTPort(): number;
dispose(): void;
}
//# sourceMappingURL=jlink.d.ts.map