В цикле проверяется значение элемента структуры dev_state.
Как видите, ИАР 7.40 загружает содержимое элемента в R0, потом сравнивает R0 с тройкой (это USBD_STATE_CONFIGURED),
а на следующем цикле прыгает НЕ НА ЗАГРУЗКУ R0 (LDRB.W R0, ...), а сразу на сравнение (CMP R0, #3)!!!
Удивляюсь, что у меня всё остальное вообще работает, с таким-то качеством компилёжки.
Конечно, если снизить оптимизацию или объявить элемент dev_state как volatile, то компилит правильно, но это же не решение! :-о :-о
Эскизы прикрепленных изображений