- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当启用分页并发生异常时,是否会发生转换表遍历以访问地址 0x00000000 处的异常向量表?
最佳答案
When paging is enabled and an exception occurs does a translation table walk occur to access the exception vector table at address 0x00000000?
几乎所有的ARM CPU都有配置异常表地址的方法。所以在大多数系统中,异常向量表不在地址 0x00000000。但是,在发生异常时启用 MMU。 TLB(MMU/页表缓存)将包含向量表物理地址。
在某些 SOC 中,引导向量表可能位于 0x0,但这通常由引导代码重新配置。
- If paging is still enabled then how do user mode processes and the vector table both share address 0x00000000 - the TTBR (translation table base register) does not get updated on exception entry and the TTBR is not a banked register (we are not talking here about switching between secure and non-secure worlds).
如果你想要地址为 0x00000000 的向量表,那么除非你禁止它,否则用户空间将看到它。禁止访问 0x0 可能是防止使用 NULL 指针的理想设计。许多操作系统没有从 0x0 开始运行的用户空间,而是像 0x8000 这样的地址。
基于参数的用户空间故障非常有用,因为您可以在开发进程时捕获 NULL 指针访问。我建议始终将其保留,但有些人允许对生产代码进行 NULL 访问。
- If no then we must enter exceptions using physical addressing in which case is paging now disabled?
没有启用分页,因为缓存可能也已打开。如果一些访问是物理的而另一些是虚拟的,CPU 的加载/存储单元会更复杂;特别是当缓存由传统 ARM CPU 中的虚拟地址填充时。
关于arm - ARM在进入向量表时是使用物理地址还是虚拟地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53100104/
设备地址、物理地址和虚拟地址有什么区别? 实际上我正在尝试在驱动程序中使用 mmap,我坚持这个概念。 最佳答案 documentation说: The kernel normally uses vi
简而言之,根据我对内存管理的理解,处理器会产生虚拟地址。这些地址由 MMU 使用每个进程的地址表转换为相应的物理地址(在需要时,中间有 TLB 和页面错误)。 我的问题是处理器是否总是产生虚拟地址?在
如何存储一个人的邮寄地址?假设两个不同的用户输入的信息不同,那么如果一个用户说 123 Main Street, City, State-ABV,而另一个用户刚输入 City, State ABV。
我知道的唯一方法是在 nic 的注册表中添加“NetworkAddress”键/值对。通过这种方法对我来说太难实现了。还有其他方法吗? 我使用 Windows 窗体构建了一个示例应用程序,但 setM
我想将物理内存写入文件。内存本身不会再被触及,因此我想使用 O_DIRECT 来获得最佳的写入性能。 我的第一个想法是打开 /dev/mem 并映射内存并将所有内容写入一个文件,该文件使用 O_DIR
我是一名优秀的程序员,十分优秀!