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

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

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

ARM仿真調(diào)試技術(shù):軟件仿真和硬件仿真

如意 ? 來(lái)源:CSDN ? 作者:楊碩 ? 2020-06-20 09:51 ? 次閱讀

嵌入式系統(tǒng)的設(shè)計(jì)中,仿真應(yīng)用的范圍主要集中在對(duì)程序的仿真上。在ARM的開(kāi)發(fā)過(guò)程中,一種最簡(jiǎn)單和原始的開(kāi)發(fā)流程是:編寫(xiě)程序,然后燒寫(xiě)到芯片上驗(yàn)證功能,這種方法對(duì)于簡(jiǎn)單的小系統(tǒng)是可以對(duì)付的,但在大系統(tǒng)中使用這種方法則是完全不可能的。所以很多時(shí)候我們需要在不燒寫(xiě)代碼的情況下調(diào)試程序,這就是仿真調(diào)試技術(shù)。

現(xiàn)代調(diào)試技術(shù)可以分為軟件仿真調(diào)試和硬件仿真調(diào)試兩種:

一.軟件仿真(指令集仿真):

概念:

用數(shù)據(jù)結(jié)構(gòu)描述目標(biāo)機(jī)CPU中各個(gè)寄存器和其他資源(內(nèi)存等),通過(guò)軟件模擬,可以逐條指令解釋執(zhí)行目標(biāo)機(jī)可執(zhí)行映象中的程序。

應(yīng)用場(chǎng)合:

● 當(dāng)嵌入式軟件開(kāi)發(fā)在目標(biāo)硬件平臺(tái)不存在的情況下進(jìn)行,就要使用這種軟件來(lái)模擬目標(biāo)CPU,以驗(yàn)證代碼邏輯。

● 是學(xué)習(xí)嵌入式開(kāi)發(fā)有效地工具,可以讓學(xué)習(xí)者從底層具體硬件細(xì)節(jié)中解脫出來(lái),專(zhuān)注于軟件,尤其是與具體硬件無(wú)關(guān)的系統(tǒng)軟件(TCP/IP協(xié)議棧)。

幾個(gè)不錯(cuò)的硬件模擬平臺(tái):

● Skyeye:清華大學(xué)計(jì)算機(jī)系博士后陳渝發(fā)起,開(kāi)源項(xiàng)目,主要模擬ARM內(nèi)核CPU。

● ARMulator:ARM公司推出,ARM指令集模擬器(ADS,Realview MDK上就用這個(gè))。

● ZIX:一個(gè)快捷高效、功能強(qiáng)大、易于配置的嵌入式Linux開(kāi)發(fā)環(huán)境。

軟件仿真的缺點(diǎn):

無(wú)法完全仿真與硬件相關(guān)的部分,最終還要通過(guò)硬件仿真來(lái)完成最終的設(shè)計(jì)。

二.硬件仿真調(diào)試:

以前的芯片沒(méi)有JTAG調(diào)試邏輯,要向仿真它就必須要有專(zhuān)門(mén)的仿真器,這種仿真器成本較高,而且每種芯片都不一樣,現(xiàn)在這種仿真器已經(jīng)不存在了。

現(xiàn)在的芯片一般都內(nèi)置了JTAG調(diào)試邏輯,并不需要CPU仿真器,需要的只是一個(gè)JTAG協(xié)議轉(zhuǎn)接器(現(xiàn)在還稱(chēng)其為仿真器,其實(shí)叫做調(diào)試器比較合適)。所以下面主要介紹JTAG及其仿真技術(shù)。

JTAG簡(jiǎn)介

JTAG是Joint Test Action Group的簡(jiǎn)稱(chēng),該組織致力于統(tǒng)一芯片的測(cè)試標(biāo)準(zhǔn),它們最初向IEEE提出了IEEE1149.1標(biāo)準(zhǔn),后來(lái)經(jīng)過(guò)IEEE批準(zhǔn)并且標(biāo)準(zhǔn)化,所以IEEE1149.1標(biāo)準(zhǔn)又叫JTAG標(biāo)準(zhǔn),它是一套芯片測(cè)試接口和標(biāo)準(zhǔn),現(xiàn)在幾乎所有的CPU核里面都會(huì)實(shí)現(xiàn)JTAG邏輯單元。JTAG原本是用來(lái)測(cè)試芯片設(shè)計(jì)是否正確,其基本原理就是在芯片的各個(gè)管腳上放置鎖存器,然后串聯(lián)起來(lái)構(gòu)成移位寄存器,可以監(jiān)控芯片管腳的輸入和輸出。后來(lái)大家發(fā)現(xiàn)用JTAG在線調(diào)試芯片非常方便(其實(shí)就是利用JTAG控制CPU內(nèi)核),還不需要設(shè)計(jì)專(zhuān)門(mén)的仿真芯片,因此就出現(xiàn)了用JTAG調(diào)試風(fēng)行的局面。

邊界掃描技術(shù)(Boundary-Scan):

JTAG調(diào)試主要就是基于這種邊界掃描技術(shù)。

邊界掃描技術(shù)的基本思想是在靠近芯片的輸入輸出管腳上增加一個(gè)移位寄存器單元。因?yàn)檫@些移位寄存器單元都分布在芯片的邊界上,所以被稱(chēng)為邊界掃描寄存器 (Boundary-Scan Register Cell) 。當(dāng)芯片處于調(diào)試狀態(tài)的時(shí)候,這些邊界掃描寄存器可以將芯片和外圍的輸入輸出隔離開(kāi)來(lái)。通過(guò)這些邊界掃描寄存器單元,可以實(shí)現(xiàn)對(duì)芯片輸入輸出信號(hào)的觀察和控制。

JTAG的主要作用:

檢測(cè)芯片是否良好

■這是JTAG最初設(shè)計(jì)的目標(biāo)

● 鏡像文件的燒寫(xiě)功能

■可以燒寫(xiě)編譯出來(lái)的二進(jìn)制或者十六進(jìn)制可執(zhí)行文件到目標(biāo)板的Flahs芯片上

■當(dāng)開(kāi)發(fā)板為裸板(沒(méi)有固化任何程序)的時(shí)候,通常需要通過(guò)JTAG接口下載bootloader

■調(diào)試功能

■JTAG接口為宿主機(jī)和目標(biāo)系統(tǒng)之間的通信、控制提供了方便的途徑

ARM7TDMI調(diào)試架構(gòu):

一個(gè)調(diào)試系統(tǒng)通常包含三個(gè)部分:

● 調(diào)試主機(jī)

■是一臺(tái)運(yùn)行調(diào)試軟件(ADS,Keil等)的計(jì)算機(jī)

■可以發(fā)出一些高層的調(diào)試命令,設(shè)置斷點(diǎn),訪問(wèn)內(nèi)存等

● 協(xié)議轉(zhuǎn)換器

■將調(diào)試主機(jī)發(fā)出的高層調(diào)試命令轉(zhuǎn)換為底層的ARM JTAG調(diào)試命令

■調(diào)試目標(biāo)

■基于目標(biāo)芯片的開(kāi)發(fā)板

ARM7TDMI典型的調(diào)試架構(gòu)如下圖所示:

經(jīng)過(guò)協(xié)議轉(zhuǎn)換器進(jìn)行命令解釋?zhuān)鳈C(jī)上運(yùn)行的調(diào)試軟件就可以通過(guò)JTAG接口直接和目標(biāo)芯片對(duì)話了。

為了支持底層的調(diào)試,ARM7TDMI提供了硬件上的調(diào)試擴(kuò)展,包括:

● 停止程序的運(yùn)行

● 檢查和修改ARM7TDMI的內(nèi)核狀態(tài)

● 觀察和修改內(nèi)存

● 恢復(fù)程序的運(yùn)行

常見(jiàn)ARM調(diào)試工具:

● BDI1000/2000/3000

■非常好的調(diào)試工具,可以調(diào)試ARM、MIPS、PowerPC、Xscale等多種架構(gòu)處理器

■JTAG下載速度可以上兆,以太網(wǎng)接口

■性能優(yōu)越但是價(jià)格不菲,可以調(diào)試Linux內(nèi)核這種復(fù)雜的代碼

● U-Link

■U-Link是Keil公司做的用于ARM和某些增強(qiáng)型8051單片機(jī)調(diào)試的工具

■由于Keil公司做的時(shí)候沒(méi)有加密,導(dǎo)致現(xiàn)在盜版滿天飛

■U-link僅僅支持Keil,JTAG下載速度20K~30K

U-Link下載程序不是簡(jiǎn)單通過(guò)JTAG,而是先用JTAG下載一段固件程序到目標(biāo)板,然后再用這個(gè)固件程序和JTAG把用戶代碼寫(xiě)入Flash以提高速度

● J-Link

■J-Link是IAR公司為ARM芯片開(kāi)發(fā)的調(diào)試工具

■支持RDI協(xié)議的調(diào)試工具,如Keil、ADS、IAR等

■J-Link不支持ARM10以上的內(nèi)核

■JTAG下載速度400K~500K

● Multi-ICE

■ARM公司原創(chuàng)調(diào)試工具,支持全系列ARM芯片

■JTAG下載速度130K左右

● Wiggler電纜

■Wiggler是世界上最泛濫的一種調(diào)試工具

■結(jié)構(gòu)非常簡(jiǎn)單:一片74HC244 + 一個(gè)9013 + 幾個(gè)電阻

■性能一般,但是價(jià)格非常便宜

■后人又在Wiggler的硬件基礎(chǔ)上開(kāi)發(fā)了很多的調(diào)試工具,例如大名鼎鼎的H-Jtag

聲明:本文內(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)投訴
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    134

    文章

    9105

    瀏覽量

    367899
  • 仿真
    +關(guān)注

    關(guān)注

    50

    文章

    4097

    瀏覽量

    133699
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Simcenter Flomaster熱流體仿真軟件

    SimcenterFlomasterSimcenterFlomaster提供全面的仿真工具集來(lái)幫助您設(shè)計(jì)、調(diào)試和運(yùn)行熱流體系統(tǒng)。它可以連接PLM、CAD、仿真和工業(yè)物聯(lián)網(wǎng),助您快速實(shí)現(xiàn)數(shù)字化轉(zhuǎn)型
    的頭像 發(fā)表于 11-12 16:11 ?388次閱讀
    Simcenter Flomaster熱流體<b class='flag-5'>仿真</b><b class='flag-5'>軟件</b>

    keil軟件仿真如何仿真輸入

    多種微控制器和處理器,如ARM、Cortex-M、8051等。Keil軟件的主要功能包括: 代碼編輯:提供語(yǔ)法高亮、代碼折疊、自動(dòng)補(bǔ)全等功能。 編譯:將源代碼編譯成目標(biāo)代碼。 調(diào)試:在開(kāi)發(fā)過(guò)程中,可以設(shè)置斷點(diǎn)、單步執(zhí)行、查看變量
    的頭像 發(fā)表于 09-02 10:25 ?866次閱讀

    仿真器的使用方法有哪些

    仿真器是一種用于模擬和測(cè)試電子系統(tǒng)、軟件硬件的工具。它可以幫助工程師在實(shí)際硬件軟件部署之前,對(duì)設(shè)計(jì)進(jìn)行驗(yàn)證和
    的頭像 發(fā)表于 08-22 09:16 ?921次閱讀

    電路仿真和PCB設(shè)計(jì)軟件

    關(guān)鍵要點(diǎn)電路仿真軟件和PCB設(shè)計(jì)軟件在PCB設(shè)計(jì)過(guò)程中發(fā)揮著互補(bǔ)作用,為工程師提供設(shè)計(jì)、仿真、驗(yàn)證和優(yōu)化電子電路的工具。有效的仿真分析有助于
    的頭像 發(fā)表于 07-13 08:12 ?2043次閱讀
    電路<b class='flag-5'>仿真</b>和PCB設(shè)計(jì)<b class='flag-5'>軟件</b>

    電路仿真軟件如何使用 電路仿真軟件有哪些好用

    電路仿真軟件是一種通過(guò)計(jì)算機(jī)模擬電路行為的工具,可以幫助工程師和電子愛(ài)好者設(shè)計(jì)、分析和優(yōu)化電路。它可以幫助用戶驗(yàn)證電路設(shè)計(jì)、預(yù)測(cè)電路的性能,并幫助用戶更好地理解電路的行為。 在本文中,我們將介紹
    的頭像 發(fā)表于 05-04 10:51 ?2054次閱讀

    電路仿真軟件有哪些類(lèi)型 電路仿真接線app軟件哪個(gè)好

    軟件有Xilinx ISE、Altera Quartus等。這類(lèi)軟件提供了大量的數(shù)字邏輯器件模型庫(kù),用戶可以通過(guò)拖拽和連接不同的器件模型,輕松構(gòu)建和驗(yàn)證數(shù)字電路的功能和性能。在這類(lèi)軟件中,用戶可以對(duì)時(shí)序關(guān)系、邏輯功能等進(jìn)行
    的頭像 發(fā)表于 05-04 10:49 ?3303次閱讀

    電路仿真軟件如何使用 電路仿真軟件操作流程

    電路仿真軟件是一種用于設(shè)計(jì)、測(cè)試和驗(yàn)證電路的工具,它可以模擬實(shí)際電路的行為和性能。本文將詳細(xì)介紹電路仿真軟件的使用流程,包括軟件的安裝、電路
    的頭像 發(fā)表于 05-04 10:39 ?2693次閱讀

    電路仿真圖用什么軟件

    在電路設(shè)計(jì)和仿真過(guò)程中,選擇合適的軟件工具非常重要。以下是幾個(gè)常用的電路仿真軟件,并對(duì)其進(jìn)行了詳細(xì)介紹。 SPICE仿真
    的頭像 發(fā)表于 04-21 10:42 ?2481次閱讀

    數(shù)字電路仿真軟件單片機(jī)怎么用

    數(shù)字電路仿真軟件是一種用于模擬和測(cè)試數(shù)字電路設(shè)計(jì)的工具。其中,單片機(jī)仿真軟件是一種專(zhuān)門(mén)針對(duì)單片機(jī)進(jìn)行仿真的工具。這種
    的頭像 發(fā)表于 04-21 10:28 ?1091次閱讀

    什么是電路仿真 數(shù)字電路仿真軟件哪個(gè)好用

    電路仿真是指借助計(jì)算機(jī)軟件模擬電路的工作原理和性能的過(guò)程。通過(guò)電路仿真,可以在不實(shí)際進(jìn)行硬件搭建的情況下,預(yù)測(cè)和分析電路的功能、穩(wěn)定性、可靠性以及各種參數(shù)。 電路
    的頭像 發(fā)表于 04-21 10:26 ?3589次閱讀

    主流電路仿真軟件有哪些

    主流電路仿真軟件是電子工程師和電路設(shè)計(jì)師在實(shí)際設(shè)計(jì)中經(jīng)常使用的工具。它們通過(guò)數(shù)值模擬和仿真來(lái)驗(yàn)證電路性能,并幫助工程師優(yōu)化設(shè)計(jì)。以下是一些主要的電路仿真
    的頭像 發(fā)表于 04-21 10:23 ?2724次閱讀

    免費(fèi)的電路仿真軟件有哪些 國(guó)產(chǎn)電路仿真軟件哪個(gè)好

    免費(fèi)的電路仿真軟件有很多種,包括Multisim,Pspice,LTspice,Qucs,KiCad,Tina-TI等等。這些軟件提供了豐富的電路設(shè)計(jì)和仿真工具,可以幫助工程師們?cè)谠O(shè)計(jì)
    的頭像 發(fā)表于 04-21 09:22 ?8158次閱讀

    電路仿真軟件multisim使用教程

    Multisim是一款功能強(qiáng)大的電路仿真軟件,它為用戶提供了豐富的元器件庫(kù)和強(qiáng)大的仿真功能。
    的頭像 發(fā)表于 03-29 14:08 ?8609次閱讀

    fpga仿真軟件有哪些

    此外,還有一些其他的FPGA仿真軟件,如Gvim和ISE等,可以根據(jù)具體需求和開(kāi)發(fā)環(huán)境進(jìn)行選擇。需要注意的是,不同的FPGA仿真軟件可能具有不同的特點(diǎn)和優(yōu)勢(shì),開(kāi)發(fā)者需要根據(jù)自己的需求和
    的頭像 發(fā)表于 03-15 14:00 ?3992次閱讀

    如何使用 ModelSim 進(jìn)行設(shè)計(jì)仿真

    ModelSim為HDL仿真工具,我們可以利用該軟件來(lái)實(shí)現(xiàn)對(duì)所設(shè)計(jì)的VHDL或Verilog程 序進(jìn)行仿真,支持IEEE常見(jiàn)的各種硬件描述語(yǔ)言標(biāo)準(zhǔn)。可以進(jìn)行兩種語(yǔ)言的混合
    發(fā)表于 01-14 09:47 ?0次下載