Кстати, раз у нас ветка про память, точнее про обьем кода - позволю себе вопрос по теме, насчет оптимизации размера исполняемого кода в проекте.
Если взять классический пример наследования с переопределением методов родительского класса в дочернем:
class Parent
{
public:
virtual void X()
{
std::cout << "Parent!";
}
};
class Child : public Parent
{
public:
void X() override
{
std::cout << "Child!";
}
};
правильно ли я понимаю, что в машинный код будут скомпилированы оба метода X() - и родительский и дочерний, даже если в коде используется только последний? Если да - есть ли какой-то иной метод наследования. который не тащил бы в код методы родительсткого класса там, где они не нужны?
правильно ли я понимаю, что в машинный код будут скомпилированы оба метода X() - и родительский и дочерний, даже если в коде используется только последний? Если да - есть ли какой-то иной метод наследования. который не тащил бы в код методы родительсткого класса там, где они не нужны?
Правильно. А вот компоновщик неиспользованное выкинет, если его запустить с адекватными флагами.
тащил бы в код методы родительсткого класса там, где они не нужны?
В Ардуино - не стоит напрягаться. Это обеспечивает опция -lto "Линк Тайм Оптимамизейшн" - на руглище ;).
Помнишь тут года 4 назад битвы были про -lto? Типа выкидывает, что ни попадя. Так вот это про неё, родную. Если захочешь погрузиться в вопрос, то есть много статей на аглицком про LTO в GCC. Вот прям так и находятся в гугле.
Если пользоваться вне среды Ардуино, то опция -flto должна быть включена как для компиляции, так и для линка. Компилятор создает таблицу символов, которую линковщик использует и может выкинуть ненужное.
При правильном использовании LTO позволяет напихать все полезные методы в класс, а линковщик выкинет из кода ненужное. ;)) Это сильно упрощая, но так можно понимать.
Ардуина("дохлая") через ICSP шьется. Загрузчик через Arduino ISP пишется. Пробовал и от нано и от уно... Правда так и не понял как указать конкретный загрузчик, например скачал с гитхаба оптибут 8.0, но так и не понял как его вшить... :(
Архив(точнее из него одни hex'ы) распаковал по инструкции, в папку (hardware\arduino\avr\bootloaders\Optiboot-8.0)... Манипуляции с boards.txt вообще ни к чему не приводят. Я этот файл даже удалял, а в ИДЕ все равно ничего не меняется....
Заметил только если шить загрузчик от уно, то свободной памяти становится 32кб, а если нано - то 30...
И еще вопрос, если шить программу через Arduino ISP (т.е. одну нану через вторую, "загрузить через программатор") - загрузчик тоже пишется? Иначе почему при загрузке через ICSP пишет что "Скетч использует 24580 байт (80%) памяти устройства. Всего доступно 30720 байт." Или я уже запутался(
Без второй платы или программатора стереть загрузчик из IDE достаточно сложно. Загонять ячейки - маловероятно.
А может что-то случится с USB - > UART? Странно она себя ведет... вроде и начинает загружаться, мк перезагружается и на этом висит... Затем в лог вот это выдает(при загрузка пустого скеча):
Скетч использует 444 байт (1%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 9 байт (0%) динамической памяти, оставляя 2039 байт для локальных переменных. Максимум: 2048 байт.
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x0a
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x0a
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x0a
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x0a
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x0a
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x0a
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x0a
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x0a
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x0a
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x0a
Problem uploading to board. See https://support.arduino.cc/hc/en-us/sections/360003198300 for suggestions.
почему при загрузке через ICSP пишет что "Скетч использует 24580 байт (80%) памяти устройства. Всего доступно 30720 байт." Или я уже запутался(
эта надпись никак не связана с реальным обьемом памяти в системе - эти цифры читаются из boards.txt. Какие цифры в файле напишете, такие и будут. Можете хоть 16 гиг написать :)
эти цифры читаются из boards.txt. Какие цифры в файле напишете, такие и будут. Можете хоть 16 гиг написать :)
Да вот что-то никаких результатов с изменением данного файла... Я пробовал имя менять nano.menu.cpu.atmega328old=ATmega328P (Old TEST Bootloader) (нана только через него до этого грузилась OLD, но потом пробовал и "новым") - ничего в меню не меняется
Да вот что-то никаких результатов с изменением данного файла... Я пробовал имя менять nano.menu.cpu.atmega328old=ATmega328P (Old TEST Bootloader) (нана только через него до этого грузилась OLD, но потом пробовал и "новым") - ничего в меню не меняется
если меню не меняется - значит у вас на компе несколько boards.txt и вы правите не тот
если меню не меняется - значит у вас на компе несколько boards.txt и вы правите не тот
[/quote]
Несколько. У меня нет установленных ИДЕ. Только зипы распакованные несколько штук... Но я правлю тот, откуда стартует arduino.exe.... И даже пробовал другие папки с версиями ардуины убирать в другую папку...
Но возможно где-то в реестр (хотя и там искал) есть что-то... В общем тоже подумал про вариант с boards.txt, но... незнаю. ИДЕ Должен читать из своих потрахов этот файл
К чему все эти манипуляции с загрузчиками? испортить бутлоадер операциями с кодом вы никак не могли. Думаю. проблема аппаратная, например частыми втыканиями кабеля расшатали USB разъем на плате и пайка треснула... или что-то подобное.
разберитесь лучше как это все работает. А то, на мой взгляд, вы тыркаетесь вслепую.
Ну не совсем в слепую. На делфи писал в свое время и системные вещи, немного помню как это все крутится на ПК. А так, да я всегда стараюсь разобраться в том, что делаю.
Цитата:
От установки кучи копий Ардуино ИДЕ будет только вред - будет непонятно, где правильные конфиги и что от чего зависит.
Ну тут от ПО конечно еще зависит.... если написано криво и конфиг используется не свой, то да.... проблемка)
К чему все эти манипуляции с загрузчиками? испортить бутлоадер операциями с кодом вы никак не могли. Думаю. проблема аппаратная, например частыми втыканиями кабеля расшатали USB разъем на плате и пайка треснула... или что-то подобное.
Возьмите другую ардуину и попробуйте
Вообще не расшатывал да и не втыкаю часто... по крайней мере пока пишу для нее вот как была в макетке так и торчит там не вынимаясь... Я в этом плане (разъемы и их втыкания очень аккуратен)
Ну раз испортить не мог программно, то скорее всего тогда что-то сгорело, но уж точно не отпаялось... Ладно, если с МИНИКОРЭ не получится ничего, буду ее через ICSP шить.... Жаль, а версия про неправильную скорость в параметрах мне была по душе
С MiniCore через другую ардуину тоже прошивается, бутлоадер загружается... После прошивки загрузчика светодиод начинает моргать два раза пауза два раза пауза и т.д. При подсоединении через USB при загрузке (Blink) ошибка:
Arduino: 1.8.16 (Windows 10), Плата:"ATmega328, Yes (UART0), EEPROM retained, 328P / 328PA, BOD 2.7V, LTO disabled, External 16 MHz"
Скетч использует 1030 байт (3%) памяти устройства. Всего доступно 32256 байт.
Глобальные переменные используют 9 байт (0%) динамической памяти, оставляя 2039 байт для локальных переменных. Максимум: 2048 байт.
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xdd
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xdd
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xdd
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xdd
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xdd
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xdd
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xdd
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xdd
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xdd
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xdd
Problem uploading to board. See https://support.arduino.cc/hc/en-us/sections/360003198300 for suggestions.
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"
В настройках выбрано ВСЕ сообщения от компилятора, ничего нового он не показывает
По предложенной ссылке смотрел, ничего там не понял.
Всё, помер USB? Или все таки где-то что-то я не доглядываю? Ведь при начале загрузки светодиоды начинают мыргать как и обычно, но недолго.... потом снова два мырга пауза... А в ИДЕ пишет, что идет загрузка и через несколько минут - ошибка.
invalid conversion from 'const char*' to 'char*' [-fpermissive]
Наверное нужно что-то где-то настраивать или переделывать...
Вернулся пока на стандартное ядро, хотя плюсы миникорэ понравились...
Выкинуть нанку жалко, работает же через внутрисхемное программирование, но не удобно...
Как узнать на какой скорости принимает загрузчик? Ведь они там вроде в хексе:
## Arduino Nano w/ ATmega328P (old bootloader)
## --------------------------
nano.menu.cpu.atmega328old=ATmega328P (Old Bootloader)
nano.menu.cpu.atmega328old.upload.maximum_size=30720
nano.menu.cpu.atmega328old.upload.maximum_data_size=2048
#nano.menu.cpu.atmega328old.upload.speed=57600 <--- Было
nano.menu.cpu.atmega328old.upload.speed=19200 В ATmegaBOOT_168.c подглядел, остальные hex
nano.menu.cpu.atmega328old.bootloader.low_fuses=0xFF
nano.menu.cpu.atmega328old.bootloader.high_fuses=0xDA
nano.menu.cpu.atmega328old.bootloader.extended_fuses=0xFD
nano.menu.cpu.atmega328old.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex
Но с 19200 тоже не работает. Но повторяюсь, при начале загрузке, сразу после компиляции, ардуина перезагружается, начинают мигать светодиоды, как обычно при загрузке - не долго, но когда ардуина загружается, то в ней начинает работать программа прошитая через ICSP а ИДЕ висит и затем ошибку выдает
Опа.... Вытащил из макетки, и с другой стороны один резистор, я его ногтем поддел - он и отвалился, не знаю на какой он линии.... сейчас поищу в интернете. Находится рядом с микросхемой USB (там их два(резистора) рядом... Возможно Вы правы. Но тогда это заводской(китайский) брак... Но нанка уже больше года торчит в этой макетке....
Наминал резистора не увидел, он сразу потерялся.... Ну слепой я уже( А тот, который остался, на нем тоже ни черта не видно... Но хуже всего - у меня смдшных нет и в своем городе вряд ли найду(
Есть еще пару жареных ардуин, мож с них чего подойдет...
Запаял я этот резистор. Такого мелкого не нашел, пришлось припаять чуть больше. Одну сторону на пятак, второй пятак оказался под резистором, пришлось проводок и на ногу Tx. Все равно не шьется через USB, но теперь хоть в порт шлет. Т.е. по ICSP прошил тестовую прошивку в сериал пишет раз в секунду, в мониторе порта видно. А если нажать загрузить скеч (пустой ) (через USB ), то в логе практически через две секунды после компиляции и начала загрузки:
Скетч использует 444 байт (1%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 9 байт (0%) динамической памяти, оставляя 2039 байт для локальных переменных. Максимум: 2048 байт.
Произошла ошибка при загрузке скетча
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00
Может слепыми глазами где соплю повесил, хотя вроде мультиком прозвонил.... Или из-за проводка... Всё, сил больше нет сегодня ее реанимировать...
дело в том что на них(резисторах) не видно ничего... Тестером меряю, который рядом с отвалившимся на нем 11кОм. Сейчас доступны мне полуживая нана и уно(которая пока программатор ISP) Остальные наны в другом месте, за ними ехать надо)
В общем я перепаял на 1 кОм тоже в дип, получилось куда аккуратнее чем с смд.
Подключаю через ISP, загружаю - таже ошибка. А потом смотрю, старый я дурак, перепутал RESET с MISO
Вижу Start и потом Second'ы идут каждую секунду...
На отправку не реагирует.
Нет смысла впаивать 10 кОм и еще раз пробовать? Я понимаю, что вроде везде в схемах указаны 1 кОм, но китайцы... Да и тестер показывает у "верхнего" 11...(
ADD: Хотя при отправки из монитора (нажатие энтер) Led Rx вспыхивает, не ярко, но примерно так же как и Tx каждую секунду...
Или может верхний резистор, чего того не того, может его тоже заменить на килоом? Сейчас еще раз его померил (и прошлый раз и сейчас не выпаивал) - 12 с копейками показал. Странно( Хотя нижний, который впаял(дип) меряю - 1 кОм кажет.
Без второй платы или программатора стереть загрузчик из IDE достаточно сложно. Загонять ячейки - маловероятно.
можно, у меня вот так шрифты подключены:
работает в любой версии Ардуино ИДЕ
Что-то вы не так делаете
Кстати, раз у нас ветка про память, точнее про обьем кода - позволю себе вопрос по теме, насчет оптимизации размера исполняемого кода в проекте.
Если взять классический пример наследования с переопределением методов родительского класса в дочернем:
правильно ли я понимаю, что в машинный код будут скомпилированы оба метода X() - и родительский и дочерний, даже если в коде используется только последний? Если да - есть ли какой-то иной метод наследования. который не тащил бы в код методы родительсткого класса там, где они не нужны?
b707 по идее не должен (и не делает - проверил), если нет ни одного экземпляра родителя ...
код-
И ты в своей функции не вызываешь родительскую вручную
b707 по идее не должен (и не делает - проверил),
спасибо.
А чем дизассемблируешь?
У меня установлен пакет MiniCore и в нем свой platform.txt. Во временной папке (где IDE всё варит) сразу есть lst !!!
правильно ли я понимаю, что в машинный код будут скомпилированы оба метода X() - и родительский и дочерний, даже если в коде используется только последний? Если да - есть ли какой-то иной метод наследования. который не тащил бы в код методы родительсткого класса там, где они не нужны?
Правильно. А вот компоновщик неиспользованное выкинет, если его запустить с адекватными флагами.
в нем свой platform.txt. Во временной папке сразу есть lst !!!
а можешь выложить?
Видно что используется objdump ...
точнее avr-objdump
Спасибо.
В Ардуино - не стоит напрягаться. Это обеспечивает опция -lto "Линк Тайм Оптимамизейшн" - на руглище ;).
Помнишь тут года 4 назад битвы были про -lto? Типа выкидывает, что ни попадя. Так вот это про неё, родную. Если захочешь погрузиться в вопрос, то есть много статей на аглицком про LTO в GCC. Вот прям так и находятся в гугле.
Если пользоваться вне среды Ардуино, то опция -flto должна быть включена как для компиляции, так и для линка. Компилятор создает таблицу символов, которую линковщик использует и может выкинуть ненужное.
При правильном использовании LTO позволяет напихать все полезные методы в класс, а линковщик выкинет из кода ненужное. ;)) Это сильно упрощая, но так можно понимать.
wdrakula. спасибо, -flto знаю
А чем дизассемблируешь?
В VS есть Disassembled View
Ардуина("дохлая") через ICSP шьется. Загрузчик через Arduino ISP пишется. Пробовал и от нано и от уно... Правда так и не понял как указать конкретный загрузчик, например скачал с гитхаба оптибут 8.0, но так и не понял как его вшить... :(
Архив(точнее из него одни hex'ы) распаковал по инструкции, в папку (hardware\arduino\avr\bootloaders\Optiboot-8.0)... Манипуляции с boards.txt вообще ни к чему не приводят. Я этот файл даже удалял, а в ИДЕ все равно ничего не меняется....
Заметил только если шить загрузчик от уно, то свободной памяти становится 32кб, а если нано - то 30...
И еще вопрос, если шить программу через Arduino ISP (т.е. одну нану через вторую, "загрузить через программатор") - загрузчик тоже пишется? Иначе почему при загрузке через ICSP пишет что "Скетч использует 24580 байт (80%) памяти устройства. Всего доступно 30720 байт." Или я уже запутался(
AsNik Установите пакет MiniCore. В нём есть загрузчик optiboot. Выберите свою плату среди плат пакета MiniCore и залейте загрузчик через вторую плату.
Без второй платы или программатора стереть загрузчик из IDE достаточно сложно. Загонять ячейки - маловероятно.
А может что-то случится с USB - > UART? Странно она себя ведет... вроде и начинает загружаться, мк перезагружается и на этом висит... Затем в лог вот это выдает(при загрузка пустого скеча):
Информацию о плате выдает.
Может вы залили загрузчик ожидающий данные на другой скорости ?!
AsNik Установите пакет MiniCore. В нём есть загрузчик optiboot. Выберите свою плату среди плат пакета MiniCore и залейте загрузчик через вторую плату.
https://github.com/MCUdude/MiniCore
? Установил, появилось несколько новых меню.... разбираюсь. Спасибо. Сейчас буду пробовать ставить эксперименты на полудохлой нане...
загрузчик из комплекта miniCore должен решить проблему и памяти будет доступно 32к и загружать будет на 115200
почему при загрузке через ICSP пишет что "Скетч использует 24580 байт (80%) памяти устройства. Всего доступно 30720 байт." Или я уже запутался(
эта надпись никак не связана с реальным обьемом памяти в системе - эти цифры читаются из boards.txt. Какие цифры в файле напишете, такие и будут. Можете хоть 16 гиг написать :)
Может вы залили загрузчик ожидающий данные на другой скорости ?!
Может... Но как это определить?
Я заливал только стандартные из поставки Ардуино ИДЕ. Единственный нестандартный вариант - это Оптибут 8, но с ним у меня ничего не получилось.
Про файл boards.txt - я писал выше. Вернул его прежним на место, экспериментировал с его копией...
Про файл boards.txt - я писал выше. Вернул его прежним на место, экспериментировал с его копией...
к чему эти извращения, всё делается двумя-тремя тычками мышки по менюшкам IDE
эти цифры читаются из boards.txt. Какие цифры в файле напишете, такие и будут. Можете хоть 16 гиг написать :)
Да вот что-то никаких результатов с изменением данного файла... Я пробовал имя менять nano.menu.cpu.atmega328old=ATmega328P (Old TEST Bootloader) (нана только через него до этого грузилась OLD, но потом пробовал и "новым") - ничего в меню не меняется
Да вот что-то никаких результатов с изменением данного файла... Я пробовал имя менять nano.menu.cpu.atmega328old=ATmega328P (Old TEST Bootloader) (нана только через него до этого грузилась OLD, но потом пробовал и "новым") - ничего в меню не меняется
если меню не меняется - значит у вас на компе несколько boards.txt и вы правите не тот
к чему эти извращения, всё делается двумя-тремя тычками мышки по менюшкам IDE
Да нет, это я уже тоже делал, ну только не с миникорэ, а со стандартными.... потом и полез в этот файл...
МИНИкорэ установил, буду пробовать его. Спасибо
МИНИкорэ установил, буду пробовать его. Спасибо
вместо того чтобы ставить все новые пакеты - разберитесь лучше как это все работает. А то, на мой взгляд, вы тыркаетесь вслепую.
От установки кучи копий Ардуино ИДЕ будет только вред - будет непонятно, где правильные конфиги и что от чего зависит.
если меню не меняется - значит у вас на компе несколько boards.txt и вы правите не тот
[/quote]
Несколько. У меня нет установленных ИДЕ. Только зипы распакованные несколько штук... Но я правлю тот, откуда стартует arduino.exe.... И даже пробовал другие папки с версиями ардуины убирать в другую папку...
Но возможно где-то в реестр (хотя и там искал) есть что-то... В общем тоже подумал про вариант с boards.txt, но... незнаю. ИДЕ Должен читать из своих потрахов этот файл
К чему все эти манипуляции с загрузчиками? испортить бутлоадер операциями с кодом вы никак не могли. Думаю. проблема аппаратная, например частыми втыканиями кабеля расшатали USB разъем на плате и пайка треснула... или что-то подобное.
Возьмите другую ардуину и попробуйте
МИНИкорэ установил, буду пробовать его. Спасибо
вместо того чтобы ставить все новые пакеты
Поздно :)
разберитесь лучше как это все работает. А то, на мой взгляд, вы тыркаетесь вслепую.
Ну не совсем в слепую. На делфи писал в свое время и системные вещи, немного помню как это все крутится на ПК. А так, да я всегда стараюсь разобраться в том, что делаю.
От установки кучи копий Ардуино ИДЕ будет только вред - будет непонятно, где правильные конфиги и что от чего зависит.
Ну тут от ПО конечно еще зависит.... если написано криво и конфиг используется не свой, то да.... проблемка)
К чему все эти манипуляции с загрузчиками? испортить бутлоадер операциями с кодом вы никак не могли. Думаю. проблема аппаратная, например частыми втыканиями кабеля расшатали USB разъем на плате и пайка треснула... или что-то подобное.
Возьмите другую ардуину и попробуйте
Вообще не расшатывал да и не втыкаю часто... по крайней мере пока пишу для нее вот как была в макетке так и торчит там не вынимаясь... Я в этом плане (разъемы и их втыкания очень аккуратен)
Ну раз испортить не мог программно, то скорее всего тогда что-то сгорело, но уж точно не отпаялось... Ладно, если с МИНИКОРЭ не получится ничего, буду ее через ICSP шить.... Жаль, а версия про неправильную скорость в параметрах мне была по душе
Ну тут от ПО конечно еще зависит.... если написано криво и конфиг используется не свой, то да.... проблемка)
какой используется конфиг, узнать очень просто, при запущенной IDE открываете настройки и смотрите самую нижнюю строчку(большая красная стрелка):
Файл boards ищите где-то в той же директории
(на верхнюю красную стрелку не обращать внимания, картинка не моя :)
Ok, забыл я про этот аппдата... Давно еще хотел спросить про этот преференсес.тхт
Буду смотреть там чего хранит ИДЕ, Но уже миникоре там нашел... значит точно все версии имеющихся ИДЕ используют общую папку Ардуино15. Спасибо
С MiniCore через другую ардуину тоже прошивается, бутлоадер загружается... После прошивки загрузчика светодиод начинает моргать два раза пауза два раза пауза и т.д. При подсоединении через USB при загрузке (Blink) ошибка:
В настройках выбрано ВСЕ сообщения от компилятора, ничего нового он не показывает
По предложенной ссылке смотрел, ничего там не понял.
Всё, помер USB? Или все таки где-то что-то я не доглядываю? Ведь при начале загрузки светодиоды начинают мыргать как и обычно, но недолго.... потом снова два мырга пауза... А в ИДЕ пишет, что идет загрузка и через несколько минут - ошибка.
И мой код в МиниКорэ не компилится:
Но с 19200 тоже не работает. Но повторяюсь, при начале загрузке, сразу после компиляции, ардуина перезагружается, начинают мигать светодиоды, как обычно при загрузке - не долго, но когда ардуина загружается, то в ней начинает работать программа прошитая через ICSP а ИДЕ висит и затем ошибку выдает
Залей блинк через вторую плату и проверь с какой частотой моргает.
Сейчас еще раз попробую, но помоему (уже заливал) как положено один герц...
ADD
Да, частота один герц. Секунду горит, секунду нет.
И кстати через ICSP загружается с обычным загрузчиком, через USB эта нанка грузилась только с Old Bootloader...
Если моргает не раз в секунду - сбил фьюзы.
Если моргает раз в секунду - залей скетч с Serial.println и проверь есть ли вывод в порт.
Мог снести резисторы на дорожках от usb-uart к atmega.
Да нет) Я ее вообще не трогаю, торчит она себе в макетке и торчит...
Сейчас попробую с портом....
Нет, в Serial ничего не летит, но светодиоды горят Pow(понятно) и Tx постоянно...
Но... кстати, если что-то посылать в ардуину (в мониторе порта), то на ардуине вспыхивает Rx
Я бы с лупой изучил линию Tx. И макетку прозвонить на вопрос кз по тх на плюс и землю.
Опа.... Вытащил из макетки, и с другой стороны один резистор, я его ногтем поддел - он и отвалился, не знаю на какой он линии.... сейчас поищу в интернете. Находится рядом с микросхемой USB (там их два(резистора) рядом... Возможно Вы правы. Но тогда это заводской(китайский) брак... Но нанка уже больше года торчит в этой макетке....
Наминал резистора не увидел, он сразу потерялся.... Ну слепой я уже( А тот, который остался, на нем тоже ни черта не видно... Но хуже всего - у меня смдшных нет и в своем городе вряд ли найду(
Есть еще пару жареных ардуин, мож с них чего подойдет...
Вот на обратной стороне его красной стрелкой указал. Наверное на 1 кОм
Запаял я этот резистор. Такого мелкого не нашел, пришлось припаять чуть больше. Одну сторону на пятак, второй пятак оказался под резистором, пришлось проводок и на ногу Tx. Все равно не шьется через USB, но теперь хоть в порт шлет. Т.е. по ICSP прошил тестовую прошивку в сериал пишет раз в секунду, в мониторе порта видно. А если нажать загрузить скеч (пустой ) (через USB ), то в логе практически через две секунды после компиляции и начала загрузки:
Напишите эхо скетч для Serial
Пока не сможете из терминала посылать и принимать назад - надо разбираться с железом.
Тут свежем взглядом посмотрел. Т.н. тестером померил верхний резистор - он 10кОм (мультик показал 11.8 кОм)
Перепаял нижний на 10 и в дип корпусе Удобнее кстати и без провода... Но теперь и через ICSP ошибка при загрузке:
У вас же несколько плат ... Эти резисторы для защиты и они 1 кOm скорее всего. На 10 кОм сигнал потеряется...
У вас же несколько плат ...
дело в том что на них(резисторах) не видно ничего... Тестером меряю, который рядом с отвалившимся на нем 11кОм. Сейчас доступны мне полуживая нана и уно(которая пока программатор ISP) Остальные наны в другом месте, за ними ехать надо)
В общем я перепаял на 1 кОм тоже в дип, получилось куда аккуратнее чем с смд.
Подключаю через ISP, загружаю - таже ошибка. А потом смотрю, старый я дурак, перепутал RESET с MISO
В итоге залил Эхо через ICSP:
Start в мониторе вижу и всё...
поменял на всякий случай
Вижу Start и потом Second'ы идут каждую секунду...
Или может верхний резистор, чего того не того, может его тоже заменить на килоом? Сейчас еще раз его померил (и прошлый раз и сейчас не выпаивал) - 12 с копейками показал. Странно( Хотя нижний, который впаял(дип) меряю - 1 кОм кажет.