12.02.2020 11:41, Jiada Wang пишет: > From: Nick Dyer <nick.dyer@xxxxxxxxxxx> > > The code is much clearer if we switch on the actual state the bootloader > is in, rather than the state we want it to be in, and allows the removal > of a goto retry tangle. ... > case MXT_WAITING_FRAME_DATA: > - case MXT_APP_CRC_FAIL: > - val &= ~MXT_BOOT_STATUS_MASK; > + if ((f->previous != MXT_WAITING_BOOTLOAD_CMD) > + && (f->previous != MXT_FRAME_CRC_PASS) > + && (f->previous != MXT_FRAME_CRC_FAIL)) This will cleaner to write as follows: if (f->previous != MXT_WAITING_BOOTLOAD_CMD && f->previous != MXT_FRAME_CRC_PASS && f->previous != MXT_FRAME_CRC_FAIL)