Настройки предохранителей для загрузки файла .hex непосредственно в Bootloader - PullRequest
0 голосов
/ 24 августа 2018

У меня проблема с платой разработки Arduino MEGA2560. Встроенный чип, используемый для загрузки программы (AtMega16U2), поврежден из-за перенапряжения, поэтому я не могу загрузить код на AtMega2560. это означает, что Serial0, используемый для последовательной загрузки программы, не работает должным образом из-за поврежденной ИС.

Поэтому я изменил исходный файл загрузчика (stk500boot.c), чтобы использовать Serial1 вместо Serial0. (Atmega2560 имеет 4 последовательных порта).

Затем я загрузил новый сгенерированный файл .hex , используя другой программист (usbasp), но проблема в том, что код переходит в часть приложения флэш-памяти.

Так, как я могу загрузить код в часть загрузчика флэш-памяти? Следует ли изменить настройки предохранителей перед загрузкой на флэш-память и как это сделать?

1 Ответ

0 голосов
/ 24 августа 2018

Вы должны указать компоновщику переместить секцию .text.Обычно это адрес 0x00.Это должно быть установлено на начальный адрес флэш-загрузчика.

Например:

-Wl,-section-start=.text=0x20000

Ловушка: Обратите внимание, что адреса в таблице данных являются адресами слов,Компоновщик You ожидает адрес байта, поэтому не забудьте умножить адрес слова на 2.

...