Уважаемые посетители! Форум CQHAM.RU существует исключительно за счет показа рекламы. Мы будем благодарны, если Вы не будете блокировать рекламу на нашем Форуме. Просим внести cqham.ru в список исключений для Вашего блокировщика рекламы.
RSS лента

R3TLI

QRP SDR трансивер uSDX, продолжение QCX-SSB

Оценить эту запись
Цитата Сообщение от R3Q Посмотреть сообщение
Цитата Сообщение от Vladimir-dl7pga Посмотреть сообщение
... пойдёшь налево (Arduino UNO), получишь желанный хекс, пойдёшь направо (Arduino NANO), получишь фигвам. Причем контроллер-то один и тот же, ATMEGA328P.
Так и есть. Дело в том, что в ардуинах применяются два загрузчика - старый (old bootloader) и новый (optiboot).
Разница - в кое-каких функциях и размере. Старый загрузчик весит 2048 байт, новый - 512 байт.
Соответственно, у процессора Atmega328 доступная память со старым загрузчиком 32768 - 2048 = 30720 байт и нашему скетчу не хватит памяти.
с новым загрузчиком 32768 - 512 = 32256 байт и нашему скетчу памяти кагбэ и хватает.
Это присказка. Теперь сказка.
По слухам, все итальянские ардуины идут с новым загрузчиком, однако сумрачный китайский гений осилил optiboot только на Uno.
Практически все китайские Nano продаются со старым загрузчиком.
Коротко, как лечить.
Через Arduino IDE с помощью ISP (Гугл в помощь) заливаем в Nano новый загрузчик. Освободили 1,5 КБ памяти программ.
Компилируем скетч и ... ОООПС!!! Доступная память 30720, скетчу памяти не хватает. Проверено для версий 1.8.12 и 13.
Тогда находим (утку в ларце, яйцо в утке )в каталогах arduino ide файл boards.txt.
В этом файле есть строки о предельной памяти Nano со старым загрузчиком - 30720 байт и с новым загрузчиком ... 30720 байт. Это баг.
Исправляем на 32256, сохраняем.
Теперь всё компилируется, грузится, работает и вообще жизнь прекрасна.

Если интересуют подробности, задавайте вопросы.
Категории
Без категории

Комментарии