Возможно, попробуйте один шаг за раз.
Запустите openocd, возможно, что-то вроде -f interface / jlink.cfg -f target / lpc1768.cfg или что-то еще, похоже, у вас это работает.
второй локальный хост telnet 4444 или что-то из оконкомандная строка (что-то похожее)
В СЕССИИ TELNET:
> halt
> mdw 0x0000
и тому подобное, чтобы увидеть, что вы говорите с этой частью.
, если у вас естьУже скомпилировав некоторые программы, вы можете просто загрузить их и запустить, например, если вы создаете программу только для оперативной памяти (скажите, что компоновщик .text, .data и т. д. все в 0x10000000), тогда
> load_image /path/to/myprog.elf
> resume 0x10000001
(дадобавьте 1, чтобы сделать его странным, этот процессор большого пальца не будет запускать инструкции ARM (lsbit = 0 в режиме охраны lsbit = 1 в режиме большого пальца).
Для повторного запуска после перекомпиляции:
> halt
> load_image /path/to/myprog.elf
> resume 0x10000001
затем беспокойтесь о перепрошивке и т. Д. После того, как у вас есть основанные на ОЗУ программы, показывающие признаки жизни.
Если ничего из этого не работает, то gdb - это просто еще один уровень сложности поверх этого и собираетсясделать сложнее понятьut.
Что касается загрузчика, ответ на этот вопрос зависит от того, пытаетесь ли вы запустить из оперативной памяти или из программы в ром.Если вы работаете с оперативной памяти, вы можете взять на себя систему и взять на себя всю оперативную память, некоторые микросхемы (stm32) имеют некоторые подпрограммы, которые вы можете вызвать, и те требуют, чтобы некоторые оперативные памяти были не тронуты, но если вы принимаете чип, вы можете иметь все оперативные памяти, речь идет о том, чтобы сообщить компоновщику и, возможно, отладчику, если он не знает об этом из двоичного файла (использование файлов elf или ihex или srec или почти всего, что не является .bin, хорошо, если инструмент поддерживает его).
если вы собираетесь писать на флэш-память, вам лучше точно знать, какая часть флэш-памяти может содержать загрузчик, что этот загрузчик делает для передачи вашему коду и т. Д., И снова сообщить компоновщику и отладчикуэта информация.Вы можете легко стереть / очистить загрузчик в зависимости от того, где он находится и что вы делаете (многие из этих частей lpc и st имеют загрузчики, последовательные или usb, которые в некоторой степени защищены от случайных ошибок, но вы все равно обычно можете удалить их изамените их, если вы не осторожны).