UNPKG

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
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