精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

jlink調試器的工作原理

痞子衡嵌入式 ? 來源:網絡整理 ? 2024-03-08 12:32 ? 次閱讀

1、日常聊一聊

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

2、JTAG接口

我們平時使用的jlink調試器就是使用JTAG接口,JTAG以前是用于測試芯片的一種通信方式,現在部分ARM或者DSP等都存在JTAG接口,這樣我們就可以通過JTAG接口訪問CPU以及其內部狀態信息等,JTAG接口其通信信號為JTAG信號,JTAG信號在IEEE相關標準中必須要有TCK、TMS、TDI,TDO四個信號,TRST和STCK不做強制要求。說實在的這幾個信號非常類似于SPI信號,而且其JTAG數據傳輸也是通過數據移位的方式。

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

如上圖所示芯片的的JTAG接口為了提高訪問效率設計了轉移狀態機,這樣就能快速訪問到芯片內部相應的寄存器,完成調試數據的傳輸,從而我們的KEIL或者IAR就能通過界面上看到相應狀態寄存器及數據等。

3、邊界掃描鏈

我們1)小節說的狀態機需要與芯片內部交互,那么實際上是通過邊界掃描鏈進行物理上的串行移位的方式輸入或者輸出相應的內部狀態信息。如下圖所示處理器的周圍紅色區域即為邊界掃描鏈,邊界掃描鏈是由一個個移位寄存器連接而成,并且一般芯片中存在多條,不同的掃描鏈對應著不同的功能,比如說一些掃描鏈用于訪問內存或者處理器中的數據,有些掃描鏈用于設置或者訪問內部debug模塊等。

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

由于我們掃描鏈只能訪問CPU外圍的相關狀態信息,對于CPU內部信息需要用另外一種方式,通過JTAG接口傳輸相關命令讓CPU執行相關命令把內部寄存器的數據轉移到TAP可以直接訪問的位置,然后傳遞出來,同時也可以通過相關指令把相應數據寫入到CPU寄存器中。我們平時在IDE中調試界面看到的全局變量的數據,就是通過在TAP可以訪問的位置放置內存的地址,然后讓CPU執行相關命令讀取地址訪問內存并把數據放到TAP可以訪問的位置后傳輸出來直到IDE中顯示。

4、調試器進行程序調試過程

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

那么目前的KEIL,IAR等等IDE工具是如何下載并在FLASH中調試程序的呢?我們熟悉KEIL、IAR進行開發的小伙伴應該知道,我們在進行JLink調試的時候會有一個選擇FLASH類型的對話框,(如下圖所示)。

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

那么我們可以大致猜想一下,由于FLASH的驅動不一樣,我們進行把對應的FLASH驅動下載到芯片中,然后根據下載的驅動對FLASH進行操作把我們的程序燒錄進入即可進行調試了,這里我們一般都會把該驅動程序叫做FlashLoader,我們平時比較熟悉的是BootLoader,其實兩種其實原理都是差不多,其中下載部分都是接受程序數據,然后寫入到對應的FLASH中,只是兩者在通訊方式和作用有所區別罷了,那么我繪制一個大體的過程給大家參考學習:

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

通過上面的圖我們應該清楚的了解到了通過jlink一般如何把固件燒錄到FLASH上進行仿真運行的了,然而這個思路我們也可以用在我們的實際開發過程中比如不同芯片的升級軟件開發等,來為我們所用。

5、最后小節一下

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

審核編輯:黃飛

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

    關注

    68

    文章

    10702

    瀏覽量

    209383
  • JTAG
    +關注

    關注

    6

    文章

    393

    瀏覽量

    71433
  • 調試器
    +關注

    關注

    1

    文章

    297

    瀏覽量

    23568
  • Jlink
    +關注

    關注

    5

    文章

    111

    瀏覽量

    37518
  • 測試芯片
    +關注

    關注

    0

    文章

    20

    瀏覽量

    8610

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

文章出處:【微信號:pzh_mcu,微信公眾號:痞子衡嵌入式】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    arm調試器有哪些應用范圍

    arm11 時開始使用jlink,這個調試器應用范圍廣,主流的IDE 都有做插件集成他的調試功能,使他本身命令做成GUI的方式,對初學者更加友好,一般會用的基本不用界面調試,都是命令好
    發表于 07-16 07:58

    如何使用JLink調試器和Keil MDK-ARM來下載Hex文件?

    如何使用JLink調試器和Keil MDK-ARM來下載Hex文件?有哪些操作步驟?
    發表于 07-26 06:03

    如何自制一個基于jlink的無線調試器

    如何自制一個基于jlink的無線調試器
    發表于 01-18 06:47

    jlink-v8調試器jlink接口與swd接口有什么不同呢

    mdk集成開發環境境中,jlink-v8調試器jlink接口與swd接口有什么不同呢?
    發表于 08-29 14:18

    如何使調試器JLink軟件一起工作

    正常工作。從一些在線帖子中,我看到 segger 已經改變了他們管理支持的設備和閃存加載算法的方式。segger 的網站提到要聯系芯片供應商以對 RT1052 + QSPI 進行編程。所以請讓我知道如何使調試器與最新的軟件一起
    發表于 02-28 08:04

    S32K344使用SEGGER Jlink調試器調試時程序運行不會暫停是怎么回事?

    SEGGER Jlink調試器可以對S32K344項目進行編程,但是在調試過程中,斷點錯誤地位于主程序的中間而不是開頭。在斷點之前加的斷點,程序運行到那里不會暫停
    發表于 03-30 07:27

    jlink-AXD仿真調試實驗手冊

    jlink-AXD仿真實驗調試手冊 1.實驗設備:TQ2440開發板一套,Jlink-V6,Jtag 板,ADS編譯,AXD調試器。2.
    發表于 03-11 09:06 ?79次下載

    基于CodeWarrior集成開發環境的調試器原理

    本文首先闡述了調試器設計的基本原理,調試器的類型,調試器的結構等基本概念。然后介紹了斷點設置,單步跟蹤,執行控制和符號表讀寫的原理;以及硬件和操作系統對跟蹤調試
    發表于 12-27 15:31 ?65次下載
    基于CodeWarrior集成開發環境的<b class='flag-5'>調試器</b>原理

    調試器模塊(可按鍵調試

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

    使用在PICkit? 3線調試器

    使用在PICkit? 3線調試器
    發表于 09-22 14:53 ?5次下載
    使用在PICkit? 3線<b class='flag-5'>調試器</b>

    Cepark Jlink調試總結

    Cepark Jlink調試總結
    發表于 10-27 16:12 ?9次下載
    Cepark <b class='flag-5'>Jlink</b><b class='flag-5'>調試</b>總結

    Microchip 調試器(MDB) 用戶指南

    Microchip 調試器(MDB) 用戶指南
    發表于 05-25 17:29 ?8次下載

    STM32F411Cx 401Cx最小系統 JLINK調試器開源

    電子發燒友網站提供《STM32F411Cx 401Cx最小系統 JLINK調試器開源.zip》資料免費下載
    發表于 08-09 09:26 ?2次下載
    STM32F411Cx 401Cx最小系統 <b class='flag-5'>JLINK</b><b class='flag-5'>調試器</b>開源

    串口/網絡數據調試器

    串口/網絡數據調試器
    發表于 05-09 14:59 ?1次下載

    調試器連接MCU不穩定怎么辦?

    有沒有小伙伴遇到使用GDlink或者Jlink調試GD32 MCU的時候出現不穩定的情況,剛要發現問題時調試器和MCU斷開連接了,這個時候可能抓狂的心都有了。今天就教給大家幾個提高調試器
    的頭像 發表于 02-21 09:44 ?687次閱讀
    <b class='flag-5'>調試器</b>連接MCU不穩定怎么辦?