chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

嵌入式開發(fā)調試神器全解析:JTAG、SWD、串口打印

信盈達 ? 2025-11-24 19:04 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

嵌入式代碼只是第一步,調試才是決定項目能不能順利推進的關鍵。

MCU 不跑?外設不響應?代碼跑飛?

沒有合適的調試手段,排查問題就像摸黑找路。

本文帶你搞懂三大調試利器 ——JTAG、SWD、串口打印。不僅對比優(yōu)缺點,還提供實戰(zhàn)操作步驟 + 代碼示例,讓你學完就能上手。

一、JTAG —— 復雜系統(tǒng)的“放大鏡”

原理與特點

  • 接口:4~5 根信號線(TDI、TDO、TCK、TMS,可選 TRST)
  • 功能:單步運行、斷點、寄存器查看、內存讀寫
  • 應用:Cortex-A、FPGA、復雜 SoC

Keil/MDK 操作步驟

  1. 接入 J-Link / ULINK 調試器
  2. 打開Project → Options → Debug,選擇JTAG 調試
  3. 編譯工程,點擊Download燒寫固件
  4. 按F5進入調試,支持:
  • 單步運行(F10/F11)
  • 查看寄存器
  • 內存監(jiān)視

OpenOCD 命令行示例

  1. openocd-f interface/jlink.cfg-f target/stm32f4x.cfg

進入 GDB 調試:

  1. arm-none-eabi-gdb build/firmware.elf
  2. (gdb)target remote localhost:3333
  3. (gdb)monitor reset halt
  4. (gdb)load
  5. (gdb)continue

小貼士:JTAG 引腳多,布線復雜,注意避免長線和交叉走線導致信號干擾。

二、SWD —— MCU 調試的首選

原理與特點

  • 接口:2 根線(SWDIO、SWCLK)
  • 功能:斷點、寄存器訪問、內存修改
  • 應用:STM32、NXP、Nordic 等 Cortex-M

Keil/MDK 操作步驟

  1. 接入 ST-LINK
  2. Project → Options → Debug → ST-Link Debugger
  3. Utilities → 選擇Use ST-LINK作為編程
  4. 按F5進入調試,支持斷點、變量觀察

代碼斷點示例

  1. intmain(void){
  2. HAL_Init();
  3. MX_GPIO_Init();
  4. intcounter=0;
  5. while(1){
  6. counter++;// 在這里設置斷點,調試時觀察 counter 值變化
  7. }
  8. }

小貼士:用 SWD 調試時,可以結合ITM/SWO 輸出,打印實時日志而不占用 UART。

三、串口打印 —— 最接地氣的調試方式

原理與特點

  • UART 將變量、狀態(tài)輸出到上位機
  • 本質:調試日志(printf 調試)
  • 應用:邏輯驗證、狀態(tài)監(jiān)控、無調試器場景

實現(xiàn)步驟

  1. MCU 初始化 UART(波特率 115200 常見)
  2. fputc重定向printf
  3. 打開串口調試助手(SSC/Putty/Termite),選擇對應 COM 口
  4. 查看輸出調試日志

代碼示例

  1. #include"stdio.h"
  2. intfputc(intch,FILE*f){
  3. HAL_UART_Transmit(&huart1,(uint8_t*)&ch,1,HAL_MAX_DELAY);
  4. returnch;
  5. }
  6. intmain(void){
  7. HAL_Init();
  8. MX_USART1_UART_Init();
  9. intvalue=42;
  10. printf("Debug: value = %d\r\n",value);
  11. while(1){
  12. HAL_Delay(1000);
  13. printf("Loop running...\r\n");// 在串口助手中觀察輸出
  14. }
  15. }

小貼士:打印過多可能改變程序時序(海森堡效應),建議只保留關鍵日志。

四、三者對比表

調試方式接口線數(shù)功能范圍優(yōu)點缺點典型應用
JTAG4~5 根全面(斷點、寄存器、內存)功能齊全,標準化引腳多,速度一般SoC、FPGA 調試
SWD2 根MCU 調試引腳少,速度快僅限 Cortex-MSTM32、Cortex-M
串口打印2 根程序流程、變量輸出簡單直觀占資源,功能有限基礎邏輯調試

五、如何選擇?

  • 開發(fā)初期邏輯驗證→ 串口打印
  • 常規(guī) MCU 調試→ SWD
  • 復雜系統(tǒng)/SoC/FPGA→ JTAG

最佳實踐:組合使用

  • SWD 斷點調試
  • 串口打印關鍵日志
  • JTAG 處理復雜系統(tǒng)問題

總結

  • JTAG功能最全,適合復雜系統(tǒng)
  • SWD精簡高效,MCU 調試首選
  • 串口打印簡單直接,快速驗證邏輯

熟練掌握并靈活組合三者,能讓你的調試效率飛躍提升,少走彎路。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • JTAG
    +關注

    關注

    6

    文章

    411

    瀏覽量

    74579
  • 嵌入式開發(fā)

    關注

    18

    文章

    1101

    瀏覽量

    49823
  • SWD
    SWD
    +關注

    關注

    1

    文章

    59

    瀏覽量

    12563
  • 串口打印
    +關注

    關注

    0

    文章

    11

    瀏覽量

    3312
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    嵌入式開發(fā)調試經(jīng)驗分享

    嵌入式開發(fā)過程中的一點調試經(jīng)驗嵌入式開發(fā)最麻煩的在現(xiàn)場調試過程中或實際運營過程中出現(xiàn)問題很難定位。我在實際開發(fā)過程中一點經(jīng)驗分享給大家
    發(fā)表于 11-05 08:15

    嵌入式開發(fā)putty串口打印亂碼編碼格式問題

    目錄嵌入式開發(fā)putty串口打印亂碼編碼格式問題波特率設置錯誤嵌入式開發(fā)putty串口打印亂碼在
    發(fā)表于 11-05 09:10

    基于ARM的嵌入式開發(fā)

    基于ARM的嵌入式開發(fā):華清遠見/孫天澤基于ARM的嵌入式開發(fā)內容有:ARM簡介,基于ARM的嵌入式產(chǎn)品,ARM架構,基于ARM的嵌入式開發(fā)。
    發(fā)表于 10-04 08:49 ?83次下載

    嵌入式JTAG調試方法步驟

    嵌入式JTAG調試方法步驟 嵌入式系統(tǒng)JTAG調試步驟1. 將PC與
    發(fā)表于 03-01 16:24 ?34次下載

    嵌入式開發(fā)

    嵌入式開發(fā)就是指在嵌入式操作系統(tǒng)下進行開發(fā),嵌入式Linux是以Linux為基礎的嵌入式作業(yè)系統(tǒng)。這里提供了
    發(fā)表于 12-20 13:21
    <b class='flag-5'>嵌入式開發(fā)</b>

    嵌入式軟件的打印調試信息的方法

    在我們的嵌入式開發(fā)中,常常把printf重定向到MCU的串口外設,再配合上位機界面軟件,通過打印調試信息的方式來調試我們的
    的頭像 發(fā)表于 04-04 17:35 ?3822次閱讀

    嵌入式開發(fā)的產(chǎn)品有哪些_嵌入式開發(fā)的流程

    本文主要闡述了嵌入式開發(fā)的產(chǎn)品,其次介紹了嵌入式開發(fā)的流程。
    發(fā)表于 08-31 15:38 ?1.2w次閱讀

    下載調試接口SWDJTAG的區(qū)別

    作為嵌入式工程師,下載調試器都應該知道,但你真正了解其 SWDJTAG 接口的含義和區(qū)別嗎? 1、什么是下載調試器 簡單來說,下載
    的頭像 發(fā)表于 11-28 11:44 ?5503次閱讀

    嵌入式開發(fā)(一):嵌入式開發(fā)新手入門

    嵌入式開發(fā)環(huán)境及交叉編譯環(huán)境,開發(fā)完成后,編譯得到bin文件,然后在Windows下將bin文件通過串口或網(wǎng)絡下發(fā)到嵌入式板卡,程序在嵌入式
    發(fā)表于 10-14 10:58 ?79次下載
    <b class='flag-5'>嵌入式開發(fā)</b>(一):<b class='flag-5'>嵌入式開發(fā)</b>新手入門

    嵌入式開發(fā)資料免費分享

    嵌入式開發(fā)資料免費分享嵌入式工程師經(jīng)驗分享:如何學習嵌入式開發(fā)截取文檔部分學習嵌入式工程師經(jīng)驗分享的資料分享給大家,文檔上從、嵌入式系統(tǒng)的概
    發(fā)表于 10-21 11:07 ?47次下載
    <b class='flag-5'>嵌入式開發(fā)</b>資料免費分享

    嵌入式開發(fā)過程中的一點調試經(jīng)驗

    嵌入式開發(fā)過程中的一點調試經(jīng)驗嵌入式開發(fā)最麻煩的在現(xiàn)場調試過程中或實際運營過程中出現(xiàn)問題很難定位。我在實際開發(fā)過程中一點經(jīng)驗分享給大家
    發(fā)表于 11-02 18:06 ?15次下載
    <b class='flag-5'>嵌入式開發(fā)</b>過程中的一點<b class='flag-5'>調試</b>經(jīng)驗

    嵌入式開發(fā)putty串口打印亂碼

    目錄嵌入式開發(fā)putty串口打印亂碼編碼格式問題波特率設置錯誤嵌入式開發(fā)putty串口打印亂碼在
    發(fā)表于 11-02 18:21 ?12次下載
    <b class='flag-5'>嵌入式開發(fā)</b>putty<b class='flag-5'>串口</b><b class='flag-5'>打印</b>亂碼

    嵌入式開發(fā)(一):嵌入式開發(fā)新手入門(轉載后續(xù)需要修改補充)

    嵌入式開發(fā)環(huán)境及交叉編譯環(huán)境,開發(fā)完成后,編譯得到bin文件,然后在Windows下將bin文件通過串口或網(wǎng)絡下發(fā)到嵌入式板卡,程序在嵌入式
    發(fā)表于 11-02 20:06 ?17次下載
    <b class='flag-5'>嵌入式開發(fā)</b>(一):<b class='flag-5'>嵌入式開發(fā)</b>新手入門(轉載后續(xù)需要修改補充)

    嵌入式開發(fā)串口通訊方案

    嵌入式開發(fā)中,經(jīng)常會用到串口通訊。面對不同應用場景,需要不同的方案。
    的頭像 發(fā)表于 05-23 11:48 ?3007次閱讀

    jtag接口和swd接口區(qū)別

    jtag接口和swd接口區(qū)別 JTAG (Joint Test Action Group) 接口和 SWD (Serial Wire Debug) 接口是兩種用于
    的頭像 發(fā)表于 12-07 15:29 ?8696次閱讀