Это cortex-m4, поэтому вы получаете документ для cortex-m4 и в нем говорится, что он основан на архитектуре armv7-m, поэтому вы получаете справочное руководство по архитектуре для cortex-m4 и
Следующие инструкции приводят к установке в EPSR.T бита [0] значения, загруженного в P C: - BLX или BX. - ЛДР на П C. - POP или LDM, который включает в себя P C.
и так далее:
Бит EPSR.T поддерживает модель взаимодействия архитектуры ARM, однако поскольку ARMv7-M поддерживает только выполнение команд Thumb, для него всегда должно быть указано значение 1. Обновления P C, соответствующие правилам взаимодействия команд Thumb, должны соответствующим образом обновлять EPSR.T. Выполнение инструкций с EPSR.T, установленным в 0, приводит к недопустимому состоянию UsageFault, INVSTATE.
Чтобы быть справедливым, проще go вернуться к исходному кронштейну, который теперь называется архитектурным справочником armv5, где у вас был / у вас полноразмерный и большой палец, и это немного лучше объясняет, что когда эти инструкции используют это значение, они принимают lsbit и принимают решение о режиме, изменяют / остаются в изменении руки / остаются в большом пальце на основе бита [0] , P C НЕ сохраняет этот бит, он используется инструкцией и отправляется в бит T в PSR.
cortex-ms, являющиеся машинами только для большого пальца, должны оставаться в этом режиме, и, как указано, если вы попытаетесь переключиться на режим охраны, вы получите ошибку. (аналогично, если ваша векторная таблица не построена должным образом с набором lsbit, тогда вы не загрузитесь).
И, пожалуйста, подумайте, что это адрес как адрес или один адрес, а не один, потому что, если инструменты работают правильно, то если вы добавляете один, вы получаете недопустимый адрес и сбой / сбой, где, если вы чувствуете, что должны изменить бит, который вам не причинит вреда (если адрес не используется таким образом, то это еще одна ошибка).
Armv7-ar do c будет охватывать бит [0] topi c, а также то, какие инструкции могут переключать режимы, от armv4t, где он запускался, до armv7-ar, еще немало инструкций способны переключать режимы. и компоновщики, такие как gnu ld, добавят вам батут, если вы правильно построите код.
При работе с процессором на этом уровне вы всегда должны иметь документацию по процессору на экране или на столе, чтобы охватить подобные вопросы. И опять же, чтобы быть справедливым, документы, написанные только для большого пальца, выглядят так, как будто вы уже знаете, что работали с полноразмерными руками (от armv4t до armv7ar).