博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ARM体系结构调试系统
阅读量:4955 次
发布时间:2019-06-12

本文共 1142 字,大约阅读时间需要 3 分钟。

预计会有几篇较大篇幅的文章大体描述下ARM体系结构调试系统方面的软硬件接口设计。

简述

经历过软件开发基本上都知道调试的重要性,能一次写好,并且没有BUG的软件毕竟少之又少。

 

ARM体系结构从ARMv4开始硬件支持各种调试特性,随着系统的复杂度提升,到现今的ARMv7,甚至ARMv8,ARM从硬件层面也提供了更多的调试方式。

 

本文从大方向上概述ARM调试系统的组成,包括其中的debug,trace,profiling等方面 ,又着重在调试系统的软硬件接口配合。

 

调试分类

 

从大方向上看,我们基本可以将调试总结为:

  • SD:self-hosted debug。自调试,比如直接在树莓派上,运行gdb调试应用程序。
  • ST:self-hosted trace。这个比较少见。
  • SP:self-hosted profiling。这个也比较少见,但是相对self-hosted trace 使用好用,调试上也更方便使用。
  • ED:external debug。 外部调试,SOC设计初期会更常用到,比如通过JTAG连接SOC,控制CPU调试。
  • ET:externl trace。一般由CoreSight支持,并与profiling配合使用。
  • EP:external profiling。比较常见的就是DS-5配套的profiling工具。

Self-hosted debug

自调试(self-hosted debug)在X86平台上很常见,比如大家用gdb调个PC程序,就是自调试。

ARMv8针对这块专门相对比较重视。

 

external debug

ARM毕竟以嵌入式平台为主,因此在芯片设计之初,或者firmware以及驱动开发等过程中,难免会接触到外部调试(external debug)。毕竟这时候,很可能基本的系统都还未稳定,更不可能做系统的自调试了。

常见的外部调试当然就是JTAG了,一般正版的JTAG调试器都价格不菲,当然淘宝上也有盗版的几十块钱的JLINK可以买来练练手

如果是学习ARM 的Cortex-M系列,则可以买STM之类的开发板,板子默认集成调试模块,连上一根USB线就可以用了。

profiling

profiling估计大多数人都接触的比较少,主要是性能调优阶段会有类似的需求。关心这阶段的,大多是开发应用或者平台中间件的居多。

对Cortex-A系列的CPU,有会有高性能和低消耗,以及可靠性的需求。

最常见的ARM的profiling工具大概就是DS-5中的工具吧,下图是profiling界面的截图。

DS-5 profiling工具的效果图示

转载于:https://www.cnblogs.com/rustydaar/p/7466802.html

你可能感兴趣的文章
leetcode 657. Judge Route Circle
查看>>
Redis+MongoDB 最佳实践 做到读写分离 -摘自网络
查看>>
Robocopy是微软Windows Server 2003资源工具包中众多多用途的实用程序之一(它是基于强大的拷贝程序...
查看>>
发布Asp.net core到nginx 使用nginx代理
查看>>
Hadoop Mapreduce中shuffle 详解
查看>>
Python 运维常用模块
查看>>
Golang(笔记) 顺序编程
查看>>
20170511 Python练习册0000 将头像右上角加上红色的数字
查看>>
基于Java SE集合的图书管理系统
查看>>
reset-damo
查看>>
vue简单路由(一)
查看>>
合并数组里面的数据增加重复数量标记
查看>>
PHP之cURL(爬虫)
查看>>
Linux一些基本命令
查看>>
[Angular2 Form] Angular 2 Template Driven Form Custom Validator
查看>>
[Backbone]7. Collection Views, Custom Events
查看>>
hadoop-05-mysql修改密码
查看>>
与最大公约数和最小公倍数相关的题目
查看>>
购物车简单系统实现
查看>>
C#使用Selenium实现QQ空间数据抓取 说说抓取
查看>>