UNPKG

jlink-mcp

Version:

MCP server for SEGGER J-Link debug probes — LLM-driven embedded debugging with RTT, GDB server, and Trice/Pigweed support

59 lines 2.32 kB
import { ProbeBackend, CommandResult, GDBServerInfo } from "./backend"; import { ProcessManager } from "../utils/process-manager"; export interface BlackMagicConfig { /** Path to GDB binary (arm-none-eabi-gdb) */ gdbPath: string; /** Serial port for BMP (e.g., "/dev/ttyACM0", "/dev/cu.usbmodem*") */ serialPort: string; /** Target index when scanning (default 1) */ targetIndex: number; /** GDB port if using networked BMP */ gdbPort: number; } /** * Black Magic Probe backend. * BMP is unique: it has a built-in GDB server on a serial port. * We interact with it by running arm-none-eabi-gdb with commands. * No separate GDB server process is needed. */ export declare class BlackMagicBackend extends ProbeBackend { readonly type: "blackmagic"; readonly displayName = "Black Magic Probe"; private config; private processManager; constructor(config: Partial<BlackMagicConfig>, processManager: ProcessManager); /** Execute GDB commands against the Black Magic Probe */ private gdbExec; 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=blackmagic.d.ts.map