Хекс файл из среды ардуино в МК атмегу через (допустим) программу СинаПро

rush
rush аватар
Offline
Зарегистрирован: 21.05.2019

Подключил через ISP программатор леонардо, определился, прошился, но программа не выполняется( допустим мигать светодиодом с задержкой 1000 , так для проверки),   а так можно вообще?

rush
rush аватар
Offline
Зарегистрирован: 21.05.2019

Или надо отдельно на СИ писать?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

А почему нельзя-то? hex - он и в Африке hex.

RG22EM
Offline
Зарегистрирован: 27.08.2016

ЕвгенийП пишет:

А почему нельзя-то? hex - он и в Африке hex.

если скомпилирован для нужной платы...

rush
rush аватар
Offline
Зарегистрирован: 21.05.2019

ок

Onkel
Offline
Зарегистрирован: 22.02.2016

ЕвгенийП пишет:

А почему нельзя-то? hex - он и в Африке hex.

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

 

-NMi-
Offline
Зарегистрирован: 20.08.2018

Onkel пишет:

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

Вот с этого места и поподробнее.

PS: а кагжетагда PR скармливайу *.hex и он работат?

Гриша
Offline
Зарегистрирован: 27.04.2014

-NMi- пишет:

Onkel пишет:

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

Вот с этого места и поподробнее.

PS: а кагжетагда PR скармливайу *.hex и он работат?

сколько хватает моих скромных знаний, тут главное, чтобы МК был правильно выбран и его ФЬЮЗЫ совпадали, в смысле те, что в МК будем (или не будем шить) и сгенерированый файл под них компилировался... я так с часами по незнанке немного репу чесал - секунды медленно тикали... сообразил конечно быстро, но факт такой был.     

Onkel
Offline
Зарегистрирован: 22.02.2016

-NMi- пишет:

 

Вот с этого места и поподробнее.

PS: а кагжетагда PR скармливайу *.hex и он работат?

Последнюю строку не понял, но в двух словах - isp пишет прямо во флеш куда ему скажешь, а ардуино Ide передает данные программе - загрузчику, по com  порту, а уже загрузчик сам пишет hex код во флеш. Не программатор, а сам мк заполняет флеш. Видите разницу?

 

Гриша
Offline
Зарегистрирован: 27.04.2014

Onkel пишет:

-NMi- пишет:

 

Вот с этого места и поподробнее.

PS: а кагжетагда PR скармливайу *.hex и он работат?

Последнюю строку не понял, но в двух словах - isp пишет прямо во флеш куда ему скажешь, а ардуино Ide передает данные программе - загрузчику, по com  порту, а уже загрузчик сам пишет hex код во флеш. Не программатор, а сам мк заполняет флеш. Видите разницу?

Onkel, вы несколько перепутали и запихнули мух в котлеты, просто попробуйте зашить любым программатором *hex от ардуино через SPI и у вас все получится, если все правильно сделаете. 

SPI не UART с которым вы путаете

Onkel
Offline
Зарегистрирован: 22.02.2016

Нет, не перепутал. Если я написал "через isp" то это для atmega и означает через SPI. Есть три типа hex - загрузчик (boot), исполняемый hex который шьется spi , и   hex который пишется загрузчиком во флеш и принимается через uart. hex'ы разные.

 

-NMi-
Offline
Зарегистрирован: 20.08.2018

Onkel пишет:

но в двух словах - isp пишет прямо во флеш куда ему скажешь, а ардуино Ide передает данные программе - загрузчику, по com  порту, а уже загрузчик сам пишет hex код во флеш. Не программатор, а сам мк заполняет флеш. Видите разницу?

ISP программатор сначала стирает всю флешь а потом ПОСЛЕДОВАТЕЛЬНО пишет ВСЮ область начиная с таблицы векторов и заканчивая областью RWW!!!

BootLoader же НАХОДИТСЯ в области RWW и оттуда (именно ОТТУДОВА!!!) имеет возможность стирать и перезаписывать флешь память. Стирание и последующая запись происходит ПОБЛОЧНО, т.о. сначала бутлоадер загрузит БЛОК в оперативную память (RAM)  посредством ЛЮБОГО интерфейса (UART, SPI, I2C, вААще неважно ) , затем даст команду на СТИРАНИЕ БЛОКА, затем команду ЗАПИСИ БЛОКА и так далее. Запись происходит ПОСЛЕДОВАТЕЛЬНО-ПОБЛОЧНО начиная с области векторов прерываний и заканчивая областью Flash_End.

А теперь ГЛАВНЫЙ вопрос: с какого ПЕРЕПУГУ *.hex не будет РАБОТАТЬ, если он пишется всегда в ОДНИ И ТЕ-ЖЕ АДРЕСА независимо от того, КАК мы его ПИШЕМ.

Шеф, где_разниццо?

rush
rush аватар
Offline
Зарегистрирован: 21.05.2019

Чуть не забыл!!! Беседу можно закрыть, короче решил проблему так:

1. среда дуни умеет работать с атмега8 глянул в файл с бордами

2. там обнаружил фузы

3. пробил что данные фузы рассчитаны на работу атмеги8 только с внешник кристалом

4. установил кварц

5. установил фузы как в борде 

Победа!!!  адекватная работа контроллера

 

Гриша
Offline
Зарегистрирован: 27.04.2014

если не вдаваться в высокие материи, простой блинк сгенерированный ИДЭ и вытащенный его *hex легко зашивается по ISP любым средством.

но перечитал заново вопрос - как понимаю, там еще проще - скорее всего трабла с ФЬЮЗАМИ. Для начала в целевую плату требуется залить загрузчик (он выставит фьюзы), а потом заливать свой код выбрав целевую плату в устройствах, для которой заливали загрузчик. - это если по простому для ТС.      

Гриша
Offline
Зарегистрирован: 27.04.2014

rush пишет:

3. пробил что данные фузы рассчитаны на работу атмеги8 только с внешник кристалом

это если среду не обновлять, на гитхабе можно буты и с кварцами найти и без и на разные напруги и частоты. 

-NMi-
Offline
Зарегистрирован: 20.08.2018

rush пишет:

Победа!!!  адекватная работа контроллера

Паздравляю!

Но мы тут ещё "потрём" темы посерьёзнее фьюзов в 8меге, ты не против, надеюсь?

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

просто надо понять как ТС залил нех в плату, если из иде не важно через порт или через программатор - должна работать.

а в леонардо загрузка вообще отдельная тема, тут онкель прав, сам вожусь и охреневаю

заливаю блинк через ISP, правда в среде дурдуины, и казалось бы там должен быть только блинк - хрен! появляется еще и ком порт в системе, тока прошить через него уже не удастся, пока заново не накатишь загрузчик.

во такие вот дела.

rush
rush аватар
Offline
Зарегистрирован: 21.05.2019

А в среде ардуино есть ли уже готовая плата, которую бы можно было подгрузить в менеджере плат, что бы атмега8 работал на внутреннем кристале, калькулятор загрузчиков уже не работает, серваки у них загнулись что ли.

-NMi-
Offline
Зарегистрирован: 20.08.2018

xDriver пишет:

во такие вот дела.

Скока срецтва ставим Деду на кон?

С вас любые *.hex с любой прошивкой + схема  --- с меня симуляцция в PR.  Срецтво - Деду!!!  Идёт?

rush
rush аватар
Offline
Зарегистрирован: 21.05.2019

Хорошо

Гриша
Offline
Зарегистрирован: 27.04.2014

для затравки: леонардо не пользовался, а вот нано и уно  заливал "arduino as isp" и  потом выбирал целевую плату  по типу МК, фьюзов и залитого загрузчика - вроде особо без проблем (конечно заливка по средствам загрузчика, а не обычная загрузка).  

rush
rush аватар
Offline
Зарегистрирован: 21.05.2019

леонардо также как и уно, у меня вышло  "arduino as isp"

rush
rush аватар
Offline
Зарегистрирован: 21.05.2019

могу видос залить

 

Гриша
Offline
Зарегистрирован: 27.04.2014

rush пишет:

А в среде ардуино есть ли уже готовая плата, которую бы можно было подгрузить в менеджере плат, что бы атмега8 работал на внутреннем кристале, калькулятор загрузчиков уже не работает, серваки у них загнулись что ли.

не помню ссылку, а глянуть негде, позже отпишусь... если получится сегодня. 

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

-NMi- пишет:

xDriver пишет:

во такие вот дела.

Скока срецтва ставим Деду на кон?

С вас любые *.hex с любой прошивкой + схема  --- с меня симуляцция в PR.  Срецтво - Деду!!!  Идёт?

эта... деда по пустякам беспокоить ниЗЯ, а то он своево средства сразу всем пропишет.

bwn
Offline
Зарегистрирован: 25.08.2014

rush пишет:

А в среде ардуино есть ли уже готовая плата, которую бы можно было подгрузить в менеджере плат, что бы атмега8 работал на внутреннем кристале, калькулятор загрузчиков уже не работает, серваки у них загнулись что ли.

64 - LOW; DF - HIGH. Внутренний 8МГц; без BOD; без загрузчика. 
Залить можно просто дудкой или как Гриша предложил. Все работает.

RG22EM
Offline
Зарегистрирован: 27.08.2016

bwn пишет:

rush пишет:

А в среде ардуино есть ли уже готовая плата, которую бы можно было подгрузить в менеджере плат, что бы атмега8 работал на внутреннем кристале, калькулятор загрузчиков уже не работает, серваки у них загнулись что ли.

64 - LOW; DF - HIGH. Внутренний 8МГц; без BOD; без загрузчика. 
Залить можно просто дудкой или как Гриша предложил. Все работает.

я добавил ядро миникоре с гиттхаба, там параметров достаточно, атмега 8 в списке )))

Добавить в настройках и будет счастье, да дальше как обычно в девайсах - установить

Green
Offline
Зарегистрирован: 01.10.2015

Мужики. Абсолютно верно говорит ЕвгенийП - хекс он и в Африке хекс. И неважно кто его будет записывать - хоть ЛЮБОЙ нормальный программатор, хоть загрузчик самого Ардуино. Этот хекс будет записываться во флеш по указанным в нём (хексе) адресам. Но. Если программатор у вас "Arduino as ISP", то в отличие от загрузчика, кроме хекса он ещё будет программировать фьюзы! Те, которые выбраны целевой платой и которые указаны в boards.txt. Вот и все дела. И не имеет значения Леонардо там что либо другое.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Onkel пишет:

ЕвгенийП пишет:

А почему нельзя-то? hex - он и в Африке hex.

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

Не понял про что Вы, но точно не про, про что я.

Если IDE сказать "сохрани как hex", он генерит два файла - с загрузчиком и без. Любой из этих файлов отлично грузится программатором и работает.

Гриша
Offline
Зарегистрирован: 27.04.2014

Гриша пишет:

rush пишет:

А в среде ардуино есть ли уже готовая плата, которую бы можно было подгрузить в менеджере плат, что бы атмега8 работал на внутреннем кристале...

не помню ссылку, а глянуть негде, позже отпишусь... если получится сегодня. 

выше уже написали, пока я до компа добирался, я ставил по этой ссылке minicore пост 15

т.е. я просто продублировал пост выше

RG22EM
Offline
Зарегистрирован: 27.08.2016

Onkel
Offline
Зарегистрирован: 22.02.2016

ЕвгенийП пишет:

 

Не понял про что Вы, но точно не про, про что я.

Если IDE сказать "сохрани как hex", он генерит два файла - с загрузчиком и без. Любой из этих файлов отлично грузится программатором и работает.

Файлы разные? Тогда в чем смысл того что они разные?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Сами подумайте в чём смысл, мне эта дискуссия, правда, неинтересна.

Onkel
Offline
Зарегистрирован: 22.02.2016

Пошел думать.

Гриша
Offline
Зарегистрирован: 27.04.2014

на интерес сделал скрин блинка

UPD если загрузить простой стандарт, то после этого по UART ничего не загрузишь, только по ISP. т.е. бут при каждой перезагрузки по  uart перезаписывается, а без бута экономим место и еще что-то, вот только такие важные вещи в моей голове плохо держаться... что-то там с псом связано и с альтернативным использованием некоторых портов - последнее не утверждаю т.к. еще не добрался до сих глубин. 

-NMi-
Offline
Зарегистрирован: 20.08.2018

Onkel пишет:

Файлы разные? Тогда в чем смысл того что они разные?

ТоварисЧ онкель, мы будем отвечать по существу данной темы или будем фключать шланга?

Гриша
Offline
Зарегистрирован: 27.04.2014

-NMi- пишет:

ТоварисЧ онкель, мы будем отвечать по существу данной темы или будем фключать шланга?

пост 12 и 15... так что и последнее можно. 

b707
Offline
Зарегистрирован: 26.05.2017

-NMi- пишет:

ТоварисЧ онкель, мы будем отвечать по существу данной темы или будем фключать шланга?

пусть подумает... может откровет для себя что-то новое.

Онкель, ты не прав - никакой принципиальной разницы в хексах для ISP и хексах для дудки нет.

-NMi-
Offline
Зарегистрирован: 20.08.2018

Тогда расходимся.

rush
rush аватар
Offline
Зарегистрирован: 21.05.2019

RG22EM пишет:

да спасибо, скачал чью-то сборку minicore, да там уже имеются оптибуты и бутлодеры как на фото