【ARM Coresight 系列文章 10.1 - ARM Coresight STM 介绍及使用】
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
文章目录
上篇文章ARM Coresight 系列文章 10 - ARM Coresight STM 介绍及使用
Guaranteed and invariant timing transactions
STM 支持两种类型的软件的数据一种是 guaranteed的另一种是 invariant 的 对于 guaranteed 类型的数据传输当STM 无法接收 AXI总线发过来的数据时会通过拉低 WREADY 来暂停 AXI 数据的发送。对于 guaranteed的数据传输建议对于关键数据才使用该类型因为该类型数据传输会影响系统性能。
对于 invariant 的数据传输当STM 无法接收数据时并不会暂停AXI总线数据的发送STM 会丢弃AXI发过来的数据所以无法保证 invariant 数据传输都能够通过STM传输出去。
每个 stimulus port 有连续的256bytes的空间这个256bytes 又分为两部分前后 128bytes 的空间向不同的地址空间写数据会产生不同的数据包。
偏移 | Short name | 描述 |
---|---|---|
0x78 | G_TRIG | 向该地址写会产生trigger 包也可以产生事件信号信号再通过cross trigger 传递出去 |
0x70 | G_TRIGTS | 带时间戳的trigger包 |
0x68 | G_FLAG | 一种标记也算是data |
0x60 | G_FLAGTS | 带时间戳的FLAG数据 |
0x20-0x5F | none | reserved |
0x18 | G_D | 数据 |
0x10 | G_DTS | 带时间戳的数据 |
0x08 | G_DM | 带 Mark 的数据 |
0x00 | G_DMTS | 带Mark 并带有时间戳的数据 |
D表示数据
G: guaranteed; 有保证的意思数据不会丢失。当STM中的buffer 满了的时候STM 会将 总线上的ready信号拉低这样的话AXI总线上的数据就会一直等到 ready 信号变高才会继续发送。
MMark, 输出的数据会带有标记比如一串数据中的某个字当做Mark。
高128bytes的地址空间从下面表格可以看出都带有标记 “I”(invariant timing), 表示STM 不一定会产生数据, 是因为 当STM buffer满了的时候此时STM 不会接收AXI发过来的数据但是没有把 wready 信号拉低所以AXI 会继续发送谁过来此时数据就会丢失。
偏移 | Short name | 描述 |
---|---|---|
0xF8 | I_TRIG | 向该地址写会产生trigger 包也可以产生事件信号信号再通过 cross trigger 传递出去 |
0xF0 | I_TRIGTS | 带时间戳的trigger包 |
0xE8 | I_FLAG | 一种标记没有data payload |
0xE0 | I_FLAGTS | 带时间戳的FLAG数据 |
0xA0-0xDF | none | reserved |
0x98 | I_D | 数据 |
0x90 | I_DTS | 带时间戳的数据 |
0x88 | I_DM | 带 Mark 的数据 |
0x80 | I_DMTS | 带Mark 并带有时间戳的数据 |
STM Features 2 Register 寄存器的 DSIZE
域的值为0x1
, 数据位宽为64bit上面 stimulus port 口的地址必须保证 bit[2:0]=0b000,。
Multiple STPv2 master support
STM 支持多 master, 对于 AXI 的 transactions, 如何确认时哪个 master 发起的呢主要是基于下面两点
- 是安全的数据访问还是非安全的数据访问
- AXI 写地址总线的高bits。
留个软件的 master ID 有 128个 0x00-0x7f, 0-63 ID 是留个 安全transaction的 64-127 是留给非安全 transaction 的。 Master ID bit[7:0] 是由下面几部分构成的
- bit[7] = 0;
- bit[6] = AWPROTS[1], 用于区分安全和非安全;
- bit[5:0] = AWADDRS[29:24] AXI 的 AWID 和 AWUSER组合 给到 STM AWADDRS[29:24]。
bit[23:0] 用于区分channel id 或者 stimulus port id。
需要注意的是 channels 开始地址是硬件固定的 memory maped 地址在 STM SPEC中时找不到的
每个 master 需要使用不同的 channel否者会出现 master id 一样的情况。
上篇文章ARM Coresight 系列文章 10 - ARM Coresight STM 介绍及使用
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |