LXR | KVM | PM | Time | Interrupt | Systems Performance | Bootup Optimization

Trace32下对ARM内存访问Access Classes总结

原内容来源于T32帮助文档debugger_arm.pdf的ARM Specific Implementations->Access Classes,这里记录方便查询。

首先介绍Access Classes都有哪些选项,然后介绍常见的Access Classes组合,最后介绍如何创建合法的Access Classes组合。

1. 单个Access Classes描述

2. 常见Access Classes组合

在MMU和Cache打开的情况下,默认访问是经过MMU和Cache的。访问的是虚拟内存。

A:访问不经过MMU,但是可能会经过Cache。访问的是物理内存。

NC:访问经过MMU,不经过Cache。

ANC:跳过MMU和Cache直接访问物理内存。

ZSR:访问的是安全区域的ARM32指令。

NUR:0044:00427080:进程号为0x44的非安全(N)用户空间(U)ARM32代码(R)。

NSR:0000:C04F44E4:内核空间非安全(N)特权模式(S)ARM32代码(R)。

在d.dump <Address>时,默认属性等同于当前属性,比如list.auto中为NUR:0044,则显示NUR:0044:<Address>内容。

3. 如何创建合法的Access Classes组合

下面根据发起访问的Master和目标分成几类:

  • 通过CPU
  • 通过CoreSight
  • 访问C15/C14/SystemRegister
  • Cache和虚拟内存访问

创建Access Classes组合的规则:

  • 图示中每一列仅可选一个Access Class
  • 仅可跳过有空框的列,否则必选一个Access Class
  • 不可改变列顺序

3.1 通过CPU的内存访问

ZSD:前面两个空可以不写,安全模式特权虚拟数据访问。

 3.2 通过CoreSight访问

EAXI:运行时通过AXI总线访问内存。

3.3 C15/C14/SystemRegister访问

 3.4 Cache和虚拟内存访问

posted on 2023-05-24 23:59  ArnoldLu  阅读(438)  评论(0编辑  收藏  举报

导航