Прошу присобачить к теме Dr.Alex-а.
Поскольку сам писал так же, решил проверить. В Кейле.
Оптимизация -o0
Код
;;;84 while (hUsbDeviceFS.dev_state != USBD_STATE_CONFIGURED) { }
000010 bf00 NOP
|L3.18|
000012 480a LDR r0,|L3.60|
000014 f89001fc LDRB r0,[r0,#0x1fc]; hUsbDeviceFS
000018 2803 CMP r0,#3
00001a d1fa BNE |L3.18|
Оптимизация -o3
Код
;;;84 while (hUsbDeviceFS.dev_state != USBD_STATE_CONFIGURED) { }
000010 4809 LDR r0,|L3.56|
000012 f89001fc LDRB r0,[r0,#0x1fc]
|L3.22|
000016 2803 CMP r0,#3
000018 d1fd BNE |L3.22|
Видим, что Кейл ведет себя так же.

А писатели Куба - лохи голимые. Надо было volatile задать.
Dr.Alex - спасибо. Еще один малый шаг к вершинам познания...