Код: Выделить всё
while (flag){};Код: Выделить всё
08004242: ldrb r3, [r4, #0]
08004244: cmp r3, r5
08004246: bne.n 0x800424a
08004248: b.n 0x8004248То есть получается, если flag = 0 и мы заходим в цикл ожидания, процессор сразу из него выходит, а если зайти в цикл, когда flag отличается от нуля, мы попадем в вечный цикл. Такая история появляется только в одной большой функции, где нужно после получения команды с юсарт подождать, пока не завершится какое-то действие. в программе у меня много где такой цикл используется, но никогда не было проблем.
Объявление переменной:
Код: Выделить всё
volatile u8 flag = 0;Среда CooCox 1.7.6, gcc 4.8 2014q3


