ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
1434926 Топик полностью
LightElf (13.05.2024 20:46, просмотров: 86) ответил Nikolay_Po на Увы, так не заработает. Я прикидывал и не нашёл способа атомарно обновить, при помощи этой пары инструкций, что-либо больше 32 бит. Если у STM32F адрес не проверяется, то для обоих переменных достаточно одной обёртки. Но это будет противоречить документации, где явно указано, что нужно проверять сохранность эксклюзивности доступа именно по указанному адресу и именно указанной ширины. А это лишь один адрес с шириной данных до 32 бит.
Это не у STM32, это у Cortex-M3/4 вообще. 
The Cortex-M4 processor implements a local exclusive monitor. The local monitor within the processor has been constructed so that it does not hold any physical address, but instead treats any access as matching the address of the previous LDREX. This means that the implemented exclusives reservation granule is the entire memory address range.

https://developer.arm.com/documentation/100166/0001/Programmers-Model/Exclusive-monitor

Не надо делать мне как лучше, оставьте мне как хорошо