Пример:
MOV R0, #2 CMP R0, #2 IT NE MOVNE R0, #1
Последняя инструкция не должна выполняться, т.е. в R0 должно остаться 2, но там 1! В официальных errata-х такого бага нет. Симулятор от IAR этот пример обрабатывает правильно. А на самом чипе, через J-Link - не работает (игнорирует IT команду и выполняет MOVNE R0, #1). Другие варианты условий, например IT EQ, работают нормально. Еще пробовал STM32F100R6 вместо RB - тот же баг.
Почему этот баг до сих пор никто не заметил, ведь IT NE - не самая редко используемая команда?
|