У меня есть маршрутизация службы прерываний на AVR32. Мне нужно прочитать из регистра состояния прерывания, чтобы отменить прерывание. Однако я не использую результат чтения. Я бы предпочел не использовать инструкцию asm, но я обеспокоен тем, что gcc оптимизирует чтение в фиктивную переменную. Каков правильный путь?
В настоящее время у меня есть:
uint32_t tmp = *(volatile uint32_t *)INTERRUPT_STATUS_REG_ADDRESS;
Должен ли tmp также быть изменчивым? Я беспокоюсь, что gcc просто пропустит чтение, если tmp не используется.
uint32_t temp = AVR32_PWM.isr2;
- person Robotbugs   schedule 22.10.2014