ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
19 июля
660580 Топик полностью
SciFi (16.03.2016 15:38 - 15:49, просмотров: 134) ответил ASDFS на Вряд ли компилер сможет наоптимизировать массив. Потому не вижу смысла.
Кажись, сообразил. Нужно их делать volatile, чтобы компилятор не поменял местами запись в FIFO и запись в указатель: void uart_putbyte(int byte) { txfifo[txhead % sizeof txfifo] = byte; txhead++; } Если приращение указателя произойдёт раньше, чем новые данные попадут в массив, то возможна лажа. С приёмом аналогичная история. Почему всё это интересно. Я наивно полагал, что есть простое правило: если переменная изменяется в обработчике прерывания, то её нужно делать volatile, иначе можно и без volatile. Оказывается, всё не так просто.
ส็็็็็็็็็็็็็็็็็็็็็็็็็༼ ຈل͜ຈ༽ส้้้้้้้้้้้้้้้้้้้้้้้