__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 все проблемы прекратились.
Я знаю, что это работает, но я не понимаю, как это будет сильно отличаться?