ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
21 апреля
1512912 Топик полностью
beefdeadbeef (19.04.2025 21:29, просмотров: 74) ответил Mty1 на Вопрос по атомарной записи - чтению в Stm32 f4. Использую uint8_t uint16_t для передачи флагов между задачами и передачи данных из ISR, не парясь, т.к. видел в каком то документе по ARM что 8bit 16bit и 32bit запись чтение в ARM атомарные. И тут Deepseek сообщает мне, что мол нельзя так делать, т.к. если uint16_t не выровнена по четной границе, запись может быть не атомарной. Правда или бред? И надо мол использовать #include <stdatomic.h>
Если у вас ситуация чтение-модификация-запись разделяемых разными задачами данных, то атомики нужны независимо от выравнивания -- либо защищайте их примитивами синхронизации. В частных случаях -- один писатель/один или несколько читателей -- достаточно выравнивания для таких типов данных.