Запись переменных в Arduino с компа без смены прошивки...
- Войдите на сайт для отправки комментариев
Пнд, 14/07/2014 - 22:24
Господа, подскажите, пожалуйста решение следующего вопроса....
Перед использованием устройства на Ардуине, в неё необходимо залить конфигурацию, т. е. набор переменных. Делается один раз при установке устройства на объект. Сейчас это делается правкой переменных в скетче и заливкой его на Ардуину.
Как можно заливать конфигурацию без перезаливки всего скетча?
В каком исходном виде существует "конфигурация"?
Можно поместить в eeprom.
Конфигурация это десяток байт переменных, вида а=0, в=0, с=1, к=150 и т. п.
В eeprom по-хорошему и записать. Только, можно ли записывать eeprom без затрагивания ранее залитого скетча?
Еще рассматривал вариант внешней sd карточки. Записываем переменные в файл на компе и вставляем в слот на плате устройства. Но это ведет к переделке платы, удорожанию, да и ног свободных на ардуине нет.
>> можно ли записывать eeprom без затрагивания ранее залитого скетча?
Уверен, что можно. В папке с ардуино найдите файл avrdude.exe и запустите его примерно так:
avrdude -p m328 -U eeprom:w:eeprom.hex
содержимое файла eeprom.hex будет записано в еепром память микроконтроллера.
Еще как вариант сделать по ком порту прием команд.
содержимое файла eeprom.hex будет записано в еепром память микроконтроллера.
В Arduini IDE нет ведь такого функционала? Как создать этот файл? Где можно почитать?
Т. е. при каждом запуске устройства, ждать какое-то время данных из ком-порта и если появились, то записывать их в EEPROM?
попробовать использовать директиву EEMEM (точнее это макрос)
описано тут http://www.nongnu.org/avr-libc/user-manual/group__avr__eeprom.html
в avr-gnu toolchain при сборке переменные объявленые такой директивой пакуются в файл с расширением .eep
Это по сути HEX, его програмировать как написали выше без перетирания прошивки
Грубо и не по Ардуински! ;)
Господа, а где нарыть пример hex файла для EEPROM?
Добавте функционал к Вашему скетчу, для приема данных по ком порту и записывайте свою структуру данных в EEPROM. На внешнем устройстве напишите ПО для заливки и конфигурирования ваших Ардуин.
А как это осуществить, хоть примерно?
Как я выше описывал?