亚洲av成人精品日韩一区,97久久久精品综合88久久,玩弄japan白嫩少妇hd,亚洲av片不卡无码久久,玩弄人妻少妇500系列

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

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

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

jlink調(diào)試器的工作原理

痞子衡嵌入式 ? 來(lái)源:網(wǎng)絡(luò)整理 ? 2024-03-08 12:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1、日常聊一聊

jlink調(diào)試器需要講得東西真的非常多,可能大部分的小伙伴在日常的開(kāi)發(fā)中只是用它來(lái)輔助我們的目標(biāo)芯片的開(kāi)發(fā),基本上是把手中的調(diào)試器當(dāng)做一個(gè)"黑匣子",不過(guò)在使用過(guò)程中也會(huì)遇到一些與我們思路相悖的現(xiàn)象,所以作者這里用一篇文章帶大家了解一下調(diào)試器的一般處理過(guò)程以便在了解調(diào)試器的原理上來(lái)解釋相關(guān)現(xiàn)象。

2、JTAG接口

我們平時(shí)使用的jlink調(diào)試器就是使用JTAG接口,JTAG以前是用于測(cè)試芯片的一種通信方式,現(xiàn)在部分ARM或者DSP等都存在JTAG接口,這樣我們就可以通過(guò)JTAG接口訪問(wèn)CPU以及其內(nèi)部狀態(tài)信息等,JTAG接口其通信信號(hào)為JTAG信號(hào),JTAG信號(hào)在IEEE相關(guān)標(biāo)準(zhǔn)中必須要有TCK、TMS、TDI,TDO四個(gè)信號(hào),TRST和STCK不做強(qiáng)制要求。說(shuō)實(shí)在的這幾個(gè)信號(hào)非常類似于SPI信號(hào),而且其JTAG數(shù)據(jù)傳輸也是通過(guò)數(shù)據(jù)移位的方式。

117f0370-dced-11ee-a297-92fbcf53809c.png

如上圖所示芯片的的JTAG接口為了提高訪問(wèn)效率設(shè)計(jì)了轉(zhuǎn)移狀態(tài)機(jī),這樣就能快速訪問(wèn)到芯片內(nèi)部相應(yīng)的寄存器,完成調(diào)試數(shù)據(jù)的傳輸,從而我們的KEIL或者IAR就能通過(guò)界面上看到相應(yīng)狀態(tài)寄存器及數(shù)據(jù)等。

3、邊界掃描鏈

我們1)小節(jié)說(shuō)的狀態(tài)機(jī)需要與芯片內(nèi)部交互,那么實(shí)際上是通過(guò)邊界掃描鏈進(jìn)行物理上的串行移位的方式輸入或者輸出相應(yīng)的內(nèi)部狀態(tài)信息。如下圖所示處理器的周圍紅色區(qū)域即為邊界掃描鏈,邊界掃描鏈?zhǔn)怯梢粋€(gè)個(gè)移位寄存器連接而成,并且一般芯片中存在多條,不同的掃描鏈對(duì)應(yīng)著不同的功能,比如說(shuō)一些掃描鏈用于訪問(wèn)內(nèi)存或者處理器中的數(shù)據(jù),有些掃描鏈用于設(shè)置或者訪問(wèn)內(nèi)部debug模塊等。

11aa80d6-dced-11ee-a297-92fbcf53809c.png

由于我們掃描鏈只能訪問(wèn)CPU外圍的相關(guān)狀態(tài)信息,對(duì)于CPU內(nèi)部信息需要用另外一種方式,通過(guò)JTAG接口傳輸相關(guān)命令讓CPU執(zhí)行相關(guān)命令把內(nèi)部寄存器的數(shù)據(jù)轉(zhuǎn)移到TAP可以直接訪問(wèn)的位置,然后傳遞出來(lái),同時(shí)也可以通過(guò)相關(guān)指令把相應(yīng)數(shù)據(jù)寫入到CPU寄存器中。我們平時(shí)在IDE中調(diào)試界面看到的全局變量的數(shù)據(jù),就是通過(guò)在TAP可以訪問(wèn)的位置放置內(nèi)存的地址,然后讓CPU執(zhí)行相關(guān)命令讀取地址訪問(wèn)內(nèi)存并把數(shù)據(jù)放到TAP可以訪問(wèn)的位置后傳輸出來(lái)直到IDE中顯示。

4、調(diào)試器進(jìn)行程序調(diào)試過(guò)程

我們的程序一般分為在RAM和FLASH上調(diào)試運(yùn)行,然后調(diào)試器的下載程序過(guò)程是不同的,我們都知道對(duì)于內(nèi)部RAM我們的CPU是可以直接訪問(wèn)的,其RAM直接連接在數(shù)據(jù)總線、地址總線和控制總線上,并且其接口都是標(biāo)準(zhǔn)化的,那么如果我們把程序放在RAM上運(yùn)行通過(guò)JTAG直接下載程序到RAM運(yùn)行,然后復(fù)位CPU進(jìn)行調(diào)試運(yùn)行即可,可是由于芯片中的FLASH型號(hào)等差異較大,并且對(duì)于FLASH的讀、寫擦除都需要特殊的命令,不同型號(hào)存在著較大的差異,所以如果進(jìn)行FLASH上運(yùn)行調(diào)試程序還不能像RAM上運(yùn)行一樣處理。

那么目前的KEIL,IAR等等IDE工具是如何下載并在FLASH中調(diào)試程序的呢?我們熟悉KEIL、IAR進(jìn)行開(kāi)發(fā)的小伙伴應(yīng)該知道,我們?cè)谶M(jìn)行JLink調(diào)試的時(shí)候會(huì)有一個(gè)選擇FLASH類型的對(duì)話框,(如下圖所示)。

11b1d642-dced-11ee-a297-92fbcf53809c.png

那么我們可以大致猜想一下,由于FLASH的驅(qū)動(dòng)不一樣,我們進(jìn)行把對(duì)應(yīng)的FLASH驅(qū)動(dòng)下載到芯片中,然后根據(jù)下載的驅(qū)動(dòng)對(duì)FLASH進(jìn)行操作把我們的程序燒錄進(jìn)入即可進(jìn)行調(diào)試了,這里我們一般都會(huì)把該驅(qū)動(dòng)程序叫做FlashLoader,我們平時(shí)比較熟悉的是BootLoader,其實(shí)兩種其實(shí)原理都是差不多,其中下載部分都是接受程序數(shù)據(jù),然后寫入到對(duì)應(yīng)的FLASH中,只是兩者在通訊方式和作用有所區(qū)別罷了,那么我繪制一個(gè)大體的過(guò)程給大家參考學(xué)習(xí):

11c83ec8-dced-11ee-a297-92fbcf53809c.png

通過(guò)上面的圖我們應(yīng)該清楚的了解到了通過(guò)jlink一般如何把固件燒錄到FLASH上進(jìn)行仿真運(yùn)行的了,然而這個(gè)思路我們也可以用在我們的實(shí)際開(kāi)發(fā)過(guò)程中比如不同芯片的升級(jí)軟件開(kāi)發(fā)等,來(lái)為我們所用。

5、最后小節(jié)一下

上面的知識(shí)限于篇幅沒(méi)有講得太深,很東西可能在我們的開(kāi)發(fā)過(guò)程也用不到,大致了解一下其過(guò)程即可,如果以后討論相關(guān)問(wèn)題可以再另外尋找相關(guān)資料進(jìn)行閱讀理解。其實(shí)說(shuō)白了JTAG就是一種通信協(xié)議,根據(jù)該通信協(xié)議發(fā)送相關(guān)命令等通過(guò)芯片內(nèi)部處理便可訪問(wèn)芯片內(nèi)部狀態(tài)或者修改相應(yīng)數(shù)據(jù)等,如果我們程序全速運(yùn)行的話其調(diào)試模式和脫機(jī)模式基本上是一樣的性能,不過(guò)遇到了斷點(diǎn)就需要分情況討論相關(guān)問(wèn)題了,對(duì)于需要連貫操作的通信及相關(guān)任務(wù)處理等會(huì)造成實(shí)效或者錯(cuò)亂,比如串口通信當(dāng)正在接受過(guò)程中被斷點(diǎn)打斷可能就會(huì)丟失本幀數(shù)據(jù)等,大家要注意下。

審核編輯:黃飛

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    11077

    瀏覽量

    217023
  • JTAG
    +關(guān)注

    關(guān)注

    6

    文章

    404

    瀏覽量

    73311
  • 調(diào)試器
    +關(guān)注

    關(guān)注

    1

    文章

    313

    瀏覽量

    24311
  • Jlink
    +關(guān)注

    關(guān)注

    6

    文章

    113

    瀏覽量

    38615
  • 測(cè)試芯片
    +關(guān)注

    關(guān)注

    0

    文章

    24

    瀏覽量

    8820

原文標(biāo)題:jlink調(diào)試器中你不知道的"那些事"(ARM篇)

文章出處:【微信號(hào):pzh_mcu,微信公眾號(hào):痞子衡嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    arm調(diào)試器有哪些應(yīng)用范圍

    arm11 時(shí)開(kāi)始使用jlink,這個(gè)調(diào)試器應(yīng)用范圍廣,主流的IDE 都有做插件集成他的調(diào)試功能,使他本身命令做成GUI的方式,對(duì)初學(xué)者更加友好,一般會(huì)用的基本不用界面調(diào)試,都是命令好
    發(fā)表于 07-16 07:58

    如何使用JLink調(diào)試器和Keil MDK-ARM來(lái)下載Hex文件?

    如何使用JLink調(diào)試器和Keil MDK-ARM來(lái)下載Hex文件?有哪些操作步驟?
    發(fā)表于 07-26 06:03

    如何自制一個(gè)基于jlink的無(wú)線調(diào)試器?

    如何自制一個(gè)基于jlink的無(wú)線調(diào)試器?
    發(fā)表于 01-18 06:47

    jlink-v8調(diào)試器jlink接口與swd接口有什么不同呢

    mdk集成開(kāi)發(fā)環(huán)境境中,jlink-v8調(diào)試器jlink接口與swd接口有什么不同呢?
    發(fā)表于 08-29 14:18

    如何使調(diào)試器JLink軟件一起工作?

    正常工作。從一些在線帖子中,我看到 segger 已經(jīng)改變了他們管理支持的設(shè)備和閃存加載算法的方式。segger 的網(wǎng)站提到要聯(lián)系芯片供應(yīng)商以對(duì) RT1052 + QSPI 進(jìn)行編程。所以請(qǐng)讓我知道如何使調(diào)試器與最新的軟件一起
    發(fā)表于 02-28 08:04

    S32K344使用SEGGER Jlink調(diào)試器,調(diào)試時(shí)程序運(yùn)行不會(huì)暫停是怎么回事?

    SEGGER Jlink調(diào)試器可以對(duì)S32K344項(xiàng)目進(jìn)行編程,但是在調(diào)試過(guò)程中,斷點(diǎn)錯(cuò)誤地位于主程序的中間而不是開(kāi)頭。在斷點(diǎn)之前加的斷點(diǎn),程序運(yùn)行到那里不會(huì)暫停
    發(fā)表于 03-30 07:27

    jlink-AXD仿真調(diào)試實(shí)驗(yàn)手冊(cè)

    jlink-AXD仿真實(shí)驗(yàn)調(diào)試手冊(cè) 1.實(shí)驗(yàn)設(shè)備:TQ2440開(kāi)發(fā)板一套,Jlink-V6,Jtag 板,ADS編譯,AXD調(diào)試器。2.
    發(fā)表于 03-11 09:06 ?79次下載

    基于CodeWarrior集成開(kāi)發(fā)環(huán)境的調(diào)試器原理

    本文首先闡述了調(diào)試器設(shè)計(jì)的基本原理,調(diào)試器的類型,調(diào)試器的結(jié)構(gòu)等基本概念。然后介紹了斷點(diǎn)設(shè)置,單步跟蹤,執(zhí)行控制和符號(hào)表讀寫的原理;以及硬件和操作系統(tǒng)對(duì)跟蹤調(diào)試
    發(fā)表于 12-27 15:31 ?65次下載
    基于CodeWarrior集成開(kāi)發(fā)環(huán)境的<b class='flag-5'>調(diào)試器</b>原理

    調(diào)試器模塊(可按鍵調(diào)試

    飛思卡爾單片機(jī) 調(diào)試器模塊(可按鍵調(diào)試)源程序
    發(fā)表于 01-13 15:18 ?11次下載

    Cepark Jlink調(diào)試總結(jié)

    Cepark Jlink調(diào)試總結(jié)
    發(fā)表于 10-27 16:12 ?9次下載
    Cepark <b class='flag-5'>Jlink</b><b class='flag-5'>調(diào)試</b>總結(jié)

    Microchip調(diào)試器(MDB)用戶指南

    Microchip調(diào)試器(MDB)是Microchip硬件和軟件開(kāi)發(fā)工具的命令行調(diào)試器接口。作為Microchip MPLAB? X集成開(kāi)發(fā)環(huán)境(Integrated Development Environment,IDE)圖形界面的替代,MDB通過(guò)命令提示符接口來(lái)
    發(fā)表于 05-12 09:46 ?19次下載

    STM32F411Cx 401Cx最小系統(tǒng) JLINK調(diào)試器開(kāi)源

    電子發(fā)燒友網(wǎng)站提供《STM32F411Cx 401Cx最小系統(tǒng) JLINK調(diào)試器開(kāi)源.zip》資料免費(fèi)下載
    發(fā)表于 08-09 09:26 ?2次下載
    STM32F411Cx 401Cx最小系統(tǒng) <b class='flag-5'>JLINK</b><b class='flag-5'>調(diào)試器</b>開(kāi)源

    串口/網(wǎng)絡(luò)數(shù)據(jù)調(diào)試器

    串口/網(wǎng)絡(luò)數(shù)據(jù)調(diào)試器
    發(fā)表于 05-09 14:59 ?1次下載

    調(diào)試器連接MCU不穩(wěn)定怎么辦?

    有沒(méi)有小伙伴遇到使用GDlink或者Jlink調(diào)試GD32 MCU的時(shí)候出現(xiàn)不穩(wěn)定的情況,剛要發(fā)現(xiàn)問(wèn)題時(shí)調(diào)試器和MCU斷開(kāi)連接了,這個(gè)時(shí)候可能抓狂的心都有了。今天就教給大家?guī)讉€(gè)提高調(diào)試器
    的頭像 發(fā)表于 02-21 09:44 ?1324次閱讀
    <b class='flag-5'>調(diào)試器</b>連接MCU不穩(wěn)定怎么辦?

    硬件調(diào)試JLink 驅(qū)動(dòng)配置與調(diào)試技巧

    調(diào)試器工作原理、驅(qū)動(dòng)配置流程、調(diào)試環(huán)境搭建、斷點(diǎn)設(shè)置、寄存與內(nèi)存調(diào)試、調(diào)試日志分析等方面,
    的頭像 發(fā)表于 06-12 23:20 ?458次閱讀
    硬件<b class='flag-5'>調(diào)試</b>:<b class='flag-5'>JLink</b> 驅(qū)動(dòng)配置與<b class='flag-5'>調(diào)試</b>技巧