吴忠躺衫网络科技有限公司

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

OpenOCD是什么?J-Link、J-Trace、Open JTAG的區(qū)別

sanyue7758 ? 來(lái)源:TrustZone ? 2023-12-12 09:43 ? 次閱讀

前言

最近在調(diào)試一些單板,對(duì)于這個(gè)調(diào)試工具我真的是又愛(ài)又恨,熟悉了那就是金箍棒,不熟悉那就是攔路虎。

有的東西用了很久還不知道這個(gè)玩意是干嘛的,于是這里來(lái)整理一篇來(lái)學(xué)習(xí)一下。

調(diào)試的工具針對(duì)不同的領(lǐng)域當(dāng)然有很多的,這里涉及到的工具是OpenOCD,這個(gè)玩意我們一起來(lái)學(xué)習(xí)一下相應(yīng)的使用方式。

一、OpenOCD是什么?

我們?cè)谑褂玫臅r(shí)候會(huì)用到OpenJTAG,那么先來(lái)看看OPENJTAG是什么?

1-OPENJTAG是什么?

OpenJTag是一個(gè)開(kāi)源項(xiàng)目(包含軟件和硬件)。

硬件是一個(gè)USB接口轉(zhuǎn)JTag接口的適配器。

借助開(kāi)源軟件OpenOCD可以完成程序的燒寫(xiě),調(diào)試等任務(wù)OpenJTag的功能:

往Flash燒寫(xiě)程序:支持NOR Flash 和 NAND Flash

支持Windows以及Linux

能夠用在支持GDB調(diào)試協(xié)議的工具上:如IAR, Eclipse

USB轉(zhuǎn)串口功能

所以本質(zhì)上還是開(kāi)源軟件OpenOCD

2-J-Link、J-Trace、Open JTAG區(qū)別

J-Link、J-Trace、Open JTAG都是用來(lái)調(diào)試程序的(當(dāng)然還有其他工具可以進(jìn)行調(diào)試,比如ICE),J-Link和J-Trace是SEGGER公司的(http://www.segger.com)。Open JTAG(http://www.openjtag.org/)是 一個(gè)開(kāi)源項(xiàng)目,其目標(biāo)是使嵌入式開(kāi)發(fā)者能夠通過(guò)JTAG接口,用開(kāi)放的硬件和軟件系統(tǒng)進(jìn)行燒寫(xiě)、校驗(yàn)和調(diào)試[1]。他們都基于JTAG調(diào)試接口協(xié)議。

本質(zhì)上都是基于JTAG接口協(xié)議的。

3-OpenOCD是什么

OpenOCD(Open On-Chip Debugger)開(kāi)源片上調(diào)試器,是一款開(kāi)源軟件,最初是由Dominic Rath同學(xué)還在大學(xué)期間發(fā)起的(2005年)項(xiàng)目。OpenOCD旨在提供針對(duì)嵌入式設(shè)備的調(diào)試、系統(tǒng)編程和邊界掃描功能。

OpenOCD的功能是在仿真器的輔助下完成的,仿真器是能夠提供調(diào)試目標(biāo)的電信號(hào)的小型硬件單元。仿真器是必須的,因?yàn)檎{(diào)試主機(jī)(運(yùn)行OpenOCD的主機(jī))通常不具備這種電信號(hào)的直接解析功能。

仿真器支持一個(gè)或多個(gè)傳輸協(xié)議,每個(gè)協(xié)議涉及不同的電信號(hào),且使用不同的協(xié)議棧進(jìn)行消息傳遞。市面上有很多種仿真器,并且這些仿真器的命名沒(méi)有統(tǒng)一的規(guī)律。

仿真器有時(shí)候會(huì)被封裝成獨(dú)立的加密狗,這種稱為硬件接口加密狗。一些開(kāi)發(fā)板上面直接集成了硬件接口加密狗,這樣可以使開(kāi)發(fā)板通過(guò)USB直接連到主機(jī)上進(jìn)行調(diào)試。

例如,JTAG仿真器支持JTAG協(xié)議的信號(hào),可以用來(lái)進(jìn)行TAPs和目標(biāo)板子之間符合JTAG協(xié)議(IEEE 1149.1)的通訊。TAP(Test Access Port)是處理特殊指令和數(shù)據(jù)的單元。TAPs在芯片與板子之間和之內(nèi)以菊花鏈的形式進(jìn)行連接。JTAG支持調(diào)試和邊界掃描。

還有SWD仿真器,這種仿真器支持使用SWD(Serial Wire Debug)信號(hào)與一些比較新的ARM芯片進(jìn)行通訊,而且還可以作為那些同時(shí)支持JTAG和SWD的芯片的仿真器。不過(guò)SWD僅支持調(diào)試,不支持邊檢掃描。

對(duì)于一些芯片,還有專門(mén)的編程下載器,這些下載器僅支持擦寫(xiě)FLASH的功能,不支持調(diào)試和邊界掃描。對(duì)于此類專用下載器,OpenOCD暫時(shí)并不支持。

加密狗:OpenOCD目前支持多種類型的硬件加密狗:基于USB的,基于并行端口的,以及其他在內(nèi)部運(yùn)行OpenOCD的獨(dú)立盒子。

GDB調(diào)試:它允許ARM7(ARM7TDMI和ARM720t),ARM9(ARM920T,ARM922T,ARM926EJ-S,ARM966E-S),XScale(PXA25x,IXP42x),Cortex-M3(Stellaris LM3,ST STM32和Energy Micro EFM32)和基于Intel Quark(x10xx)的內(nèi)核使用GDB協(xié)議進(jìn)行調(diào)試。

Flash編程:擦寫(xiě)FLASH支持外部CFI兼容NOR閃存(Intel和AMD / Spansion命令集)和幾個(gè)內(nèi)部閃存(LPC1700,LPC1800,LPC2000,LPC4300,AT91SAM7,AT91SAM3U,STR7x,STR9x,LM3,STM32x和EFM32)。包括各種NAND閃存控制器(LPC3180,Orion,S3C24xx等)的初步支持。

小結(jié)一下:

OpenOCD (Open On-Chip Debugger)是一個(gè)開(kāi)源的片上調(diào)試器,旨在提供針對(duì)嵌入式設(shè)備的調(diào)試、系統(tǒng)編程和邊界掃描功能。

OpenOCD的功能需要調(diào)試仿真器來(lái)輔助完成,調(diào)試仿真器是一個(gè)提供調(diào)試目標(biāo)電信號(hào)的小型硬件單元。常用的有Jink、STLink等,一些開(kāi)發(fā)板直接集成了調(diào)試仿真器,如小熊派開(kāi)發(fā)板就集成了STLink。

bf632c30-9816-11ee-8b88-92fbcf53809c.png

通過(guò)下面的OpenOCD架構(gòu)圖我們能更好的認(rèn)識(shí)OpenOCD。

可以看出OpenOCD提供了GDBServer,可以通過(guò)它進(jìn)行GDB相關(guān)的調(diào)試操作。

提供TeInet Server,可以通過(guò)Telnet連接對(duì)目標(biāo)板進(jìn)行燒錄、重啟等操作。

OpenOCD的配置基于TCL腳本,可以使用默認(rèn)自帶的TCL腳本,也可以編寫(xiě)自定義的腳本。

bf6eb56e-9816-11ee-8b88-92fbcf53809c.png

4-OpenJTAG怎么用?

上面我們提到OpenOCD需要調(diào)試仿真器配合使用,一般我們還會(huì)使用gdb client與其配合進(jìn)行遠(yuǎn)程調(diào)試。

bf88099c-9816-11ee-8b88-92fbcf53809c.png在這里插入圖片描述

5-JTAG與SWD的區(qū)別

JTAG (Joint Test Action Group,聯(lián)合測(cè)試行動(dòng)小組)是一種國(guó)際標(biāo)準(zhǔn)測(cè)試協(xié)議(IEEE1149.1兼容),主要用于芯片內(nèi)部測(cè)試。現(xiàn)在多數(shù)的高級(jí)器件都支持JTAG協(xié)議,如ARM、DSPFPGA器件等。標(biāo)準(zhǔn)的JTAG接口是4線:TMS、TCK、TDI、TDO,分別為模式選擇、時(shí)鐘、數(shù)據(jù)輸入和數(shù)據(jù)輸出線。相關(guān)JTAG引腳的定義為:

TMS:測(cè)試模式選擇,TMS用來(lái)設(shè)置JTAG接口處于某種特定的測(cè)試模式;

TCK:測(cè)試時(shí)鐘輸入;

TDl:測(cè)試數(shù)據(jù)輸入,數(shù)據(jù)通過(guò)TDI引|腳輸入JTAG接口;

TDO:測(cè)試數(shù)據(jù)輸出,數(shù)據(jù)通過(guò)TDO引腳從JTAG接口輸出;

串行調(diào)試(Serial Wire Debug),一種和JTAG不同的調(diào)試模式,與JTAG的20個(gè)引腳相比,SWD只需要4個(gè)(或者5個(gè))引腳,結(jié)構(gòu)簡(jiǎn)單,但是使用范圍沒(méi)有JTAG廣泛,主流調(diào)試器上也是后來(lái)才加的SWD調(diào)試模式。

SWD和傳統(tǒng)的調(diào)試方式區(qū)別:SWD模式比JTAG在高速模式下面更加可靠。在大數(shù)據(jù)量的情況下面JTAG下載程序會(huì)失敗,但是SWD發(fā)生的幾率會(huì)小很多。基本使用JTAG仿真模式的情況下是可以直接使用SWD模式的,只要你的仿真器支持,所以推薦大家使用這個(gè)模式。在GPIO剛好缺一個(gè)的時(shí)候,可以使用SWD仿真,這種模式支持更少的引腳。在板子的體積有限的時(shí)候推薦使用SWD模式,它需要的引腳少。







審核編輯:劉清

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

    關(guān)注

    9

    文章

    702

    瀏覽量

    55831
  • 適配器
    +關(guān)注

    關(guān)注

    8

    文章

    1972

    瀏覽量

    68262
  • JTAG
    +關(guān)注

    關(guān)注

    6

    文章

    401

    瀏覽量

    71842
  • J-Link
    +關(guān)注

    關(guān)注

    0

    文章

    84

    瀏覽量

    22195
  • GDB調(diào)試
    +關(guān)注

    關(guān)注

    0

    文章

    24

    瀏覽量

    1489

原文標(biāo)題:OpenOCD是什么?

文章出處:【微信號(hào):處芯積律,微信公眾號(hào):處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    J-Link中的JTAG接口使用注意事項(xiàng)

    其中,最常見(jiàn)的接口就要算是JTAG了。J-Link有一個(gè)JTAG連接器,這是一個(gè)20針的連接系統(tǒng),如下所示。
    發(fā)表于 09-22 09:46 ?2683次閱讀

    J-Trace調(diào)試器比起J-link的優(yōu)勢(shì)在哪些方面?

    看了半天J-Trace調(diào)試器的介紹,想向用過(guò)的大佬咨詢比起J-link的優(yōu)勢(shì)在哪些方面? 是不是在某些調(diào)試場(chǎng)合特別能提高調(diào)試效率?
    發(fā)表于 04-15 06:48

    【益登科技 Silicon Labs SLWSTK6021A開(kāi)發(fā)板試用體驗(yàn)】超值下載工具J-LINK/J-TRACE COMTEX

    J-TraceCortex,加上部分傳感器和子板接口,子板插上后,調(diào)試器連接子板的MCU進(jìn)行下載調(diào)試,沒(méi)有插子板時(shí),它的外接調(diào)試接口就可以接外部板子進(jìn)行調(diào)試,此時(shí)底板就是的J-LINK/J-Trace Cortex,在
    發(fā)表于 07-01 11:21

    UM08001_JlinkARM資料

    J-link / J-Trace ARM Manual Rev. 82 ,User guide of the JTAG emulators for ARM Cores——Jlink的用戶說(shuō)明
    發(fā)表于 11-09 17:55 ?34次下載

    解析J-LinkJ-TraceOpen JTAG原理以及其區(qū)別

    J-LinkJ-TraceOpen JTAG都是用來(lái)調(diào)試程序的(當(dāng)然還有其他工具可以進(jìn)行調(diào)試,比如ICE),J-Link
    的頭像 發(fā)表于 01-30 09:29 ?1.9w次閱讀
    解析<b class='flag-5'>J-Link</b>、<b class='flag-5'>J-Trace</b>、<b class='flag-5'>Open</b> <b class='flag-5'>JTAG</b>原理以及其<b class='flag-5'>區(qū)別</b>

    J-LinkJ-Trace燒錄器的使用說(shuō)明免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是J-LinkJ-Trace燒錄器的使用說(shuō)明免費(fèi)下載。
    發(fā)表于 11-28 08:00 ?11次下載
    <b class='flag-5'>J-Link</b>和<b class='flag-5'>J-Trace</b>燒錄器的使用說(shuō)明免費(fèi)下載

    J-LinkJ-Trace用戶指南免費(fèi)下載

    J-Link/J-Trace有不同的版本,每個(gè)版本都是為不同的目的/目標(biāo)設(shè)備設(shè)計(jì)的。目前,J-Link/J-Trace有以下幾種型號(hào):J-Link
    發(fā)表于 03-03 08:00 ?14次下載
    <b class='flag-5'>J-Link</b>和<b class='flag-5'>J-Trace</b>用戶指南免費(fèi)下載

    J-Link script的組成

    腳本語(yǔ)言不需要編譯,它由解釋器動(dòng)態(tài)解釋執(zhí)行。J-Link Commander(路徑C:Program Files (x86)SEGGERJLinkJLink.exe)是一個(gè)解釋器,負(fù)責(zé)對(duì)J-Link script文件進(jìn)行解釋。
    的頭像 發(fā)表于 03-09 10:57 ?2186次閱讀

    教你輕松J-Link不能連接目標(biāo)MCU的問(wèn)題

    J-Link是嵌入式軟件、硬件工程師最常用的工具之一,但是,在使用這個(gè)工具時(shí),也會(huì)遇到各種各樣的問(wèn)題。 今天來(lái)給大家講講最常見(jiàn)的一個(gè)問(wèn)題:J-Link不能連接目標(biāo)MCU。 J-Link的連接
    的頭像 發(fā)表于 06-30 11:18 ?6058次閱讀
    教你輕松<b class='flag-5'>J-Link</b>不能連接目標(biāo)MCU的問(wèn)題

    基于J-Link Remote Server軟件的遠(yuǎn)程調(diào)試方法

    SEGGER提供了一個(gè)J-Link Remote Server軟件,可以使得在任何地方連接J-Link調(diào)試應(yīng)用。J-Link Remote Server提供了圖形界面和命令行的版本,支持
    的頭像 發(fā)表于 06-14 08:56 ?2266次閱讀

    J-Link script的組成與使用方法

    J-Link作為被廣泛使用的調(diào)試器,提供了多種配套的軟件工具。例如命令配置軟件J-Link Commander,GDB server,J-Flash等。其中,J-Link Comman
    的頭像 發(fā)表于 08-01 12:20 ?2600次閱讀

    J-Link中的JTAG接口的正確使用注意事項(xiàng)

    所有標(biāo)記為NC的針腳均未連接在J-Link內(nèi)部。這里可以應(yīng)用任何信號(hào);J-Link將忽略這種信號(hào)。引腳4、6、8、10、12、14、16、18、20是連接到J-Link中GND的GND引腳。它們還應(yīng)連接到目標(biāo)系統(tǒng)中的GND。
    的頭像 發(fā)表于 09-23 09:57 ?3429次閱讀
    <b class='flag-5'>J-Link</b>中的<b class='flag-5'>JTAG</b>接口的正確使用注意事項(xiàng)

    SEGGER J-Link調(diào)試仿真器支持新型可編程SOC(片上系統(tǒng))系列

    所有J-Link型號(hào)(J-Link PRO、J-Link ULTRA+、J-Link PLUS和J-Link BASE)最新硬件版本現(xiàn)在都支
    的頭像 發(fā)表于 04-14 14:20 ?2339次閱讀

    J-Link 中的JTAG 接口:正確使用需要了解的注意事項(xiàng),在這里!

    J-Link 中的JTAG 接口:正確使用需要了解的注意事項(xiàng),在這里!
    的頭像 發(fā)表于 12-01 16:01 ?1651次閱讀
    <b class='flag-5'>J-Link</b> 中的<b class='flag-5'>JTAG</b> 接口:正確使用需要了解的注意事項(xiàng),在這里!

    SEGGER為J-Link和Flasher提供Device Provisioner工具

    日前,SEGGER宣布為其Flasher系列編程器以及J-LinkJ-Trace系列調(diào)試跟蹤工具提供Device Provisioner工具。
    的頭像 發(fā)表于 10-22 15:12 ?494次閱讀
    澳门百家乐官网实战| 百家乐官网澳门百家乐官网澳门赌场 | 博狗百家乐官网开户| 百家乐官网游戏免费| 百家乐官网游戏合法吗| 太阳城联盟| 吴忠市| 百家乐官网庄闲规则| 澳门百家乐官网信誉| 网络百家乐官网的信誉| 百家乐官网长胜攻略| 丽星百家乐官网的玩法技巧和规则| 百家乐官网娱乐真人娱乐| 洪洞县| 宝龙百家乐官网娱乐城| 百家乐官网机械投注法| 东莞百家乐官网的玩法技巧和规则| 赌百家乐官网可以赢钱| 网址百家乐官网的玩法技巧和规则 | 现金百家乐赢钱| 百家乐如何抽千| 大发888赌场官方下载| 网上娱乐城开户| 真人百家乐官网在线玩| 网上百家乐官网正规代理| JJ百家乐官网的玩法技巧和规则 | 大发888私网开户| 网上真钱娱乐| MG百家乐官网大转轮| 澳门百家乐赢钱秘诀| 百家乐输钱的原因| 大发888娱乐场下载iypu| 博彩娱乐场| 太阳城百家乐官网看牌| 沙龙百家乐官网赌场娱乐网规则 | 明升百家乐官网QQ群| 百家乐官网娱乐城体育| 澳门百家乐官网群代理| 玩百家乐有几种公式| 百家乐单机游戏免费下| 喜達博彩网|