在ARM Cortex-A上启用MMU的问题

布伦丹

我正在尝试在ARM Cortex-A9(在QEMU中)上启用MMU。我所有的代码和数据都在内存的第一个MB内,因此我认为单个L1“节”条目应足以设置一个覆盖我所需的所有内存的身份映射。这是我要执行的步骤:

0x16000具有值的地址处创建一个L1条目0x00000c02(有关L1条目格式的文档,请参阅《ARM体系结构参考手册》的B3.5节-仅以PDF形式提供,因此无法直接链接)。L1表中的所有其他条目均被清零。

将TTRB0设置为0x16000(我已检查TTBCR.N为0):

ldr r0, =masterTranslationTable
mcr p15, 0, r0, c2, c0, 0

禁用I和D缓存,使TLB无效,将域访问控制寄存器(DACR)设置为全1(这将禁用对所有域的权限检查):

  MRC p15, 0, r1, c1, c0, 0
  BIC r1, r1, #(0x1 << 12)     @ Disable Instruction cache
  BIC r1, r1, #(0x1 << 2)      @ Disable Data cache
  MCR p15, 0, r1, c1, c0, 0    
  mcr p15, 0, r1, c8, c7, 0    @ Invalidate TLB
  mov r0, #0xffffffff
  mcr p15, 0, r0, c3, c0, 0    @ Set DACR to all "manager" - no permissions checking

启用MMU:

  mrc p15, 0, r0, c1, c0, 0
  orr r0, r0, #1
  mcr p15, 0, r0, c1, c0, 0

但是在启用MMU之后,我立即中止了预取,调试器无法访问任何内存。谁能看到我想念的东西?

斯科特

转换表必须在16k边界上对齐。尝试使用0x14000或0x18000。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

检索ARM Cortex M0上异常的返回地址

来自分类Dev

ARM Cortex M3上的int64_t原子

来自分类Dev

Mali OpenCL SDK是否可以在ARM CPU(Cortex-a7)上执行OpenCL代码?

来自分类Dev

为什么循环展开会在ARM Cortex-a53上带来如此大的提速?

来自分类Dev

Mali OpenCL SDK是否可以在ARM CPU(Cortex-a7)上执行OpenCL代码?

来自分类Dev

您可以帮助我了解ARM Cortex-A9上的缓存行为吗?

来自分类Dev

va_arg在ARM Cortex-M4,uint64_t和GCC 4.9上

来自分类Dev

在arm cortex-M4上使用DSP指令(C语言扩展)

来自分类Dev

ARM Cortex-M3启动代码

来自分类Dev

Arm Cortex A9内存访问

来自分类Dev

ARM Cortex M3:原子写入

来自分类Dev

ARM Cortex-M 内存访问

来自分类Dev

对ARM Cortex A8上的汇编中NEON向量/寄存器的所有元素/通道(成对?)进行异或

来自分类Dev

对ARM Cortex A8上的汇编中NEON向量/寄存器的所有元素/通道(成对?)进行异或

来自分类Dev

ARM Cortex-R4F,缓存和MPU

来自分类Dev

想要用C ++编写Arm Cortex交叉汇编器

来自分类Dev

ARM Cortex M4硬故障-浮点

来自分类Dev

Ocaml是否适用于ARM cortex M4?

来自分类Dev

如何释放ARM Cortex M3堆栈

来自分类Dev

确定ARM Cortex-M系列上函数的返回地址

来自分类Dev

ARM Cortex M0的程序等效项是什么?

来自分类Dev

ARM Cortex A9第二执行单元

来自分类Dev

ARM Cortex A7:避免使用内存贴面吗?

来自分类Dev

什么是ARM Cortex CPU的内存保护策略?

来自分类Dev

ARM Cortex A53-硬件虚拟化功能

来自分类Dev

是否可以在带有 ARM Cortex-M7 处理器的嵌入式设备上编译和运行 dlib 库?

来自分类Dev

在QEMU上仿真Cortex A12

来自分类Dev

适用于ARM Cortex-m3的llsr和llsl(64位移位)

来自分类Dev

未对齐的访问会导致ARM Cortex-M4出错

Related 相关文章

  1. 1

    检索ARM Cortex M0上异常的返回地址

  2. 2

    ARM Cortex M3上的int64_t原子

  3. 3

    Mali OpenCL SDK是否可以在ARM CPU(Cortex-a7)上执行OpenCL代码?

  4. 4

    为什么循环展开会在ARM Cortex-a53上带来如此大的提速?

  5. 5

    Mali OpenCL SDK是否可以在ARM CPU(Cortex-a7)上执行OpenCL代码?

  6. 6

    您可以帮助我了解ARM Cortex-A9上的缓存行为吗?

  7. 7

    va_arg在ARM Cortex-M4,uint64_t和GCC 4.9上

  8. 8

    在arm cortex-M4上使用DSP指令(C语言扩展)

  9. 9

    ARM Cortex-M3启动代码

  10. 10

    Arm Cortex A9内存访问

  11. 11

    ARM Cortex M3:原子写入

  12. 12

    ARM Cortex-M 内存访问

  13. 13

    对ARM Cortex A8上的汇编中NEON向量/寄存器的所有元素/通道(成对?)进行异或

  14. 14

    对ARM Cortex A8上的汇编中NEON向量/寄存器的所有元素/通道(成对?)进行异或

  15. 15

    ARM Cortex-R4F,缓存和MPU

  16. 16

    想要用C ++编写Arm Cortex交叉汇编器

  17. 17

    ARM Cortex M4硬故障-浮点

  18. 18

    Ocaml是否适用于ARM cortex M4?

  19. 19

    如何释放ARM Cortex M3堆栈

  20. 20

    确定ARM Cortex-M系列上函数的返回地址

  21. 21

    ARM Cortex M0的程序等效项是什么?

  22. 22

    ARM Cortex A9第二执行单元

  23. 23

    ARM Cortex A7:避免使用内存贴面吗?

  24. 24

    什么是ARM Cortex CPU的内存保护策略?

  25. 25

    ARM Cortex A53-硬件虚拟化功能

  26. 26

    是否可以在带有 ARM Cortex-M7 处理器的嵌入式设备上编译和运行 dlib 库?

  27. 27

    在QEMU上仿真Cortex A12

  28. 28

    适用于ARM Cortex-m3的llsr和llsl(64位移位)

  29. 29

    未对齐的访问会导致ARM Cortex-M4出错

热门标签

归档