0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ARM仿真调试技术:软件仿真和硬件仿真

如意 来源:CSDN 作者:杨硕 2020-06-20 09:51 次阅读

嵌入式系统的设计中,仿真应用的范围主要集中在对程序的仿真上。在ARM的开发过程中,一种最简单和原始的开发流程是:编写程序,然后烧写到芯片上验证功能,这种方法对于简单的小系统是可以对付的,但在大系统中使用这种方法则是完全不可能的。所以很多时候我们需要在不烧写代码的情况下调试程序,这就是仿真调试技术。

现代调试技术可以分为软件仿真调试和硬件仿真调试两种:

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

概念:

用数据结构描述目标机CPU中各个寄存器和其他资源(内存等),通过软件模拟,可以逐条指令解释执行目标机可执行映象中的程序。

应用场合:

● 当嵌入式软件开发在目标硬件平台不存在的情况下进行,就要使用这种软件来模拟目标CPU,以验证代码逻辑。

● 是学习嵌入式开发有效地工具,可以让学习者从底层具体硬件细节中解脱出来,专注于软件,尤其是与具体硬件无关的系统软件(TCP/IP协议栈)。

几个不错的硬件模拟平台:

● Skyeye:清华大学计算机系博士后陈渝发起,开源项目,主要模拟ARM内核CPU。

● ARMulator:ARM公司推出,ARM指令集模拟器(ADS,Realview MDK上就用这个)。

● ZIX:一个快捷高效、功能强大、易于配置的嵌入式Linux开发环境。

软件仿真的缺点:

无法完全仿真与硬件相关的部分,最终还要通过硬件仿真来完成最终的设计。

二.硬件仿真调试:

以前的芯片没有JTAG调试逻辑,要向仿真它就必须要有专门的仿真器,这种仿真器成本较高,而且每种芯片都不一样,现在这种仿真器已经不存在了。

现在的芯片一般都内置了JTAG调试逻辑,并不需要CPU仿真器,需要的只是一个JTAG协议转接器(现在还称其为仿真器,其实叫做调试器比较合适)。所以下面主要介绍JTAG及其仿真技术。

JTAG简介

JTAG是Joint Test Action Group的简称,该组织致力于统一芯片的测试标准,它们最初向IEEE提出了IEEE1149.1标准,后来经过IEEE批准并且标准化,所以IEEE1149.1标准又叫JTAG标准,它是一套芯片测试接口和标准,现在几乎所有的CPU核里面都会实现JTAG逻辑单元。JTAG原本是用来测试芯片设计是否正确,其基本原理就是在芯片的各个管脚上放置锁存器,然后串联起来构成移位寄存器,可以监控芯片管脚的输入和输出。后来大家发现用JTAG在线调试芯片非常方便(其实就是利用JTAG控制CPU内核),还不需要设计专门的仿真芯片,因此就出现了用JTAG调试风行的局面。

边界扫描技术(Boundary-Scan):

JTAG调试主要就是基于这种边界扫描技术。

边界扫描技术的基本思想是在靠近芯片的输入输出管脚上增加一个移位寄存器单元。因为这些移位寄存器单元都分布在芯片的边界上,所以被称为边界扫描寄存器 (Boundary-Scan Register Cell) 。当芯片处于调试状态的时候,这些边界扫描寄存器可以将芯片和外围的输入输出隔离开来。通过这些边界扫描寄存器单元,可以实现对芯片输入输出信号的观察和控制。

JTAG的主要作用:

检测芯片是否良好

■这是JTAG最初设计的目标

● 镜像文件的烧写功能

■可以烧写编译出来的二进制或者十六进制可执行文件到目标板的Flahs芯片上

■当开发板为裸板(没有固化任何程序)的时候,通常需要通过JTAG接口下载bootloader

■调试功能

■JTAG接口为宿主机和目标系统之间的通信、控制提供了方便的途径

ARM7TDMI调试架构:

一个调试系统通常包含三个部分:

● 调试主机

■是一台运行调试软件(ADS,Keil等)的计算机

■可以发出一些高层的调试命令,设置断点,访问内存等

● 协议转换器

■将调试主机发出的高层调试命令转换为底层的ARM JTAG调试命令

■调试目标

■基于目标芯片的开发板

ARM7TDMI典型的调试架构如下图所示:

经过协议转换器进行命令解释,主机上运行的调试软件就可以通过JTAG接口直接和目标芯片对话了。

为了支持底层的调试,ARM7TDMI提供了硬件上的调试扩展,包括:

● 停止程序的运行

● 检查和修改ARM7TDMI的内核状态

● 观察和修改内存

● 恢复程序的运行

常见ARM调试工具:

● BDI1000/2000/3000

■非常好的调试工具,可以调试ARM、MIPS、PowerPC、Xscale等多种架构处理器

■JTAG下载速度可以上兆,以太网接口

■性能优越但是价格不菲,可以调试Linux内核这种复杂的代码

● U-Link

■U-Link是Keil公司做的用于ARM和某些增强型8051单片机调试的工具

■由于Keil公司做的时候没有加密,导致现在盗版满天飞

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

U-Link下载程序不是简单通过JTAG,而是先用JTAG下载一段固件程序到目标板,然后再用这个固件程序和JTAG把用户代码写入Flash以提高速度

● J-Link

■J-Link是IAR公司为ARM芯片开发的调试工具

■支持RDI协议的调试工具,如Keil、ADS、IAR等

■J-Link不支持ARM10以上的内核

■JTAG下载速度400K~500K

● Multi-ICE

■ARM公司原创调试工具,支持全系列ARM芯片

■JTAG下载速度130K左右

● Wiggler电缆

■Wiggler是世界上最泛滥的一种调试工具

■结构非常简单:一片74HC244 + 一个9013 + 几个电阻

■性能一般,但是价格非常便宜

■后人又在Wiggler的硬件基础上开发了很多的调试工具,例如大名鼎鼎的H-Jtag

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ARM
    ARM
    +关注

    关注

    134

    文章

    9097

    浏览量

    367625
  • 仿真
    +关注

    关注

    50

    文章

    4084

    浏览量

    133620
收藏 人收藏

    评论

    相关推荐

    Simcenter Flomaster热流体仿真软件

    SimcenterFlomasterSimcenterFlomaster提供全面的仿真工具集来帮助您设计、调试和运行热流体系统。它可以连接PLM、CAD、仿真和工业物联网,助您快速实现数字化转型
    的头像 发表于 11-12 16:11 349次阅读
    Simcenter Flomaster热流体<b class='flag-5'>仿真</b><b class='flag-5'>软件</b>

    keil软件仿真如何仿真输入

    多种微控制器和处理器,如ARM、Cortex-M、8051等。Keil软件的主要功能包括: 代码编辑:提供语法高亮、代码折叠、自动补全等功能。 编译:将源代码编译成目标代码。 调试:在开发过程中,可以设置断点、单步执行、查看变量
    的头像 发表于 09-02 10:25 812次阅读

    仿真器的使用方法有哪些

    仿真器是一种用于模拟和测试电子系统、软件硬件的工具。它可以帮助工程师在实际硬件软件部署之前,对设计进行验证和
    的头像 发表于 08-22 09:16 877次阅读

    电路仿真和PCB设计软件

    关键要点电路仿真软件和PCB设计软件在PCB设计过程中发挥着互补作用,为工程师提供设计、仿真、验证和优化电子电路的工具。有效的仿真分析有助于
    的头像 发表于 07-13 08:12 1966次阅读
    电路<b class='flag-5'>仿真</b>和PCB设计<b class='flag-5'>软件</b>

    电路仿真软件如何使用 电路仿真软件有哪些好用

    电路仿真软件是一种通过计算机模拟电路行为的工具,可以帮助工程师和电子爱好者设计、分析和优化电路。它可以帮助用户验证电路设计、预测电路的性能,并帮助用户更好地理解电路的行为。 在本文中,我们将介绍
    的头像 发表于 05-04 10:51 2006次阅读

    电路仿真软件有哪些类型 电路仿真接线app软件哪个好

    软件有Xilinx ISE、Altera Quartus等。这类软件提供了大量的数字逻辑器件模型库,用户可以通过拖拽和连接不同的器件模型,轻松构建和验证数字电路的功能和性能。在这类软件中,用户可以对时序关系、逻辑功能等进行
    的头像 发表于 05-04 10:49 3257次阅读

    电路仿真软件如何使用 电路仿真软件操作流程

    电路仿真软件是一种用于设计、测试和验证电路的工具,它可以模拟实际电路的行为和性能。本文将详细介绍电路仿真软件的使用流程,包括软件的安装、电路
    的头像 发表于 05-04 10:39 2626次阅读

    电路仿真图用什么软件

    在电路设计和仿真过程中,选择合适的软件工具非常重要。以下是几个常用的电路仿真软件,并对其进行了详细介绍。 SPICE仿真
    的头像 发表于 04-21 10:42 2439次阅读

    数字电路仿真软件单片机怎么用

    数字电路仿真软件是一种用于模拟和测试数字电路设计的工具。其中,单片机仿真软件是一种专门针对单片机进行仿真的工具。这种
    的头像 发表于 04-21 10:28 1072次阅读

    什么是电路仿真 数字电路仿真软件哪个好用

    电路仿真是指借助计算机软件模拟电路的工作原理和性能的过程。通过电路仿真,可以在不实际进行硬件搭建的情况下,预测和分析电路的功能、稳定性、可靠性以及各种参数。 电路
    的头像 发表于 04-21 10:26 3535次阅读

    主流电路仿真软件有哪些

    主流电路仿真软件是电子工程师和电路设计师在实际设计中经常使用的工具。它们通过数值模拟和仿真来验证电路性能,并帮助工程师优化设计。以下是一些主要的电路仿真
    的头像 发表于 04-21 10:23 2677次阅读

    免费的电路仿真软件有哪些 国产电路仿真软件哪个好

    免费的电路仿真软件有很多种,包括Multisim,Pspice,LTspice,Qucs,KiCad,Tina-TI等等。这些软件提供了丰富的电路设计和仿真工具,可以帮助工程师们在设计
    的头像 发表于 04-21 09:22 7963次阅读

    电路仿真软件multisim使用教程

    Multisim是一款功能强大的电路仿真软件,它为用户提供了丰富的元器件库和强大的仿真功能。
    的头像 发表于 03-29 14:08 8388次阅读

    fpga仿真软件有哪些

    此外,还有一些其他的FPGA仿真软件,如Gvim和ISE等,可以根据具体需求和开发环境进行选择。需要注意的是,不同的FPGA仿真软件可能具有不同的特点和优势,开发者需要根据自己的需求和
    的头像 发表于 03-15 14:00 3886次阅读

    如何使用 ModelSim 进行设计仿真

    ModelSim为HDL仿真工具,我们可以利用该软件来实现对所设计的VHDL或Verilog程 序进行仿真,支持IEEE常见的各种硬件描述语言标准。可以进行两种语言的混合
    发表于 01-14 09:47 0次下载