ARM V8异常原因定位

1 异常发生后快速定位方法

ARM v8发生sync异常以后(如非法指令、data abort等),可以通过寄存器快速定位引起异常的原因,具体寄存器如下:

  • 如下为测试程序
    在系统MMU设置里,0x100地址不允许访问,下图程序152行故意访问0x100地址,引发异常。

执行152行以后,进入异常

  • 查找引发异常的程序地址 ELR_EL*

0xE8451BE8对应上面152行。

实际使用是,我们要根据异常地址找到有问题的程序,可以查看axf(elf)文件的反汇编,快速对应具体函数。 在DS-5中双击axf文件会自动解析该文件,或者查看map文件也可以。

  • 被访问的错误地址和具体原因 FAR_EL和ESR_EL

ESR寄存器反映了详细的错误类型,可查看ARM相关手册或在DS-5中双击寄存器显示信息。

原文地址:https://www.cnblogs.com/liuwanpeng/p/14550025.html