转换表走行时同步外部中止 [英] Synchronous external abort on translation table walk

查看:22
本文介绍了转换表走行时同步外部中止的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有人能解释一下这个中止的原因是什么.我在手册中找不到解释.

基本上我在 IFSC 代码中收到此错误 - 转换表遍历时同步外部中止.

IFSCHSR 寄存器中的位,它与使用虚拟化扩展的 ARMv7A 一起使用.

解决方案

IFSC 基本上是 IFSR 的虚拟化版本.

<块引用>

IFSC 代码 - 转换表遍历时同步外部中止.

这意味着 CPU 难以访问页表.所以你的代码可能已经跳转到某个未映射的地址.第一级 MMU 条目可能包含一个无效条目,或者它包含一个 2nd 级页表地址,该地址在访问时会出现总线错误.基本上,这意味着在执行错误指令时页表中的某些内容没有很好地映射.您需要检查错误代码,然后手动遍历页表以找到错误的实际来源.

如果您最近更改了表基,某些代码可能会从 TLB 缓存中执行,然后在第一次实际遍历时,就会发生这样的错误.>

您可能需要提供有关阅读 IFSC 的上下文的更多信息以获得更多帮助.

Can someone explain what would be the reason of this abort. I could not find an explanation in the manual.

Basically I am getting this error in the IFSC code - Synchronous external abort on translation table walk.

The IFSC are bits in the HSR register which is used with an ARMv7A using the virtualization extensions.

解决方案

The IFSC is basically a virtualization version of the IFSR.

IFSC code - Synchronous external abort on translation table walk.

This means that the CPU had difficulty accessing the page tables. So your code may have jumped to some unmapped address. The first level MMU entry may contain an invalid entry or it contains a 2nd level page table address that gives a bus error when accessed. Basically, it means that something in the page tables did not map well when your faulting instruction executed. You need to inspect the faulting code and then manually walk your page tables to find the actual source of the errors.

If you recently change the table base, some code may execute from the TLB cache and then on the first actual walk, a fault like this will occur.

You probably need to give more information on the context of where the IFSC is read for more help.

这篇关于转换表走行时同步外部中止的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆