Запись переменных в Arduino с компа без смены прошивки...

Jek
Offline
Зарегистрирован: 05.01.2014

Господа, подскажите, пожалуйста решение следующего вопроса....

Перед использованием устройства на Ардуине, в неё необходимо залить конфигурацию, т. е. набор переменных. Делается один раз при установке устройства на объект. Сейчас это делается правкой переменных в скетче и заливкой его на Ардуину.

Как можно заливать конфигурацию без перезаливки всего скетча?

toc
Offline
Зарегистрирован: 09.02.2013

В каком исходном виде существует "конфигурация"?

Можно поместить в eeprom.

Jek
Offline
Зарегистрирован: 05.01.2014

Конфигурация это десяток байт переменных, вида а=0, в=0, с=1, к=150 и т. п.

В eeprom по-хорошему и записать. Только, можно ли записывать eeprom без затрагивания ранее залитого скетча?

Еще рассматривал вариант внешней sd карточки. Записываем переменные в файл на компе и вставляем в слот на плате устройства. Но это ведет к переделке платы, удорожанию, да и ног свободных на ардуине нет.

 

toc
Offline
Зарегистрирован: 09.02.2013

>> можно ли записывать eeprom без затрагивания ранее залитого скетча?

Уверен, что можно. В папке с ардуино найдите файл avrdude.exe и запустите его примерно так:

avrdude -p m328 -U eeprom:w:eeprom.hex

содержимое файла eeprom.hex будет записано в еепром память микроконтроллера.

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

Еще как вариант сделать по ком порту прием команд.

Jek
Offline
Зарегистрирован: 05.01.2014

toc пишет:
...

содержимое файла eeprom.hex будет записано в еепром память микроконтроллера.

В Arduini IDE нет ведь такого функционала? Как создать этот файл? Где можно почитать?

NeiroN пишет:
Еще как вариант сделать по ком порту прием команд.

Т. е. при каждом запуске устройства, ждать какое-то время данных из ком-порта и если появились, то записывать их в EEPROM?

axill
Offline
Зарегистрирован: 05.09.2011

попробовать использовать директиву EEMEM (точнее это макрос)

описано тут http://www.nongnu.org/avr-libc/user-manual/group__avr__eeprom.html

в avr-gnu toolchain при сборке переменные объявленые такой директивой пакуются в файл с расширением .eep

Это по сути HEX, его програмировать как написали выше без перетирания прошивки

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Грубо и не по Ардуински!  ;)

Jek
Offline
Зарегистрирован: 05.01.2014

Господа, а где нарыть пример hex файла для EEPROM?

MikSer
Offline
Зарегистрирован: 27.01.2012

Добавте функционал к Вашему скетчу, для приема данных по ком порту и записывайте свою структуру данных в EEPROM. На внешнем устройстве напишите ПО для заливки и конфигурирования ваших Ардуин.

Jek
Offline
Зарегистрирован: 05.01.2014

А как это осуществить, хоть примерно?

Как я выше описывал?