__copy_rom_sections_to_ram(); Висит MCU

Я работаю над проектом с использованием семейства продуктов Kinetis KEA128 ARM® Cortex®-M0+. Конкретно вариант KEAZ64.

У меня есть три проекта: PRE-LOADER, BOOTLOADER и APPLICATION.

Предварительный загрузчик работает очень хорошо и переходит к загрузочному коду загрузчика. в файле __arm_start.c __copy_rom_sections_to_ram(); просто висит MCU и дальнейшая операция не происходит. Самое смешное, что при использовании P&E JTAG Debugger проект работает нормально и переходит в приложение. Без отладчика он застрял в указанной точке.

Я попытался дать задержку, изменив адрес в моем файле компоновщика, попытался скопировать только 1 байт из ПЗУ в ОЗУ, но ничто не заставляет его работать.

Однако, удалите раздел .romp из моего файла компоновщика, весь проект работает. Единственным недостатком является то, что я не загружаю свои переменные из NVM.

Любая идея по этому поводу будет принята с благодарностью!

Благодарю вас!

Редактировать: Я понимаю, что я не смог поделиться файлом линкера с вами, ребята, но спасибо за весь вклад.

Я нашел решение, но точная причина неизвестна. 1. Ранее было объявлено, что раздел .romp начинается после BSS в разделе .data. 2. После перемещения раздела .romp над BSS все проблемы прекратились.

Я знаю, что это работает, но я не понимаю, как это будет сильно отличаться?

0 ответов

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