我遇到了一个事实,即Arm V7 ISA支持某些加载和存储指令的未对齐内存访问,而A中的SCTLR位控制尝试尝试未对齐访问时是否引发对齐错误。我想知道可以使用哪种指令编写或读取SCTLR。我发现MRS /MSR仅作用于CPSR

最佳答案

Cortex-A9 TRM 4.3.9:

MRC p15, 0,<Rd>, c1, c0, 0; Read SCTLR
MCR p15, 0,<Rd>, c1, c0, 0; Write SCTLR

补充说明:
  • 尝试从安全或非安全用户模式读取或写入SCTLR会导致 undefined 指令异常。
  • 当CP15SDISABLE为HIGH时,尝试以安全特权模式写入此寄存器,导致 undefined 指令异常。
  • 仅在非安全特权模式下尝试写入安全修改的位会被忽略。
  • 尝试读取安全修改位仅返回安全位值。
  • 尝试修改RO位的操作将被忽略。
  • 10-08 18:33