Мне нужно разместить свою программу по адресу в памяти 0x20000000. В настройках проекта в Keil я открыл вкладку «Цель» и установил следующие настройки (скриншот здесь -> https://i.imgur.com/wL88jqR.png):
IROM1 start = 0x20000000
IROM1 size = 0x400
IRAM1 start = 0x20001000
IRAM1 size = 0x20000
Это мой код, который я хочу разместить по нужному мне адресу:
STACK_TOP EQU 0x20000100
AREA RESET, DATA, READONLY
DCD STACK_TOP
DCD Start
AREA PROGRAM, CODE, READONLY
ENTRY
Start
NOP
NOP
NOP
b Start
END
После компиляции я получаю 0 ошибок и 0 предупреждений:
*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'C:\Program Files\Keil_v5\ARM\ARMCC\Bin'
Build target 'Target 1'
".\Objects\main.axf" - 0 Error(s), 0 Warning(s).
Build Time Elapsed: 00:00:00
Затем в режиме отладки я нашел свои шестнадцатеричные команды по нужному мне адресу (скриншот здесь -> https://i.imgur.com/aDohAV7.png):
8: NOP
0x20000008 BF00 NOP
9: NOP
0x2000000A BF00 NOP
10: NOP
0x2000000C BF00 NOP
11: b Start
0x2000000E E7FB B 0x20000008
Но проблема в том, что я не могу выполнить его, поскольку счетчик программы всегда равен 0x00000000 и не изменяется ни в режиме работы, ни в пошаговом режиме. Что я сделал не так?