-
- Выровненные обращения (чтение или запись) по 1, 2 и 4 байта - атомарны. Только не забудьте volatile переменной поставить. Для более других операций на Cortex-M >= 3 есть LDREX/STREX. - LightElf(09.01.2025 13:54)
- а с какова перепугу 32-бит система станет тебе выделять четверть слова? Нет такого. И понятие атомарности неуместно к неупакованным в структуры хотелкам. критическая секция - прибамбас языка для компилятора, но физически выглядит так же - полноростно по 32 линиям шины данных. Не стесняйтесь... :) - bnb62(06.01.2025 00:30)
- А вот присвоение не готов подтвердить. Если архитектура имеет
функции записи 8бит без R-M-W, то будет атомарным.
Инкремент/декремент тоже нужно уточнить. - Nikolay_Po(05.01.2025 23:29)
- Спасибо, заинтересовался темой, вот что нашел - все операции
=< 4 байт атомарные. Чтение и запись. Но не инкремент-
декремент. Чел поднял доку на ARM архитектуру. Mty1(2 знак., 05.01.2025 23:43, ссылка, картинка)
- Бред, там отдельные операции есть LDREX / STREX, на них можно CAS, FAA и т.д. реализовать - Oman(06.01.2025 12:15)
- Спасибо, заинтересовался темой, вот что нашел - все операции
=< 4 байт атомарные. Чтение и запись. Но не инкремент-
декремент. Чел поднял доку на ARM архитектуру. Mty1(2 знак., 05.01.2025 23:43, ссылка, картинка)
- Просто чтение точно будет атомарным. Любое выровненное считывание
шириной до 32 бит будет атомарным. - Nikolay_Po(05.01.2025 23:21)
- Спасибо! - Mty1(05.01.2025 23:34)