Запись на флэш-память не работает с Optiboot

У меня возникли проблемы с записью во флэш-память на Arduino Uno.

Я записал на чип загрузчик optiboot, поставляемый с IDE 1.8.3, а затем загрузил набросок test_dospm для записи содержимого во флэш-память, но вместо этого перезагружает устройство.

Есть идеи, почему это может происходить?

, 👍0


1 ответ


Лучший ответ:

0

Загрузчик, поставляемый с Arduino IDE, имеет версию 4, которая уже была в Uno с завода. Для использования функции do_spm вам потребуется Optiboot 8 сборка с включенной поддержкой. Он не включен в сборках по умолчанию, поскольку не соответствует обычному размеру Optiboot для Uno.

Шестнадцатеричный файл загрузчика находится здесь. Просто замените шестнадцатеричный файл в пакете плат AVR этим файлом.

,

Я могу добавить больше деталей или даже собрать и протестировать загрузчик и предоставить настройки boards.txt, так как это есть в моем списке TODO., @Juraj

Спасибо @Juraj, это было бы полезно! В настоящее время я погружаюсь в исходный код/makefile, чтобы увидеть, какие опции мне нужно включить для сборки загрузчика, и вы были правы насчет того, что do_spm не включен по умолчанию., @Falla Coulibaly

@FallaCoulibaly, я обнаружил, что do_spm входит в обычную сборку Optiboot8. БИГБУТ не требуется. Я изменил ответ., @Juraj

Спасибо, это помогло, @Falla Coulibaly

но если кому-то когда-нибудь понадобится большая версия Optiboot, включая мою функцию copy_flash_pages, вот она https://github.com/jandrassy/my_boards. о copy_flash_pages: https://github.com/Optiboot/optiboot/pull/269, @Juraj