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

Ох, как-то замороченно у них получилось...
Оставили б альтернативные адреса (например, флеш живёт по адресу 0x0800 0000, по спец-команде дополнительно мапится на 0), и всем было б хорошо...
Писать/читать регистры периферии можно командами "write to ram" и "read memory".
RAM этого МК занимает адресное пространство от 0х02000000 до 0х02009000, а SYSMEMREMAP расположен в 0x40074000. "write to ram" не сработает.
Подглядел в дизассемблере компилятора:
Код
//LPC_SYSCON->SYSMEMREMAP = 0x2; //change memory map 0x2
00001d5e: ldr r3, [pc, #148] ; (0x1df4 <main+172>)
00001d60: movs r2, #2
00001d62: str r2, [r3, #0]
Наверное, можно применить следующую последовательность команд:
Код
LDR R0, =0x40074000; Прочитать в R0 значение регистра SYSMEMREMAP, 0x40074000 адрес
MOV R1, #2; Загрузить в R1 значение 0x2 которое нужно записать в регистр SYSMEMREMAP
STR R1, [R0]; Записать значение из R1 в регистр по адресу из R0
BX LR; Возрат - переход по адресу, записанному в регистре LR (R14)
Как считаете?
Еще остается вопрос как из ассемблера перевести в последовательность цифр.