armV8 对齐中止
Posted
技术标签:
【中文标题】armV8 对齐中止【英文标题】:armV8 alignment abort 【发布时间】:2016-05-30 22:05:07 【问题描述】:在 armV8 中运行 strh r1, [r2]
时,我收到 DFSR 为 0x801 的对齐中止。这是我所期望的,因为 r2
的值是 0x10074d33 并且不是半字对齐的。
但是当我清除 SCTLR.A(对齐检查位)时,我仍然收到对齐中止!我应该在其他地方更改一些其他位以禁用对齐检查吗?
【问题讨论】:
此时系统的状态是什么,你正在写入的地址的内存属性是什么? (我敢打赌 20 便士你已经关闭了 MMU...) 你是对的,问题是页表属性!但是 MMU 开着所以没有 20p ;) 【参考方案1】:如果内存目标被定义为强有序或设备,则不允许未对齐的传输。
【讨论】:
以上是关于armV8 对齐中止的主要内容,如果未能解决你的问题,请参考以下文章
ARMv8-A非对齐数据访问支持(Alignment support)