ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
22 июля
1107470 Топик полностью
misyachniy (08.06.2021 13:43, просмотров: 263) ответил rezident на Если у вас есть своя точка зрения на это явление, то зачем спрашиваете? Попробуйте договориться напрямую с компилятором, без посредников-толкователей :-P
RTFM 

И так в начале плохие новости, даже для однопоточного приложения DMA попадает под санкции volatile.

It is essential to make the following types of objects volatile-qualified in ... An object that is shared between multiple concurrent threads of execution. This includes data that is shared between processors or data written by DMA.


Там же есть описание для чего volatile.

The volatile type qualifier is used to inform the compiler that it may not make any assumptions about a variable or memory location (or a series of them), and that such variables must be read from or written to as specified and in the same order as in the source code.

Перед чтением по указателю, в программе стоит проверка флага и смена значения указателя. Я так понимаю, компилятор не может угадать значение флага в момент выполнения и будет читать переменные по указателю обязательно.