|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
1、调试系统的基本介绍2 ]" U9 B% N" |+ @7 u( _2 n
' p" b5 e. {/ ]* _* ^+ D- a0 r& f
调试系统是一套为基于硬件调试模块,结合软件调试工具,为开发者提供解决软硬件bug的技术系统。软件调试部分包括调试工具、link及其固件。硬件调试部分包括调试模块(Debug Module)。$ J3 r8 ?, ?, u- s1 w4 F. c
例如图1所示,在典型的mcu调试系统中:# V+ O2 o1 x7 ?3 k
调试工具(Debug Tools)是面向开发者调试的软件工具,一般运行在开发人员的主机、服务器等场景下。常见的有调试工具有GDB、IDE等,如T-HEAD的riscv工具链中的gdb,CDK,DebugServer等工具。开发者使用这类工具进行软件程序的调试、分析工作;
k4 ~) l3 ?$ @& h由于调试主机无法直接与CPU上的调试单元连接,因此需要link作为中间转换工具,使得调试工具的操作能够真实地作用在CPU上,比如平头哥的CkLink,Segger的JLink等等;
7 q+ E( K1 n3 }& c, r7 x2 UCPU上的调试模块(Debug Module)是支持大部分调试手段的基础,实现对CPU的控制和读写寄存器、读写内存等功能。
+ l1 O1 u) O- h" q, D, n& h8 _/ B' Z/ @9 y4 x
2、玄铁CPU调试系统总览
% F' J7 Z1 @ A. {9 `( M
; ?. D0 `1 x! D, s S, l: Y! z- ~
如图2.1所示,玄铁CPU调试系统主要由以下几部分组成:
# ^& b6 {3 T! T& C+ F" U; Y1 k软件运行环境,指软件运行的实际环境,包括模拟器、普通硬件环境(Bare METAl)、基于linux内核的环境;, K0 ]& }# I9 x, V0 C
Debug Monitor,主要指配合调试工具,对被调试程序进行调试控制的工具,包括DebugServer/OpenOCD/GDBServer等。对于实际开发板来说,往往还需要在线仿真调试工具(cable/link),如CkLink, JLink等;) k$ M, x, V5 W* q3 |
调试/Profiling工具,是开发者经常使用的用于调试程序的工具,主要包括GDB、peRF、CPF、Trace、Flash Programmer等;
; ^& M0 T& g, `% ^9 {% l用户接口,是用户直接接触到的操作界面,主要是命令行工具(CMD Line)、剑池CDK、剑池CDS等。其中大部分调试/profiling工具大部分都支持命令行方式呈现。剑池CDK、剑池CDS相比命令行工具,有友好的界面,具有更好开发体验。
3 O1 w/ l' b4 a" b. z
+ p! I) {- A3 A; e, I" ?& a A1 a2.1 玄铁CPU的硬件调试框架; x5 e0 ?& ^& _* _
在玄铁CPU的硬件设计上,调试功能集中在调试模块(Debug Module)中基本结构如图2.2所示。基于该架构,调试模块的各个功能可以覆盖各种IoT设备领域的CPU,包括低功耗、音频处理、视频处理、计算型等领域的CPU。
3 L" x0 J; f- l; e& L: L
# v8 c9 \% {$ x- F0 E7 R8 O% I
玄铁CPU中的调试模块,是基于《RISC-V Debug SPEC v0.13.2》实现的,实现的功能包括:复位及调试控制、寄存器访问、内存访问、断点等功能。6 ?7 G( Y! Q5 C! i; U
* p- }$ O' s( Z: m; F基本的调试功能介绍:
! R/ o- R/ T/ {/ }6 f% MBreak-Point功能:Break-Point功能俗称断点功能,即插入断点,使CPU运行到断点位置后停住。开发人员可在断点位置继续进行其他调试手段操作,如读写内存、读写寄存器等。
+ n& |+ x8 V1 K* }Watch-Point功能:Watch-Point功能是一种对数据访问的调试手段。可以观测某个内存地址是否发生了数据读写行为。
4 x4 w6 x7 T) P }6 ]5 p0 c寄存器访问:访问CPU的寄存器能力,包括通用寄存器,控制寄存器等。$ G8 l& `. ]) [6 S
内存访问:访问总线上内存以及外设区的能力,可以读写内存上的数据,外设的控制/数据寄存器。
) L# }- u: |, p/ s/ d, l调试控制:指的是单步执行指令、使CPU进入调试模式、全速运行等功能。) z: h/ X+ i4 I' B) X% ?3 V ~
|
|