Я тоже никогда не делал.
Пришлось научиться :-)
Берём gcc.
Пишем:
Код
void remap_flash ()
{
asm volatile(
"mov r0, #(0x40074000 & 0xFFFF) \r\n"
"movt r0, #(0x40074000 >> 16) \r\n"
"movs r1, #2 \r\n"
"str r1, [r0] \r\n"
);
}
Вызываем из main().
Смотрим листинг:
Код
080103d8 <remap_flash()>:
_Z11remap_flashv():
... main.cpp:25
asm volatile(
"mov r0, #(0x40074000 & 0xFFFF) \r\n"
"movt r0, #(0x40074000 >> 16) \r\n"
"movs r1, #2 \r\n"
"str r1, [r0] \r\n"
);
80103d8: f44f 4080 mov.w r0, #16384; 0x4000
80103dc: f2c4 0007 movt r0, #16391; 0x4007
80103e0: 2102 movs r1, #2
80103e2: 6001 str r1, [r0, #0]
80103e4: 4770 bx lr
80103e6: bf00 nop