|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
1、调试系统的基本介绍
! |& d: S1 e6 X! g$ @6 S
, K8 L* ] O& {( m调试系统是一套为基于硬件调试模块,结合软件调试工具,为开发者提供解决软硬件bug的技术系统。软件调试部分包括调试工具、link及其固件。硬件调试部分包括调试模块(Debug Module)。; a# a3 C( Q% K o4 F
例如图1所示,在典型的mcu调试系统中:4 Q7 P, p( L$ e6 Z: |, q; b, w
调试工具(Debug Tools)是面向开发者调试的软件工具,一般运行在开发人员的主机、服务器等场景下。常见的有调试工具有GDB、IDE等,如T-HEAD的riscv工具链中的gdb,CDK,DebugServer等工具。开发者使用这类工具进行软件程序的调试、分析工作;
0 \8 N R; R, C由于调试主机无法直接与CPU上的调试单元连接,因此需要link作为中间转换工具,使得调试工具的操作能够真实地作用在CPU上,比如平头哥的CkLink,Segger的JLink等等;! ^ r( T- ^+ w0 u. w$ O9 ?) x9 c7 }
CPU上的调试模块(Debug Module)是支持大部分调试手段的基础,实现对CPU的控制和读写寄存器、读写内存等功能。, h( d; {! }3 O0 N8 X
8 ?$ X8 h, P+ _4 q2、玄铁CPU调试系统总览
5 ^9 y) o# P0 g( N j" d
: T; _$ V2 ^& V: E+ u
如图2.1所示,玄铁CPU调试系统主要由以下几部分组成:
( L( W7 E& Y; ~& V3 H B软件运行环境,指软件运行的实际环境,包括模拟器、普通硬件环境(Bare METAl)、基于linux内核的环境;
% a7 y- P4 {6 mDebug Monitor,主要指配合调试工具,对被调试程序进行调试控制的工具,包括DebugServer/OpenOCD/GDBServer等。对于实际开发板来说,往往还需要在线仿真调试工具(cable/link),如CkLink, JLink等;
# g s) U4 w6 m! V! T9 V. U调试/Profiling工具,是开发者经常使用的用于调试程序的工具,主要包括GDB、peRF、CPF、Trace、Flash Programmer等;
9 ]0 T r' E$ \/ W$ \2 e% o用户接口,是用户直接接触到的操作界面,主要是命令行工具(CMD Line)、剑池CDK、剑池CDS等。其中大部分调试/profiling工具大部分都支持命令行方式呈现。剑池CDK、剑池CDS相比命令行工具,有友好的界面,具有更好开发体验。, ?7 w- v( I- C: n) N j! |
1 w5 f# }+ U h+ ?$ ?( L! I
2.1 玄铁CPU的硬件调试框架
9 O( w% O" O5 t4 R* B在玄铁CPU的硬件设计上,调试功能集中在调试模块(Debug Module)中基本结构如图2.2所示。基于该架构,调试模块的各个功能可以覆盖各种IoT设备领域的CPU,包括低功耗、音频处理、视频处理、计算型等领域的CPU。. t/ t& t/ a+ T, o
; V! q" A# a% l% {# J t) P玄铁CPU中的调试模块,是基于《RISC-V Debug SPEC v0.13.2》实现的,实现的功能包括:复位及调试控制、寄存器访问、内存访问、断点等功能。
- P6 f5 U2 o+ W! R* c6 \
+ g4 [& t ?" Z0 h# K基本的调试功能介绍:
& L. o! y0 w- h- T; `% B. ?Break-Point功能:Break-Point功能俗称断点功能,即插入断点,使CPU运行到断点位置后停住。开发人员可在断点位置继续进行其他调试手段操作,如读写内存、读写寄存器等。
' W) J! z$ J& N: A" NWatch-Point功能:Watch-Point功能是一种对数据访问的调试手段。可以观测某个内存地址是否发生了数据读写行为。- U" `% L3 {( i8 R
寄存器访问:访问CPU的寄存器能力,包括通用寄存器,控制寄存器等。
1 {# X* @+ `' Z" I内存访问:访问总线上内存以及外设区的能力,可以读写内存上的数据,外设的控制/数据寄存器。
* g+ Z6 ]0 A N4 C% s调试控制:指的是单步执行指令、使CPU进入调试模式、全速运行等功能。
7 c& N) y( J! N |
|