Trace32使用教程-访问类型(Access Class)
访问类型(Access Class)被 Trace32的PowerView用于指定访问内存、外设的寄存器、可寻址的core资源、协处理寄存器以及Trace32的虚拟内存等。
在Trace32中,寻址包括两部分:访问类型+地址,比如:
Data.Dump A:0x123456
其中 A为访问类型,0x123456为访问的地址,二者之间用冒号 :连接。
访问类型可以是:
- 程序内存类型(program memory class)
- 数据内存类型( data memory class)
程序内存类型Program Memory Classes
通常使用字母 P(Program)来表示程序内存类型(可省略),比如以下命令:
List P:0x4568
List 0x4568
P可以省略,上述两个命令都是在程序地址为 0x4568的地方,打开源代码窗口。
除了 P类型之外,还有 R, T和 V等程序内存类型,这些类型是处理器架构用来指定不同指令集的编码格式:
| R | 针对ARM架构,表示ARM指令集编码 |
|---|---|
| T | 针对ARM架构,表示THUMB指令集编码 |
| V | 针对POWER架构,表示VLE指令集编码 |
可用的程序内存类型取决于当前所使用的处理器架构,详细内容可以参考Processor Architecture Manual。
数据内存类型Data Memory Classes
通常使用字母 D(Data)来表示程序内存类型(可省略),比如以下命令:
Data.dump D:0x6770
Data.dump 0x6770
D可以省略,所以上述两个命令都是同一个操作。
此外,对于一些特殊场景,还可以使用其他的字母来表示内存类型,比如 X表示针对MMDSP架构,使用 X总线来访问数据内存。
在Trace32中总是以如下的窗口显示Data.dump的信息:

比如其中修饰内存地址的 SD就代表“Supervisor Data ”。
如果访问类型被忽略,Trace32将会使用默认的访问类型。比如直接对内存地址 0x40080000进行 Data.dump,则可以发现默认使用了 ZSD的访问类型进行修饰,关于 ZSD代表何种类型,将在下文中解释。
处理器访问类型Access Classes for Core Resources
以下是一些处理器资源常用的缓存访问类型:
| IC | Instruction Cache指令缓存 |
|---|---|
| DC | Data Cache数据缓存 |
| L2 | Level 2 Cache 二级缓存 |
| NC | No Cache (access with caching inhibited)限制缓存的访问 |
比如下面这些指令
Data.dump DC:0x6770 ; 显示地址0x6770处的16进制数据转存,DC表面数据从Data cache上获得的
Data.dump NC:0x6770 ;NC表示不经过缓存,数据是从物理内存physical memory上读取的
访问类型属性Access Class Attributes
| E | 运行时访问,优先采用非侵入性访问,如果不支持,就是侵入性访问。 |
|---|---|
| A | 物理地址的访问,绕过MMU(MMU可以将虚拟地址和物理地址进行转换) |
| S | Supervisor 内存,特权访问 |
| U | 用户内存,非特权访问 |
| Z | 安全访问(比如ARM的TrustZone) |
| N | 非安全访问 |
比如以下命令:
Data.dump A:0x29876
解释:dump物理地址为0x29876上的数据
Data.dump AD:0x29876
解释:D表示Data,代表数据内存,所以同上命令
Data.dump ADC:0x29876
解释:A同上,DC表示Data Cache,表示dump物理地址为0x29876上的数据,数据的来源为Data Cache
访问类型扩展
如果用户忽略指定访问类型,Trace32将根据经验进行填充,填充的规则基于:
- 当前CPU的上下文context(架构特有的)
- 使用的窗口类型(比如Data.dump是显示数据内存,List.Mix窗口是显示代码内存)
- 所加载应用的符号信息(比如代码和数据的结合)
- 使用不同的指令集的段segments
- 特殊的调试设置(比如SYStem.Option.*)
比如通过CPU访问,假设CPU处于非安全的supervisor模式,执行32bits代码。Trace32会根据当前处理器上下文自动将A扩展成 ANSD或者 AZSD,将Z扩展成ZSD。比如当前处理器处于secure模式下:

以下是Trace32自动进行的访问模式扩展:




本文详细介绍了Trace32工具中访问类型(AccessClass)的概念及其在程序内存和数据内存中的应用。访问类型包括ProgramMemoryClasses(如P, R, T, V)和DataMemoryClasses(如D, X),用于指定如何访问内存、外设寄存器等资源。此外,还提到了处理器访问类型的特定访问模式,如ICache, DCache和NCache,并解释了访问类型属性如E(运行时访问)、A(物理地址访问)等。最后,文章阐述了Trace32如何根据上下文自动扩展访问类型。
4万+

被折叠的 条评论
为什么被折叠?



