Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |