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
    +关注

    关注

    135

    文章

    9499

    浏览量

    388728
  • 仿真
    +关注

    关注

    53

    文章

    4407

    浏览量

    137671
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【产品介绍】Modelsim:HDL语言仿真软件

    概述ModelSim是业界最优秀的HDL语言仿真软件,它能提供友好的仿真环境,是业界唯一的单内核支持VHDL和Verilog混合仿真仿真
    的头像 发表于 11-13 11:41 198次阅读
    【产品介绍】Modelsim:HDL语言<b class='flag-5'>仿真</b><b class='flag-5'>软件</b>

    详解ADC电路的静态仿真和动态仿真

    ADC电路主要存在静态仿真和动态仿真两类仿真,针对两种不同的仿真,我们存在不同的输入信号和不同的数据采样,因此静态仿真和动态
    的头像 发表于 06-05 10:19 1520次阅读
    详解ADC电路的静态<b class='flag-5'>仿真</b>和动态<b class='flag-5'>仿真</b>

    Multisim模拟电路仿真教程

    设计开发人员的青睐。Multisim用软件方法虚拟电子元器件及仪器仪表,将元器件和仪器集合为一体,是原理图设计、电路测试的虚拟仿真软件。 Multisim来源于加拿大图像交互技术
    发表于 05-09 17:58 4次下载

    《聊一聊ZXDoc》之CAN总线仿真、面板仿真

    。什么是仿真?CAN总线仿真是一种通过虚拟化技术模拟CAN(FD)通信环境的方法,用于在无物理硬件或脱离实际系统的情况下,对ECU、传感器、执行器等节点的通信行为
    的头像 发表于 05-09 11:30 1069次阅读
    《聊一聊ZXDoc》之CAN总线<b class='flag-5'>仿真</b>、面板<b class='flag-5'>仿真</b>

    电磁环境仿真与验证系统软件

    电磁环境仿真与验证系统软件
    的头像 发表于 04-29 16:59 824次阅读
    电磁环境<b class='flag-5'>仿真</b>与验证系统<b class='flag-5'>软件</b>

    大规模硬件仿真系统的编译挑战

    引言随着集成电路设计复杂度的不断提升,硬件仿真系统在现代芯片设计流程中扮演着越来越重要的角色。基于FPGA(现场可编程门阵列)的商用硬件仿真系统因其灵活性、全自动化、高性能和可重构性,
    的头像 发表于 03-31 16:11 1228次阅读
    大规模<b class='flag-5'>硬件</b><b class='flag-5'>仿真</b>系统的编译挑战

    技术分享 | AVM合成数据仿真验证方案

    AVM 合成数据仿真验证技术为自动驾驶环境感知发展带来助力,可借助仿真软件配置传感器、搭建环境、处理图像,生成 AVM 合成数据,有效加速算法验证。然而,如何利用
    的头像 发表于 03-19 09:40 3492次阅读
    <b class='flag-5'>技术</b>分享 | AVM合成数据<b class='flag-5'>仿真</b>验证方案

    新思科技推出基于Arm服务器原生运行的Virtualizer虚拟仿真技术

    新思科技近日宣布在基于Arm服务器上推出新思科技Virtualizer 原生运行虚拟仿真技术(Synopsys Virtualizer Native Execution on Arm
    的头像 发表于 03-17 17:45 989次阅读

    电力电子半实物仿真(HIL)原理及应用

    在电力电子及新能源领域,随着系统复杂度的提升,传统的纯软件仿真和实物测试已难以满足高效、低成本的研发需求。电力电子半实物仿真技术(HardwareintheLoop,HIL)应运而生,它通过将实际
    的头像 发表于 02-25 18:10 1750次阅读
    电力电子半实物<b class='flag-5'>仿真</b>(HIL)原理及应用

    CFD仿真与测试协同创新,构建“仿真 + 实测”闭环

    积鼎科技专注于多相流领域,凭借自主研发的多相流仿真软件以及高精度测试设备,成功构建了“仿真 + 实测” 的闭环解决方案,助力企业在从设计优化到生产验证的整个过程中实现突破,为行业提供国产自主的软
    的头像 发表于 02-20 11:04 934次阅读
    CFD<b class='flag-5'>仿真</b>与测试协同创新,构建“<b class='flag-5'>仿真</b> + 实测”闭环

    车联网HIL仿真测试解决方案

    经纬恒润结合硬件在环技术、通信信息、云平台、场景仿真、车载单元仿真技术,开发了针对车联网V2N测试&V2X应用场景测试的仿真系统,实
    的头像 发表于 12-24 14:24 978次阅读
    车联网HIL<b class='flag-5'>仿真</b>测试解决方案

    JTAG/MPSD仿真技术参考

    电子发烧友网站提供《JTAG/MPSD仿真技术参考.pdf》资料免费下载
    发表于 12-23 15:45 0次下载
    JTAG/MPSD<b class='flag-5'>仿真技术</b>参考

    智能驾驶HIL仿真测试解决方案

    经纬恒润推出的新一代自主研发的智能驾驶HIL仿真测试系统可提供:逼真的道路交通场景、高精度的车辆动力学模型和各智能驾驶传感器仿真/台架;实验管理、自动化测试和测试管理等软件;高性能实时仿真
    的头像 发表于 12-23 10:54 1633次阅读
    智能驾驶HIL<b class='flag-5'>仿真</b>测试解决方案

    单片机Debug与仿真区别

    单片机的开发是一个复杂的过程,涉及到硬件设计、软件开发和测试等多个环节。为了确保单片机能够按照预期工作,开发者需要使用Debug和仿真技术来检测和修正代码中的错误。 Debug(调试
    的头像 发表于 12-19 09:47 1403次阅读