Хекс файл из среды ардуино в МК атмегу через (допустим) программу СинаПро
- Войдите на сайт для отправки комментариев
Сб, 15/02/2020 - 11:16
Подключил через ISP программатор леонардо, определился, прошился, но программа не выполняется( допустим мигать светодиодом с задержкой 1000 , так для проверки), а так можно вообще?
Или надо отдельно на СИ писать?
А почему нельзя-то? hex - он и в Африке hex.
А почему нельзя-то? hex - он и в Африке hex.
если скомпилирован для нужной платы...
ок
А почему нельзя-то? hex - он и в Африке hex.
ардуино генерит hex который пишется поверх (не буквально) загрузчика, так что загрузка этого файла программатором неправильна.
ардуино генерит hex который пишется поверх (не буквально) загрузчика, так что загрузка этого файла программатором неправильна.
Вот с этого места и поподробнее.
PS: а кагжетагда PR скармливайу *.hex и он работат?
ардуино генерит hex который пишется поверх (не буквально) загрузчика, так что загрузка этого файла программатором неправильна.
Вот с этого места и поподробнее.
PS: а кагжетагда PR скармливайу *.hex и он работат?
сколько хватает моих скромных знаний, тут главное, чтобы МК был правильно выбран и его ФЬЮЗЫ совпадали, в смысле те, что в МК будем (или не будем шить) и сгенерированый файл под них компилировался... я так с часами по незнанке немного репу чесал - секунды медленно тикали... сообразил конечно быстро, но факт такой был.
Вот с этого места и поподробнее.
PS: а кагжетагда PR скармливайу *.hex и он работат?
Последнюю строку не понял, но в двух словах - isp пишет прямо во флеш куда ему скажешь, а ардуино Ide передает данные программе - загрузчику, по com порту, а уже загрузчик сам пишет hex код во флеш. Не программатор, а сам мк заполняет флеш. Видите разницу?
Вот с этого места и поподробнее.
PS: а кагжетагда PR скармливайу *.hex и он работат?
Последнюю строку не понял, но в двух словах - isp пишет прямо во флеш куда ему скажешь, а ардуино Ide передает данные программе - загрузчику, по com порту, а уже загрузчик сам пишет hex код во флеш. Не программатор, а сам мк заполняет флеш. Видите разницу?
Onkel, вы несколько перепутали и запихнули мух в котлеты, просто попробуйте зашить любым программатором *hex от ардуино через SPI и у вас все получится, если все правильно сделаете.
SPI не UART с которым вы путаете
Нет, не перепутал. Если я написал "через isp" то это для atmega и означает через SPI. Есть три типа hex - загрузчик (boot), исполняемый hex который шьется spi , и hex который пишется загрузчиком во флеш и принимается через uart. hex'ы разные.
но в двух словах - isp пишет прямо во флеш куда ему скажешь, а ардуино Ide передает данные программе - загрузчику, по com порту, а уже загрузчик сам пишет hex код во флеш. Не программатор, а сам мк заполняет флеш. Видите разницу?
ISP программатор сначала стирает всю флешь а потом ПОСЛЕДОВАТЕЛЬНО пишет ВСЮ область начиная с таблицы векторов и заканчивая областью RWW!!!
BootLoader же НАХОДИТСЯ в области RWW и оттуда (именно ОТТУДОВА!!!) имеет возможность стирать и перезаписывать флешь память. Стирание и последующая запись происходит ПОБЛОЧНО, т.о. сначала бутлоадер загрузит БЛОК в оперативную память (RAM) посредством ЛЮБОГО интерфейса (UART, SPI, I2C, вААще неважно ) , затем даст команду на СТИРАНИЕ БЛОКА, затем команду ЗАПИСИ БЛОКА и так далее. Запись происходит ПОСЛЕДОВАТЕЛЬНО-ПОБЛОЧНО начиная с области векторов прерываний и заканчивая областью Flash_End.
А теперь ГЛАВНЫЙ вопрос: с какого ПЕРЕПУГУ *.hex не будет РАБОТАТЬ, если он пишется всегда в ОДНИ И ТЕ-ЖЕ АДРЕСА независимо от того, КАК мы его ПИШЕМ.
Шеф, где_разниццо?
Чуть не забыл!!! Беседу можно закрыть, короче решил проблему так:
1. среда дуни умеет работать с атмега8 глянул в файл с бордами
2. там обнаружил фузы
3. пробил что данные фузы рассчитаны на работу атмеги8 только с внешник кристалом
4. установил кварц
5. установил фузы как в борде
Победа!!! адекватная работа контроллера
если не вдаваться в высокие материи, простой блинк сгенерированный ИДЭ и вытащенный его *hex легко зашивается по ISP любым средством.
но перечитал заново вопрос - как понимаю, там еще проще - скорее всего трабла с ФЬЮЗАМИ. Для начала в целевую плату требуется залить загрузчик (он выставит фьюзы), а потом заливать свой код выбрав целевую плату в устройствах, для которой заливали загрузчик. - это если по простому для ТС.
3. пробил что данные фузы рассчитаны на работу атмеги8 только с внешник кристалом
это если среду не обновлять, на гитхабе можно буты и с кварцами найти и без и на разные напруги и частоты.
Победа!!! адекватная работа контроллера
Паздравляю!
Но мы тут ещё "потрём" темы посерьёзнее фьюзов в 8меге, ты не против, надеюсь?
просто надо понять как ТС залил нех в плату, если из иде не важно через порт или через программатор - должна работать.
а в леонардо загрузка вообще отдельная тема, тут онкель прав, сам вожусь и охреневаю
заливаю блинк через ISP, правда в среде дурдуины, и казалось бы там должен быть только блинк - хрен! появляется еще и ком порт в системе, тока прошить через него уже не удастся, пока заново не накатишь загрузчик.
во такие вот дела.
А в среде ардуино есть ли уже готовая плата, которую бы можно было подгрузить в менеджере плат, что бы атмега8 работал на внутреннем кристале, калькулятор загрузчиков уже не работает, серваки у них загнулись что ли.
во такие вот дела.
Скока срецтва ставим Деду на кон?
С вас любые *.hex с любой прошивкой + схема --- с меня симуляцция в PR. Срецтво - Деду!!! Идёт?
Хорошо
для затравки: леонардо не пользовался, а вот нано и уно заливал "arduino as isp" и потом выбирал целевую плату по типу МК, фьюзов и залитого загрузчика - вроде особо без проблем (конечно заливка по средствам загрузчика, а не обычная загрузка).
леонардо также как и уно, у меня вышло "arduino as isp"
могу видос залить
А в среде ардуино есть ли уже готовая плата, которую бы можно было подгрузить в менеджере плат, что бы атмега8 работал на внутреннем кристале, калькулятор загрузчиков уже не работает, серваки у них загнулись что ли.
не помню ссылку, а глянуть негде, позже отпишусь... если получится сегодня.
во такие вот дела.
Скока срецтва ставим Деду на кон?
С вас любые *.hex с любой прошивкой + схема --- с меня симуляцция в PR. Срецтво - Деду!!! Идёт?
эта... деда по пустякам беспокоить ниЗЯ, а то он своево средства сразу всем пропишет.
А в среде ардуино есть ли уже готовая плата, которую бы можно было подгрузить в менеджере плат, что бы атмега8 работал на внутреннем кристале, калькулятор загрузчиков уже не работает, серваки у них загнулись что ли.
64 - LOW; DF - HIGH. Внутренний 8МГц; без BOD; без загрузчика.
Залить можно просто дудкой или как Гриша предложил. Все работает.
А в среде ардуино есть ли уже готовая плата, которую бы можно было подгрузить в менеджере плат, что бы атмега8 работал на внутреннем кристале, калькулятор загрузчиков уже не работает, серваки у них загнулись что ли.
64 - LOW; DF - HIGH. Внутренний 8МГц; без BOD; без загрузчика.
Залить можно просто дудкой или как Гриша предложил. Все работает.
я добавил ядро миникоре с гиттхаба, там параметров достаточно, атмега 8 в списке )))
Добавить в настройках и будет счастье, да дальше как обычно в девайсах - установить
Мужики. Абсолютно верно говорит ЕвгенийП - хекс он и в Африке хекс. И неважно кто его будет записывать - хоть ЛЮБОЙ нормальный программатор, хоть загрузчик самого Ардуино. Этот хекс будет записываться во флеш по указанным в нём (хексе) адресам. Но. Если программатор у вас "Arduino as ISP", то в отличие от загрузчика, кроме хекса он ещё будет программировать фьюзы! Те, которые выбраны целевой платой и которые указаны в boards.txt. Вот и все дела. И не имеет значения Леонардо там что либо другое.
А почему нельзя-то? hex - он и в Африке hex.
ардуино генерит hex который пишется поверх (не буквально) загрузчика, так что загрузка этого файла программатором неправильна.
Не понял про что Вы, но точно не про, про что я.
Если IDE сказать "сохрани как hex", он генерит два файла - с загрузчиком и без. Любой из этих файлов отлично грузится программатором и работает.
А в среде ардуино есть ли уже готовая плата, которую бы можно было подгрузить в менеджере плат, что бы атмега8 работал на внутреннем кристале...
не помню ссылку, а глянуть негде, позже отпишусь... если получится сегодня.
выше уже написали, пока я до компа добирался, я ставил по этой ссылке minicore пост 15
т.е. я просто продублировал пост выше
Не понял про что Вы, но точно не про, про что я.
Если IDE сказать "сохрани как hex", он генерит два файла - с загрузчиком и без. Любой из этих файлов отлично грузится программатором и работает.
Файлы разные? Тогда в чем смысл того что они разные?
Сами подумайте в чём смысл, мне эта дискуссия, правда, неинтересна.
Пошел думать.
на интерес сделал скрин блинка
UPD если загрузить простой стандарт, то после этого по UART ничего не загрузишь, только по ISP. т.е. бут при каждой перезагрузки по uart перезаписывается, а без бута экономим место и еще что-то, вот только такие важные вещи в моей голове плохо держаться... что-то там с псом связано и с альтернативным использованием некоторых портов - последнее не утверждаю т.к. еще не добрался до сих глубин.
Файлы разные? Тогда в чем смысл того что они разные?
ТоварисЧ онкель, мы будем отвечать по существу данной темы или будем фключать шланга?
ТоварисЧ онкель, мы будем отвечать по существу данной темы или будем фключать шланга?
пост 12 и 15... так что и последнее можно.
ТоварисЧ онкель, мы будем отвечать по существу данной темы или будем фключать шланга?
пусть подумает... может откровет для себя что-то новое.
Онкель, ты не прав - никакой принципиальной разницы в хексах для ISP и хексах для дудки нет.
Тогда расходимся.
да спасибо, скачал чью-то сборку minicore, да там уже имеются оптибуты и бутлодеры как на фото