【ARM AMBA AXI 入门 21.1 -- AXI partial 访问和软件的按字节访问关系】
文章目录
- Overview
- 一、概念区分
- 二、关系解析:软件访问触发 partial access 的前提
- 软件如何触发 partial access?
- 三、举例:从软件到 AXI 信号的映射
- 示例 1:按字节写入
- 示例 2:不支持 partial 的系统中,字节写的后果
- 四、验证关系的方法
- 五、硬件不支持 partial access 时的软件应对方式
- 六、总结对比表
- 总结
Overview
软件中我们经常看到按字节访问(比如 *(volatile uint8_t*)addr = value;
),而硬件中我们讨论的是 AXI 总线是否支持 partial access(部分访问)。这两者紧密相关,但不是一回事。
下面将详细介绍软件的按字节访问如何映射到底层硬件上的 partial access 行为,并通过 AXI 信号传输层面的分析和代码举例,理解这两者的关系。
一、概念区分
概念 | 软件按字节访问 | 硬件 partial access(AXI) |
---|---|---|
归属层级 | 高层应用 / 编译器生成的访问 | SoC 总线协议实现(如 AXI) |
操作本质 | 使用 8-bit、16-bit、32-bit 类型指针访问 | 使用 WSTRB 等信号指定数据有效字节 |
是否等价 | 一般期望等价 | 依赖于 SoC |