Загрузчик Harmony на SAME70 — нет связи UART, отладка не работает
У меня возникли проблемы с загрузчиком Harmony наSAME70N20B
чип. Я хочу создать простой загрузчик, чтобы иметь возможность прошивать прошивку через UART4. Я не могу использовать встроенныйSAMBA
загрузчик, потому что он работает на UART0 (возможно, не UART0, сейчас не уверен), который недоступен на моей плате. Нет возможности изменить дизайн платы.
Я скачал MPLAB X IDE, создал новый проект и черезMCC Content Manager Wizard
добавлено несколько пакетов гармонии. Я не уверен, какие именно это были пакеты, сейчас я не могу открыть то же окно, кнопка MCC теперь открывает график проекта, но это было что-то связанное с ATSAME70, UART и некоторым основным пакетом Harmony.
Появилось окно графика проекта с узламиEFC
,Device Family Pack
,System
иCMSIS Pack
. я добавилUART Bootloader
иUART4
и соединил их между собой. я тоже нашелPin Settings
окно, где я назначилPD18
иPD19
к UART4. По умолчанию настройки часов должны быть в порядке, я проверил. Затем я нажалGenerate
кнопка.
В моем проекте появилось множество файлов C со всей логикой обновления прошивки. Я переопределил триггер загрузчика, поэтому он всегда должен переходить к загрузчику, а не к самой прошивке (временное решение, я хочу реализовать здесь некоторую логику позже). Я собрал его и прошил на плату через отладчик. Но когда я пытаюсь прошить программу через UART с помощью прилагаемого инструмента Python, связь между платой и компьютером отсутствует (от компьютера к плате есть).
Я попытался отладить код генерации с помощьюAtmel-ICE
отладчик, но когда ставлю точку останова, он говоритBroken Breakpoint
. На борту работает какой-то код, я могу прочитатьExecution Memory
и просмотреть дизассемблированный код. Есть некоторые ярлыки, напримерbootloader_UART_Tasks
илиmain
, что указывает на то, что существует некоторый код, созданный и прошитый, и присутствуют некоторые файлы отладки компоновщика.
Когда я создаю пустой проект с каким-то базовым кодом мигания светодиода, я могу его отладить так же хорошо. Я могу устанавливать точки останова, я могу пошагово выполнять код, выполнять стандартные операции отладки...
Я не знаком с MPLAB IDE, она не совсем удобна для пользователя (она пытается быть такой, что еще больше усугубляет ситуацию...). У меня довольно много опыта встроенного программирования и отладки C и C++ в eclipse, это должно быть похоже, но мне здесь чего-то не хватает.
БР
Михал
РЕДАКТИРОВАТЬ: В ходе дальнейшего расследования я обнаружил, что отладка работает вstartup_xc32.c
файл, содержащий обработчик сброса. Степпинг кода здесь работает отлично. Должно быть, что-то не так с процессом сборки, потому что отладка прерывается, когда код выбрасывает этот файл. Меня очень смущает эта IDE.