Skip to main content
Glama
gghammer

MCP J-Link Server

by gghammer

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
jlink_list_emulators

列舉所有透過 USB 連線的 J-Link 除錯探針。

回傳每支探針的序號與產品名稱。 此工具不需要先開啟連線即可使用。

jlink_get_status

取得目前 J-Link 連線狀態的完整摘要。

顯示探針連線狀態、目標晶片資訊、RTT 狀態等。 此工具隨時可以呼叫。

jlink_open

開啟與 J-Link 探針的連線。

若只有一支探針連線,可不指定參數。若有多支探針,需透過序號指定。 也可透過 IP 位址連線到遠端 J-Link(透過 J-Link Remote Server)。

Args: serial_no: J-Link 探針序號(可透過 jlink_list_emulators 取得) ip_addr: 遠端 J-Link 的 IP 位址與埠號,格式如 "192.168.1.100:19020"

jlink_connect

連線到目標晶片。

必須先透過 jlink_open 開啟探針。常用晶片名稱範例: STM32F407VE, STM32F103C8, nRF52832_xxAA, LPC1768, ATSAMD21G18 等。

Args: chip_name: 目標晶片名稱(SEGGER 裝置資料庫中的名稱) speed: 通訊速率,可填 "auto"、"adaptive" 或數字 kHz(如 "4000") interface: 除錯介面,"SWD" 或 "JTAG"(預設 SWD)

jlink_close

關閉 J-Link 連線並釋放所有資源。

會自動停止 RTT(若啟動中)、斷開目標連線、關閉探針連線。

jlink_memory_read

讀取目標晶片的記憶體。

Args: address: 起始位址,支援十六進位格式如 "0x20000000" 或十進位 num_units: 讀取的單元數量(依 width 而定) width: 資料寬度,可選 8、16 或 32(位元),預設 32

jlink_memory_write

寫入資料到目標晶片的記憶體。

Args: address: 起始位址,支援十六進位格式如 "0x20000000" 或十進位 data: 要寫入的資料陣列,每個元素對應一個 width 單元 width: 資料寬度,可選 8、16 或 32(位元),預設 32

jlink_flash_file

燒錄韌體檔案到目標晶片的 Flash 記憶體。

支援 .hex、.bin、.srec 等常見韌體格式。 燒錄前會自動擦除對應的 Flash 區塊。

Args: file_path: 韌體檔案的絕對路徑 address: 燒錄起始位址(.hex 檔通常忽略此參數),預設 "0x0"

jlink_erase_chip

擦除目標晶片的整個 Flash 記憶體。

注意:此操作不可逆轉,將清除晶片上所有已燒錄的韌體。

jlink_reset

重置目標晶片。

Args: halt: 重置後是否暫停 CPU(預設 True,暫停在重置向量)

jlink_halt

暫停目標晶片的 CPU 執行。

jlink_go

繼續執行目標晶片的 CPU(從目前位置繼續)。

jlink_step

執行單一指令(單步執行)。CPU 必須處於暫停狀態。

jlink_register_read

讀取指定的 CPU 暫存器值。

Args: register: 暫存器索引(0=R0, 1=R1, ..., 13=SP, 14=LR, 15=PC, 16=xPSR)

jlink_register_read_all

讀取所有 CPU 暫存器的值。CPU 必須處於暫停狀態。

jlink_register_write

寫入值到指定的 CPU 暫存器。

Args: register: 暫存器索引(0=R0, ..., 13=SP, 14=LR, 15=PC) value: 要寫入的 32 位元值

rtt_start

啟動 RTT(Real-Time Transfer)通訊。

目標韌體必須已整合 SEGGER RTT 函式庫。 啟動後可使用 rtt_read / rtt_write 進行雙向通訊。

rtt_read

從 RTT 上行緩衝區讀取資料(裝置→主機方向)。

讀取的資料會從緩衝區中移除。若無資料則回傳空結果。

Args: buffer_index: RTT 上行緩衝區索引,預設 0(通常是 Terminal) num_bytes: 最大讀取位元組數,預設 1024

rtt_write

寫入資料到 RTT 下行緩衝區(主機→裝置方向)。

Args: text: 要傳送的文字內容 buffer_index: RTT 下行緩衝區索引,預設 0

rtt_stop

停止 RTT 通訊。

rtt_get_status

取得 RTT 緩衝區狀態資訊。

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/gghammer/MCP_JLINK'

If you have feedback or need assistance with the MCP directory API, please join our Discord server