linux alignment fault对齐造成设备挂死问题定位梳理
1,boot 的alignment fault问题
ESR_ELx 寄存器里保存着一些异常的诊断信息,比如异常产生的原因。在进入异常后,我们可以读取对应异常等级的ESR_ELx (ESR_EL1,ESR_EL2或者ESR_EL3表示不同的等级),通过解析各个字段的数值所表示的含义,来分析出当前异常产生的原因,我们接下来看一下这个字段的一些重要描述。
ESR 寄存器的主要字段
- EC (Exception Class): [31:26] 位
- 描述了异常的原因或类型。例如,数据中止、指令未定义等。
- IL (Instruction Length): 第 25 位
- 表示引起异常的指令长度(在 AArch64 状态下为 0 表示 32 位指令,1 表示 16 位指令;AArch32 总是 0)。
- ISS (Instruction Specific Syn