IT培训机构|91免费精品视频|专注编程培训|91免费精品|软件开发培训_91免费国产视频_华清远见教育

當前位置:首頁 > 學習資源 > 講師博文 > JTAG和SWD的調試技術及應用

JTAG和SWD的調試技術及應用 時間:2024-12-17      來源:華清遠見

引言

在一些常見的嵌入式系統的開發當中,硬件的調試接口是極其重要的,但是一些傳統的調試方法往往存在一些可能致命的問題。比如串口調試雖然簡單容易使用,但是實時性較差,不夠精確。單步執行的話,雖然精確度高,但是又存在操作復雜的問題。傳統的調試方法往往受到速度、準確性和調試精度的限制。

為了解決這些問題,JTAG(聯合測試行動組,Joint Test Action Group)和SWD(Serial Wire Debug)作為兩種主要的調試協議,廣泛應用于嵌入式開發中。它們提供了高效的硬件調試手段,不僅能夠實現單步執行、斷點設置、變量監控等常規調試功能,還能夠深入底層硬件,進行更復雜的系統級調試。

JTAG 和 SWD

JTAG(聯合測試行動組)

大多說人可能聽過JTAG,并且用它給MCU或者FPGA燒錄過程序,或者對開發板進行過調試,JTAG 最初是為了解決硬件板級測試問題而提出的,它是一種標準化的調試接口,那什么是標準化的調試接口呢?比如說在PCB板上存在三種廠家的芯片,那如果想對三個芯片都進行測試的話就需要一個適應所有芯片的代碼,會非常的龐大且單一性較強,所以才有了像JTAG這些標準化的調試接口。

JTAG 協議基于一個串行通信接口,由四個主要的信號線(上圖中的實線部分)和一個復位引腳組成(虛線部分)主要通過四個信號引腳進行數據傳輸:

·  TDI(Test Data In):測試數據輸入,用于接收數據到目標設備。

·  TDO(Test Data Out):測試數據輸出,用于輸出從目標設備獲取的數據。

·  TMS(Test Mode Select):測試模式選擇,通過該信號來選擇不同的工作模式。

·  TCK(Test Clock):測試時鐘,提供時鐘信號以驅動數據傳輸。

通過這四個信號,JTAG 能夠控制和訪問目標設備的各個寄存器、內存以及執行控制流程。

我們在使用JTAG進行調試時,一般不會在我們寫好的代碼當中去調用JTAG的接口,而是通過JTAG調試器來與硬件進行交互。一般會與我們的開發環境進行配合,比如我們常見的GDB調試工具。下面我舉了一個簡單的例子來使用JTAG進行調試。

下面我將對上面的C語言程序使用GDB和JTAG進行調試

1. 編譯程序,為了使用 GDB 和 JTAG 進行調試,我們需要編譯程序并生成調試信息。使用 -g 參數編譯程序,這樣 GDB 才能讀取符號信息

2. 假設已經連接了一個 JTAG 調試器(如 ST-Link 或 J-Link),可以使用 OpenOCD 啟動調試服務器。這個服務器會通過 JTAG 接口與目標硬件通信。在 OpenOCD 啟動命令行中指定調試器接口和目標設備

執行結束后會啟動OpenOCD,對GDB調試命令進行監聽。

3. 啟動GDB并且加載好編譯的文件

4. 連接GDB到OpenOCD在 GDB 中,連接到運行 OpenOCD 的調試服務器

GDB 會連接到 OpenOCD,后者通過 JTAG 連接到目標設備。

1. 設置斷點并且調試

l 設置斷點:可以設置斷點在 main 函數或任何其他地方(例如,剛剛插入的 __asm("bkpt #0"))。

l break main:會在main函數的開頭設置一個斷點

l 運行程序:使用 continue 命令運行程序,GDB 會在斷點處暫停。

l 單步執行:當程序在斷點處暫停時,可以單步執行代碼:(step 進入函數 next 執行下一行,不進入函數)

l 查看寄存器:可以查看 CPU 寄存器的內容,例如查看程序計數器 PC(info registers)

l 查看變量值:還可以查看某個變量的值,例如查看 i(print i)

l 退出 GDB:調試結束后,你可以退出 GDB。

2. 調試器和JTAG的交互

l 當程序運行到 __asm("bkpt #0") 斷點時,JTAG 調試器會暫停程序的執行,GDB 會接管控制。

l 你可以通過 GDB 調試命令來執行單步調試、查看寄存器和內存內容、設置更多斷點等。

l TAG 在這個過程中負責與硬件進行交互,GDB 通過 JTAG 通道控制程序執行。

以上就是JATG的基本使用方法。那下面我們再來說一下SWD

SWD(Serial Wire Debug)調試技術

SWD是我們在學習STM32過程中最常見的燒錄接口SWD是由ARM公司為其處理器(特別是Cortex系列)開發的一種串行調試接口。它的設計目的是為了在有限的引腳資源下提供高效、低功耗的調試解決方案,尤其適用于嵌入式應用和資源受限的系統。

SWD是一個2線(或4線)接口,相比JTAG節省了許多硬件資源,典型的接口信號有:

l SWDIO(Serial Wire Debug Input/Output):串行數據輸入/輸出

l SWCLK(Serial Wire Clock):時鐘信號

l NRST(可選,復位信號):目標設備的復位信號

SWD提供了與JTAG類似的調試功能,但采用串行方式進行數據傳輸,相對占用更少的引腳。

如果想進行SWD的實際調試,只需要將上面示例中的JTAG更換成SWD即可

JTAG和SWD在系統調試中的應用

以上示例就是JTAG和SWD的簡單使用,那在實際的應用開發當中,這兩種調試方法我們應該如何去選擇呢?這就需要了解一下兩種技術的優缺點

首先,JTAG技術具有廣泛的硬件支持,很多嵌入式的芯片和處理器都提供了JTAG接口,JATG接口通常提供了豐富的調試功能,包括讀取和寫入寄存器、訪問內存、硬件斷點等。因為JTAG提供了更多的控制和功能,所以更適用于比較復雜的嵌入式操作系統。但是由于它的并行性和較多的控制線,硬件實現會更加復雜。

SWD的硬件設計更為簡化,只需要少量的引腳,所以在資源受限的系統中更加容易執行,但是提供的功能不如JTAG豐富。

那JTAG vs. SWD:如何選擇?

在選擇JTAG還是SWD時,應考慮以下因素:

1、硬件支持

首先,檢查目標芯片是否支持所需的調試接口。如果芯片只支持其中一種接口,選擇已支持的接口是明智的。

2、性能需求

如果你需要更高的通信速度和較低的功耗,那么SWD可能是更好的選擇。但如果你需要豐富的調試功能,可能需要使用JTAG。

3、系統復雜性

對于較復雜的系統,特別是涉及多個處理器核心或FPGA的系統,JTAG通常更適用,因為它提供了更多的控制和功能。

4、成本考慮

考慮硬件成本和復雜性。SWD通常更簡單,因此在資源有限的系統中可能更經濟實惠。

5、開發工具

確保你的開發工具和調試器支持你選擇的接口。大多數現代調試工具都同時支持JTAG和SWD。

結論

JTAG和SWD都是重要的嵌入式系統調試接口,各自具有優勢和劣勢。選擇哪種接口取決于項目需求、硬件支持和性能要求。對于復雜的系統,可能需要使用JTAG以獲得更多的控制和功能,而對于資源有限的系統,SWD可能更適合。綜合考慮這些因素,可以幫助你做出明智的選擇,以便更有效地進行嵌入式系統開發和調試。

上一篇:如何在硬件級別實現安全特性以保護嵌入式系統

下一篇:LSTM和GRU在時間序列預測中的應用

戳我查看嵌入式每月就業風云榜

點我了解華清遠見高校學霸學習秘籍

猜你關心企業是如何評價華清學員的

干貨分享
相關新聞
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2024 北京華清遠見科技發展有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 尾矿干排_机制砂尾矿干排_带式压滤机|山东森鹏环保科技有限公司 潍坊卓瑞机械有限公司,输送设备,石灰消化设备,餐厨垃圾设备,化机浆设备,污泥脱水 | 活性炭吸附设备,UV光氧废气处理设备,破碎机专用除尘器,催化燃烧设备厂家-河北碧清环保设备有限公司 | 体育馆木地板厂家_篮球木地板价格_舞台木地板品牌-欧氏地板 | 四边封包装机_蒸汽眼罩机_暖宝宝/足贴/热灸贴生产设备_浙江硕源机械有限公司 | 专业提供医疗器械,医疗设备,进口国产医疗设备,医疗耗材采购,医疗设备厂家等医疗器械信息-上海聚慕医疗器械有限公司 | 宣传片拍摄-宣传片制作-三维动画-企业视频广告报价-北京环宇影音 | 浙江中凯科技股份有限公司-KB0控制与保护开关_KBO | 石家庄德迈机电设备有限公司| 鸟语林-百鸟园-不锈钢丝绳网-钢丝网-瓦片防坠网-围网-河北中重钢结构工程有限公司 | 水处理设备厂家_纯净水设备_超纯水设备价格找西安瑞泉水处理 | 深圳市佳顺优印印刷有限公司,佳顺优印,画册印刷,海报印刷,封套印刷,手提袋印刷,包装盒印刷,彩盒印刷,无碳纸印刷,不干胶印刷,信封印刷,便笺印刷,笔记本印刷,台历印刷,挂历印刷,国际会展中心附近印刷厂,宝安印刷厂,宝安教材印刷厂 | 思为网络_成都百度优化快照排名-成都网站建设优化_成都网页设计_成都SEO公司 | 石家庄团建公司|石家庄拓展训练|石家庄拓展培训|石家庄公司团建|石家庄拓展公司-石家庄启聚团建公司 | 永磁变频空压机-无油空压机-螺杆式空压机热能回收-空压机配套-空压机合同能源管理-维修保养-北京斯特兰压缩机有限公司 | 激光切割加工,佛山激光切割加工,钣金加工,机加工-佛山市华锐达金属制品有限公司 | 网站建设-百度SEO关键词优化与企业全网营销推广服务-启源信息 | 三叶罗茨鼓风机_三叶罗茨风机厂家_山东九洲四海机械有限公司 | 机械设备回收_二手机器回收_设备拆除回收_广州益美机械设备回收公司 | 装盒机_全自动装盒机-温州凯祥包装机械有限公司 | 铝型材定制_东莞铝型材_散热器铝型材_工业铝合金型材挤压加工生产厂家价格-中亚铝业 | 深圳市福田区建筑装饰设计协会| 山东宝沣新材料有限公司 | 陶瓷-超高速胶体磨-高剪切胶体磨厂家价格-上海思峻机械设备有限公司 | 托普云农-数字农业综合服务商-官方网站 | 视频监控|安防监控|智能防火|智慧城市-浩海科技 | 深圳钢成培训专业从事,五轴培训,车铣复合培训,数控车床,CNC数控编程,模具编程 ,钣金机械与模具设计,powermill,mastercam,solidworks,ug,hypermill培训 | 厌氧培养系统_厌氧工作站_厌氧培养装置_智能厌氧培养_常州普莱实验系统 | 整体滤板模板-S型塑料滤砖-MBBR生物悬浮球填料-微孔曝气器-大恒环保科技 | 戏曲下载网,唱戏机戏曲下载,戏曲视频下载,戏曲MP3下载 - 梨园风 | 上海律师_上海法律咨询_律师在线咨询网站_上海律师事务所-沪律网 | 青岛除甲醛公司|青岛甲醛治理|青岛除甲醛|甲醛检测|光触媒除甲醛|装修除味除甲醛|新房除甲醛|青岛室内环境污染检测治理|青岛闪洁环保科技有限公司官网 | 深圳注册公司-工商注册代理-深圳注册公司流程及费用-记帐报税-公司注销-[深圳市悟空企业管理(深圳)有限公司] | 中婴网,推动母婴产业健康·可持续发展,婴童网络专业传媒,母婴网,360孕婴童网,婴童品牌,婴儿用品品牌,婴儿用品加盟店,母婴用品加盟店 | 曙海培训-ZEMAX培训射频培训无线电培训GMS培训EMC培训电磁兼容性培训Maxwell培训欧姆龙培训procast培训可靠性培训光学培训工业机器人培训NI培训Linux培训5G培训Hadoop培训CFD培训 | 华为交换机及防火墙-H3C无线AP-鸿远腾达华为交换机总代理商 | 浙江欧诺机械有限公司| 中式婚礼_汉服婚礼_传统婚礼_婚庆公司_云歌婚礼策划【官网】 | 上海画册设计-上海宣传册设计-产品手册设计-企业画册设计公司 | 西安宣传片拍摄,陕西艺景网络科技有限公司资料备份,西安影视公司,视频拍摄制作,抖音视频制作,纪录片拍摄西安短视频摄影团队,西安抖音视频拍摄 | 围墙护栏,护栏网,围栏,锌钢栅栏,护栏网厂家--安平县沃达金属丝网制造有限公司 | 激光焊接机_激光打标机_激光切割机-惠州市镭凌激光科技有限公司 激光焊接不锈钢翅片管,不锈钢翅片管,激光焊接复合翅片管,南通拓帆换热设备有限公司 |