Переход к определенной области памяти ресниц (пример 0x2000) в контроллере SAMD21G17D после запуска программного сброса

Я пишу один код загрузчика и код приложения для контроллера SAMD21G17D. Я хочу запускать код своего приложения отдельно для отладки (независимо от загрузчика). Я только изменил начальное расположение кода приложения в скрипте компоновщика.

#ifndef ROM_ORIGIN
#  define ROM_ORIGIN 0x2000
#endif
#ifndef ROM_LENGTH
#  define ROM_LENGTH 0x10000

После обновления скрипта компоновщика я проверил сгенерированный файл карты на предмет перемещения таблицы векторов и начальный адрес флэш-памяти (0x2000) в сгенерированном шестнадцатеричном файле (MPLAB X ide), оба в порядке.

Но когда я отлаживаю, мое управление приложением не попадает в функцию Reset Handler. Если источник ПЗУ - 0x0 (начиная с загрузчика), тогда все в порядке. Я не перескакиваю с загрузчика на код приложения. Есть ли какое-либо решение, которое я могу напрямую перейти к коду моего приложения (любые флаги компоновщика или компилятора или любые другие параметры). IDE и компилятор, которые я использую, перечислены ниже:

IDE - MPLAB V5.30 Контроллер: SAMD21G18 Компилятор: XC32 Отладчик: EDBG (на чипе)

0 ответов

Другие вопросы по тегам