Чтение значения через защиту от прерывания - PullRequest
0 голосов
/ 08 мая 2019

Я знаком с состоянием гонки и известным примером counter ++. Мой вопрос не о защите от чтения и записи, а только о защите от чтения. Возможно ли прочитать искаженное значение через прерывание? если другое прерывание / основной код был только в процессе изменения его значения? Нужно ли защищать мои показания, скажем, от летучих компонентов? Я использую C и ARM микроконтроллер.

Кроме того, если только одна задача выполняет манипулирование чтением-записью для некоторой переменной, а все другие задачи только читают ее, нужно ли защищать ее?

1 Ответ

0 голосов
/ 20 мая 2019

Вот мой подход:

do
{
   Read_Flag = 0;
   //Read operation
} while (Read_Flag);

Read_Flag устанавливается в ISR, где значение считываемой переменной изменяется.

...