ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
24 ноября
45906 Топик полностью
VAI (07.12.2005 07:11, просмотров: 1) ответил Velund на Warning при компиляции обработчика прерываний (иар) - гуру, подскажите, с чего бы...
Ответ: Kurt кому-то отвечал про этот варнинг, я чуть переиначу его, для соответствия Компилятор тебя честно предупреждает, о неопределенном поведении этой конструкции. Волатильные значения UART.TxBuffer и UART.TxLast невозможно получить одновременно в функцию. Т.е. в момент считывания одной переменной, значение другой уже считанной может измениться: UART описано как static volatile, происходит 2 обращения к UART - 1. UART.TxLast, 2. UART.TxBuffer[]. Если в Вашем случае это не критично, если варнинг раздражает, его можно задавить (в опциях проекта или в командной строке..) или введя временную переменную:
a = UART.TxLast;
UART.TxBuffer[a] = Data;