ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
7 июля
192422
Vladimir Ljaschko (30.04.2010 12:13, просмотров: 26489)
А расскажите плз про volatile, не понимаю :( 1) Есть простенький сервис в прерывании для усреднения периода импульсов. Текущая длительность импульса добавляется в сумму, количество импульсов инкрементируется. Обе переменные изменяются в прерывании, обрабатываются снаружи, должны быть volatile, ага? 2) Соответственно снаружи в основном цикле рассчитывается средний период = volatile sum / volatile qty, ну и сумма и счетчик потом обнуляются. ИАР предупреждает, MISRA блокирует: Error[Pm043]: the order of volatile accesses is undefined in this statement - the value of an expression shall be the same under any order of evaluation that the standard permits (MISRA C 2004 rule 12.2) Я всегда забивал на это, но сегодня решил спросить, может я что-то не так делаю?