在调试器中访问MMU和MPU寄存器的方法

如果您尝试通过Nios II调试器读取或写入MMU或MPU寄存器,则可能会发现错误。

解决/修复方法

要读取MPU区域,请执行以下步骤:

  1. MPUBASE寄存器中设置区域INDEX
  2. 退出并重新进入调试模式,即单步执行。
  3. MPUACC寄存器中的RD位置1。
  4. 退出并重新进入调试模式,即单步执行。
  5. 请回读MPUBASE以获取相关信息。
  6. 请回读MPUACC以获取相关信息。

对于具有MMU或MPU的系统,此Workaround允许您读取和写入寄存器的当前值。但是,您不能使用它来控制MPU区域或MMU TLB条目。

当处理器进入调试模式时,调试内核将Nios II处理器的寄存器值复制到其内部存储器。只有当处理器离开调试模式时,调试内核才会将寄存器值写回处理器。因此,如果尝试设置具有多个连续值的MPU区域,则在离开调试模式时,只有最后一个值将提交给处理器。

编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-08-04 18:49:42 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它