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)

将两个按钮居中对齐一个右侧

为啥 GCC 会为 ARM Cortex-A9 产生非法未对齐访问

ARM 异步外部中止

flex多行多列两端对齐,列不满左对齐

form中label标签对齐,内容右对齐