Я работаю со следующим процессором: микроконтроллером Stellaris LM4F120H5QR. Этот процессор содержит MPU, и я хочу сделать это. Но многие регистры больше не доступны, когда они находятся внутри нерентифицируемого режима, и я не могу найти регистр, который указывает, что система находится внутри прерывания и читается из нерентифицируемого режима.ARM Cortex M4: тест из неискреннего режима, если внутри прерывания
Мне нужно это, потому что при вызове из прерывания может возникнуть другой код. Если я сделаю неправильную проверку из непривилегированного режима, система немедленно перейдет к ошибке доступа.
Как я могу проверить, вызвана ли функция из прерывания способом, который не будет создавать ошибку при вызове из непривилегированного режима?
Согласно этой странице, оба регистра могут иметь доступ только в привилегированном режиме. Или я неправильно понял? – Cheiron
Руководство ARM действительно указывает эти регистры как привилегированные, но чтение из CONTROL, по крайней мере, должно быть также доступно в непривилегированном режиме. В книге «Окончательное руководство к Cortex M3» есть образец, где этот код используется в контексте пользовательского потока. – mash5