Цитата(esaulenka @ Mar 18 2016, 14:27)

Да это просто :-)
Длина команды thumb2 - 16 бит или 32. 32-битная константа напрямую в эту команду не влезает (нужно же место под код самой команды).
Можно положить константу рядом, и ссылаться на неё (что-то вроде LDR r0, [pc, #смещение-до константы]); компилятор так и делает.
Но руками проще загрузить в регистр за два раза, благо у кортексов команда MOVT сделана, похоже, специально для этого.
Да, нужно ассемблер под читать.
Скормил в RAM последовательность:
0x4F 0xF4 0x80 0x40 0xC4 0xF2 0x07 0x00 0x02 0x21 0x01 0x60 0x70 0x47
Все равно не читает.
Делаю по шагам:
1) Установка адреса для записи в RAM 0x02001000:
0x23 0x15 0x50 0x00 0x00 0x10 0x00 0x02
2) Команда записи данных в RAM:
0x21 0x50 0x1F 0x01
3) Запись данных в RAM 7 байт:
0x00 0x4F 0xF4 0x08 0x40 0xC4 0xF2 0x07
4) Запись данных в RAM 7 байт:
0x11 0x00 0x02 0x21 0x01 0x60 0x70 0x47
5) Задание адреса входа в программу (МК) в RAM 0x02001000:
0x23 0x70 0x50 0x01 0x00 0x10 0x00 0x02
6) Старт МК («Go»):
0x2F 0x51 0x1F 0x01 0x01 0x00 0x00 0x00
Ошибок не возвращает, но и в первой странице не то.
Правильно ли я интерпретировал последовательность микропрограммки?