jlink-mcp
Version:
MCP server for SEGGER J-Link debug probes — LLM-driven embedded debugging with RTT, GDB server, and Trice/Pigweed support
68 lines • 2.72 kB
TypeScript
import { ProbeBackend, CommandResult, GDBServerInfo } from "./backend";
import { ProcessManager } from "../utils/process-manager";
export interface OpenOCDConfig {
/** Path to openocd binary */
binaryPath: string;
/** OpenOCD interface config (e.g., "interface/stlink.cfg", "interface/cmsis-dap.cfg") */
interfaceConfig: string;
/** OpenOCD target config (e.g., "target/stm32f4x.cfg", "target/nrf52.cfg") */
targetConfig: string;
/** Extra OpenOCD config files */
extraConfigs: string[];
/** GDB port */
gdbPort: number;
/** Telnet port (for OpenOCD commands) */
telnetPort: number;
/** TCL port */
tclPort: number;
}
/**
* OpenOCD backend. Supports ST-Link, CMSIS-DAP, FTDI, and many other adapters.
* Uses OpenOCD's telnet interface for commands when the server is running,
* or spawns one-shot openocd processes for individual commands.
*/
export declare class OpenOCDBackend extends ProbeBackend {
readonly type: "openocd";
readonly displayName = "OpenOCD";
private config;
private processManager;
private gdbOutputBuffer;
constructor(config: Partial<OpenOCDConfig>, processManager: ProcessManager);
/** Send a command via OpenOCD's telnet interface (when server is running) */
private telnetCommand;
/** Execute OpenOCD commands. If server is running, uses telnet. Otherwise spawns a one-shot process. */
private exec;
private buildConfigArgs;
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[];
supportsRTT(): boolean;
isDeviceConfigured(): boolean;
getDeviceName(): string;
setDevice(device: string): void;
listDevices(): Promise<CommandResult>;
dispose(): void;
}
//# sourceMappingURL=openocd.d.ts.map