ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
19 августа
1532144 Топик полностью
Zikon (22.07.2025 20:04, просмотров: 63) ответил Бapбoc на Простите малограмотного. Есть в STM32G431 управляющий регистр 32 бита. Есть в нём битовое поле 8 бит. Менять это поле, не портя содержимое регистра, можно только через чтение-модификацию-запись? Или есть за пазухой у АРМА какие-нибудь фишки. Приданная мне программист сделала в два хода -- обнуляет поле через И, потом загружает через ИЛИ. Я только нонеча вечером глянул код и понял, откель беда.
В наборе инструкций Cortex-M3/M4 существует семейство инструкций LDREX/STREX, так что если адрес считывается инструкцией LDREX, следующая инструкция STREX может записать данные по этому адресу только в том случае, если известно, что адрес не был затронут. Обычно это означает, что инструкция STREX выполняется успешно, если с момента выполнения LDREX не возникало прерываний («исключений» в терминологии ARM), и завершается неудачей в противном случае.