для начала следующий глюк, код формата ARM
макрос задержки, код был взят из примеров, с небольшими переделками.
Код
.....................
mov r0, #700
l200: subs r0, r0, #1
bne l200
mov r5, r0
...................
mov r0, #700
l200: subs r0, r0, #1
bne l200
mov r5, r0
...................
в конце процедуры происходит выход и затем вывод в UART содержимого r5 , в терминалке я вижу то же значение которое загрузил в r0,
если же subs заменить на add то получаю значение на 1 больше загруженного в r0.
Итого команда subs не выполняется!
Хотя в симуляторе IAR все ОК.
еще пример:
Код
ldr r1, =0x80060004
после данной команды в регистре оказывается число 0x00060004
если в примере заменить 8 на любое другое число, то все ОК.
В симуляторе опять же всегда все нормально и даже константа по адресу лежит правильная.
Вопрос, это я что-то забыл в ядре настроить, или это какая-то несовместимость IAR и данного проца, или же мне камень кривой попался ?
PS: гружусь по SPI с AT25F1024