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

    文章

    9588

    浏览量

    393679
  • 仿真
    +关注

    关注

    55

    文章

    4535

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Renesas E1/E20 仿真器使用指南:从基础到实战

    组成,分别聚焦硬件调试两方面。《E1/E20 仿真器用户手册》详细介绍了硬件规格,包括仿真器组件、硬件
    的头像 发表于 03-02 15:10 370次阅读

    Renesas E1/E20 仿真器:设计与调试的全方位指南

    Renesas E1/E20 仿真器:设计与调试的全方位指南 在电子设计领域,仿真器是调试和验证微控制器(MCU)程序不可或缺的工具。Renesas 的 E1/E20
    的头像 发表于 02-28 15:45 319次阅读

    瑞萨E1/E20仿真器:设计、调试与使用全解析

    瑞萨E1/E20仿真器:设计、调试与使用全解析 在嵌入式系统开发中,仿真器是不可或缺的工具,它能帮助工程师高效地进行硬件调试和程序开发。瑞萨
    的头像 发表于 02-11 17:05 865次阅读

    Renesas E1/E20 仿真器:设计与调试全解析

    Renesas E1/E20 仿真器:设计与调试全解析 在嵌入式系统开发的广阔领域中,仿真器扮演着至关重要的角色,它是工程师们调试和优化代码的得力助手。Renesas E1/E20
    的头像 发表于 02-09 10:30 762次阅读

    自动驾驶仿真软件推荐:康谋aiSim——ISO 26262 ASIL-D 认证的高保真选择

    自动驾驶技术的快速发展离不开高效可靠的仿真测试工具。面对市面上众多仿真软件,用户常问 “自动驾驶仿真软件
    的头像 发表于 01-22 16:49 563次阅读

    如何使用Modelsim仿真I2C控制器

    ModelSim是Model Technology(Mentor Graphics的子公司)的HDL硬件描述语言的仿真软件。该软件可以用来实现对设计的VHDL、Verilog HDL
    的头像 发表于 01-10 14:14 5619次阅读
    如何使用Modelsim<b class='flag-5'>仿真</b>I2C控制器

    边缘计算必备仿真软件盘点:从仿真到落地,哪些工具值得你上手?

    过去几年,随着工业互联网、智慧城市、视频边缘分析、储能 EMS 等场景快速铺开, “先仿真、再部署”  已经成为边缘计算开发的必备流程。 但问题来了——工具太多,到底哪些软件值得工程师真正投入
    的头像 发表于 12-25 16:46 663次阅读

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

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

    KiCad电路仿真简易教程

    “  KiCad作为一款功能强大的开源EDA软件,不仅能进行原理图设计和PCB布局,还集成了强大的电路仿真功能。通过其内置的  ngspice  仿真引擎,工程师可以在设计早期验证电路的功能和性能
    的头像 发表于 09-09 11:19 1.4w次阅读
    KiCad电路<b class='flag-5'>仿真</b>简易教程

    利用EasyGo DeskSim创建实时仿真项目教程

    EasyGo DeskSim是一款配置型的实时仿真软件,它允许用户将 Simulink 算法程序快速部署到 EasyGo 实时仿真机上。实时仿真机支持选配不同的 FPGA 芯片和 IO
    的头像 发表于 06-19 09:15 1435次阅读
    利用EasyGo DeskSim创建实时<b class='flag-5'>仿真</b>项目教程

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

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

    Multisim模拟电路仿真教程

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

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

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

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

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