ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
9 сентября
1540444 Топик полностью
_ctac_ (07.09.2025 08:07, просмотров: 54) ответил AlexG на Cortex-M0 падает в HardFault на инструкции MSR PSP, R0. Что бы это значило?
Мой ИИ говорит следующее (примерно тоже, что и и у POV) 

Важно для Cortex-M0:

Cortex-M0 поддерживает только Thumb-1 инструкции. Команда MSR с PSP доступна, но только в привилегированном режиме (privileged mode). Если попытаться выполнить её в непривилегированном режиме — возникнет fault (ошибка).

Также, чтобы использовать PSP, нужно сначала переключиться на него с помощью:

MRS R1, CONTROL     ; читаем текущий CONTROL
ORR R1, R1, #2      ; устанавливаем бит 1 (SPSEL = 1 → PSP)
MSR CONTROL, R1     ; записываем обратно
ISB                 ; обязателен для применения изменений 

LDR R0, =0x20001000 ; загружаем адрес стека задачи в R0 MSR PSP, R0 ; устанавливаем PSP на этот адрес