ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
19 июля
660785 Топик полностью
fk0, легенда (17.03.2016 12:21 - 12:32, просмотров: 101) ответил SciFi на Кажись, сообразил. Нужно их делать volatile, чтобы компилятор не поменял местами запись в FIFO и запись в указатель:
Зависит от... В общем случае volatile не является memory barrier'ом, ровно как и наоборот, явный memory barrier (__sync_syncrhronize() в gcc) может ничего никуда не записать, если без volatile. Вот страшненькая история по ссылкам. Могу добавить, http://caxapa.ru/632770.html
что сам недавно нарывался на MIPS на похожее: volatile ему (gcc 4.8) пофигу, переставляет операции присвоения как попало (перекидывает из середины на конец функции -- там регистров свободных больше).
[ZX]