STM32CubeIDE ST-LINK GDB server 也被稱為 GDB server,是通過(guò) ST-LINK JTAG 探頭在與 Arm? Cortex?-M 目標(biāo)設(shè)備連接的PC 上運(yùn)行的命令行應(yīng)用程序。
ST-LINK GDB server 啟動(dòng)時(shí)會(huì)通過(guò) ST-LINK JTAG 連接至 STM32 Arm? Cortex?-M 目標(biāo)設(shè)備。與目標(biāo)設(shè)備側(cè)建立通信之后,將等待客戶端連接至 TCP 監(jiān)聽(tīng)套接字??蛻舳诉B接至 TCP 監(jiān)聽(tīng)套接字之后,ST-LINK GDB server 將處理客戶端發(fā)送的遠(yuǎn)程串行通信協(xié)議(RSP)消息,并對(duì)目標(biāo)設(shè)備側(cè)執(zhí)行適當(dāng)操作,隨后向客戶端回復(fù) RSP。
GDB server 使用
STM32CubeIDEST-LINK GDB 服務(wù)器是命令行應(yīng)用程序,該應(yīng)用程序可通過(guò)以下方式啟動(dòng)
- 輸入一組命令行選項(xiàng)
- 指示 GDB server 從配置文件中加載選項(xiàng)
若未指定任何選項(xiàng), GDB server 將以預(yù)配置默認(rèn)選項(xiàng)啟動(dòng)。啟動(dòng)選項(xiàng)及對(duì)應(yīng)的默認(rèn)值列于第 1.1 節(jié) GDB server啟動(dòng)選項(xiàng)中。
STM32CubeIDEST-LINK GDB 服務(wù)器利用 STM32CubeProgrammer (STM32CubeProg)對(duì)需要調(diào)試的設(shè)備進(jìn)行flash 下載。當(dāng) gdb 發(fā)出 load 命令時(shí), GDB server 將自動(dòng)使用 STM32CubeProgrammer 軟件。
GDB server 工作模式
此服務(wù)器可以在持續(xù)模式或非持續(xù)模式下運(yùn)行 - 具體由配置選項(xiàng)決定。在持續(xù)模式下,服務(wù)器將在客戶端斷開(kāi)連接后繼續(xù)運(yùn)行并等待新連接,而在非持續(xù)模式下客戶端關(guān)閉連接后服務(wù)器將直接退出。但如果服務(wù)器與目標(biāo)進(jìn)行通信時(shí)出現(xiàn)錯(cuò)誤,無(wú)論服務(wù)器處于哪一種模式,服務(wù)器都將關(guān)閉所有連接并關(guān)機(jī)。
啟動(dòng) GDB server
GDB server 可以在命令窗口中以下列方式啟動(dòng):
- cdC:STSTM32CubeIDE_1.0.0.19w12patchSTM32CubeIDEpluginscom.st.stm32cube.ide.mcu.externaltools.stlink-gdb-server.win32_1.0.0.201903011553toolsbinSTLINK_gdbserver
- 利用–cp 和 STM32_Programmer_CLI.exe 路徑啟動(dòng) GDB server例如:ST-LINK_gdbserver.exe -d -v -cp"C:STSTM32CubeIDE_1.0.0.19w12patchSTM32CubeIDEpluginscom.st.stm32cube.ide.mcu.externaltools.cubeprogrammer.win32_1.0.0.201903011553toolsbin"
- 隨后 GDB server 將通過(guò) ST-LINK JTAG 與 STM32 設(shè)備相連,并等待 GDB 調(diào)試會(huì)話命令。