Как ARM находит мою перемещенную векторную таблицу? - PullRequest
1 голос
/ 14 июня 2019

Я использую NXP Kinetis K64 ARM Cortex M4 MCU.Я успешно изменил файл конфигурации компоновщика, чтобы переместить мою векторную таблицу по адресу 0x8000 (вместо значения по умолчанию 0x0000).Когда я говорю отладчику CodeWarrior 10.6, что он ломается в начале кода, он останавливается в верхней части файла boot.S, как и ожидалось.Но меня осенило, КАК MCU / отладчик нашел код, поскольку флэш-память пуста (0xFF) с адреса от 0x0000 до 0x7FFF, а регистр VTOR отображается как 0x0?!

Я просмотрел таблицы данных ядра ARM M4 и NXP K64, но они не отвечают этому сценарию.

1 Ответ

2 голосов
/ 15 июня 2019

Вероятно, это связано с настройками ваших настроек отладки в CodeWarrior.На вкладке «Отладчик», если отмечен Инициализированный счетчик программы на , как показано ниже, при сбросе отладчик выдаст Программному счетчику адрес «верх файла boot.S» , которая является точкой входа в программу .Обычная последовательность поиска таблицы векторов пропускается.

Ваша программа не будет работать без отладчика.screenshot

Более подробную информацию об отладчике CodeWarrior можно найти здесь

...