Теперь я делаю низкоуровневый инструмент для RPi. И мне нужно получить значение Регистр безопасной конфигурации. Я написал следующую инструкцию mrc p15, 0, r0, c1, c1, 0
, чтобы получить это. Но ЦП переходит в режим неопределенных исключений, а значение CPSR равно 0x600001DB.
Инструкция чтения значения SCR - это первая инструкция, выполняемая ЦП.
Я читал ARM1176JZF-S TRM r0p7 несколько раз, но я не нашел никаких ограничений на использование инструкции чтения SCR, за исключением того, что ЦП находится в безопасном привилегированном режиме, но согласно TRM этот ЦП запускается из безопасного привилегированного режима. Если быть более конкретным, начальным режимом является Безопасный режим супервизора.
Я использую следующую команду для выполнения кода с QEMU qemu-system-arm -cpu arm1176 -M versatilepb -m 256 -nographic -kernel start.elf -s -S -monitor stdio
Я не могу понять, что я упустил из виду?