hohserg 116 Опубликовано: 31 октября, 2019 Актуальность Раньше, чтобы обновить прошивку дрона или микроконтроллера нужно было записать прошивку на eeprom через компьютер, снять устройство, заменить eeprom через верстак поставить устройство Довольно геморно если устройств много или часто вносятся мелкие изменения во время разработки Решение Чтобы не демонтировать устройство можно отправлять ему прошивку по беспородной сетевой карте. Устройство в свою очередь принимает обнову и применяет ее. Использование Загружаем файлы из этой папки(wget) https://github.com/hohserg1/OpenComputersPrograms/tree/master/wireless_flash Прошиваем наш eeprom прошивкой wireless_flash_eeporm.lua и вставляем в устройство Копируем адрес сетевой карты устройства Запускаем устройство Вызов команды wireless_flash покажет usage Последний использованный адрес сетевой карты устройства запоминается Теперь можем быстро тестировать прошивки Программа пока не особо функциональна, но вполне юзабельна. При разработке ПО для дрона рекомендую юзать планшет. Какие фичи еще стоит добавить(наверное, я это сделаю): Сохранение принятой прошивки Получение текущей прошивки устройства Сохранение множества адресов беспроводных карт 5 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
BrightYC 307 Опубликовано: 31 октября, 2019 (изменено) 42 минуты назад, hohserg сказал: Актуальность Раньше, чтобы обновить прошивку дрона или микроконтроллера нужно было записать прошивку на eeprom через компьютер, снять устройство, заменить eeprom через верстак поставить устройство Довольно геморно если устройств много или часто вносятся мелкие изменения во время разработки Решение Чтобы не демонтировать устройство можно отправлять ему прошивку по беспородной сетевой карте. Устройство в свою очередь принимает обнову и применяет ее. А можно использовать мою программу. Там есть и возврат ошибок, так же там есть интерпретатор(можно вживую, как на компьютере, протестировать какую-то вещь). Там и есть загрузка файлов, и так же можно при желании даже перепрошить дрона=) UPD: А у @Fingercomp эта штука в openprograms уже висит 3 года https://github.com/OpenPrograms/Fingercomp-Programs/tree/master/net-flash Изменено 31 октября, 2019 пользователем BrightYC 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
hohserg Автор темы 116 Опубликовано: 31 октября, 2019 При помощи ПДУ можно тестировать произвольные прошивки? Не только для дрона? 37 минут назад, BrightYC сказал: в openprograms уже висит 3 года @Fingercomp хоть бы пост сделал на форуме Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
BrightYC 307 Опубликовано: 31 октября, 2019 2 часа назад, hohserg сказал: При помощи ПДУ можно тестировать произвольные прошивки? Не только для дрона? Нет, к сожалению это только для дронов=) на самом деле, проще вообще так делать: local handle, data, chunk = component.proxy(component.list("internet")()).request("http://мой-ип/bios.lua"), "" while true do chunk = handle.read(math.huge) if chunk then data = data .. chunk else break end end handle.close() local chunk, err = load(data, "=stdin", "t") if not chunk and err then error(err) end success, err = xpcall(chunk, debug.traceback) if not success and err then error(err) elseif success and not err then for freq = 100, 2000, 100 do computer.beep(freq, .1) end computer.shutdown() end И редактируешь код прямо в редакторе, а еще говорил @Asior что дропбокс позволяет открывать файлы в облаке как файлы на компьютере. Так омжно даже не заморачиваться, а тупо перезагружать, и комп/дрон/мк уже скачал новую прошивку. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Doob 2 692 Опубликовано: 1 ноября, 2019 Ну да, с облаком проще. Я отладку через гит делал. Если сделать сначала проверку версии, то будет универсальный лончер, для чего угодно. https://github.com/DOOBW/geominer/blob/master/firmware.lua Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Asior 502 Опубликовано: 1 ноября, 2019 Да, можно и через дропбокс, но там придется ствить клиент себе на компьютер. Файлы можно обновлять редактируя их прямо у себя в компьютере, дропбокс в течении секунды засекает обновление и перезаливает файл. Кстати если у вас несоразмерно кривые руки что вы умудритесь запороть файл, дропбокс может его откатить на любое другое предыдущее обновление. Только единственное что, не грузите его по многу раз, иначе это будет расценено как раздача или что то типа того и дропбокс заблочит ваш адрес. Хотя у меня такого ни разу не было. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 1 659 Опубликовано: 1 ноября, 2019 1 минуту назад, Asior сказал: Кстати если у вас несоразмерно кривые руки что вы умудритесь запороть файл, дропбокс может его откатить на любое другое предыдущее обновление. А как можно "запороть" файл? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 271 Опубликовано: 1 ноября, 2019 3 часа назад, eu_tomat сказал: А как можно "запороть" файл? Кодить код вне git-репозитория. 2 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
hohserg Автор темы 116 Опубликовано: 1 ноября, 2019 В 31.10.2019 в 18:00, BrightYC сказал: computer.shutdown() Моя прошивка по идее будет быстрее работать - не нужно тратить время на запись в eeprom и перезапуск Когда нужно поменять одну строку или какую-то константу, это может быть ощутимо Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
BrightYC 307 Опубликовано: 1 ноября, 2019 30 минут назад, hohserg сказал: Моя прошивка по идее будет быстрее работать - не нужно тратить время на запись в eeprom и перезапуск Когда нужно поменять одну строку или какую-то константу, это может быть ощутимо Э? computer.shutdown сделан после того, как программа завершила своё исполнение. Т.е если программа - бесконечный цикл, то компьютер никогда не выключится. Это не ощутимо - компьютер запускает программу мгновенно. Быстрее шифт+пкм по дрону/роботу, чем вводить что-то в компьютере. В eeprom программу не записывает - я просто прошиваю любой EEPROM этим кодом - и код загружается в оперативную память. Опять же повторюсь - запуск мгновенный, если файл не раздувать больше 15 килобайт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
hohserg Автор темы 116 Опубликовано: 2 ноября, 2019 Ок, я посмотрел внимательней твой код, он не записывает на eeprom обнову, а также, как мой просто исполняет ее, Отличие в том, что для перезалива прошивки нужно выключить-включить устройство(ну или крашнуть его) Если обнова достается по url, то это, пожалуй, удобнее Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 271 Опубликовано: 2 ноября, 2019 В 31.10.2019 в 19:35, hohserg сказал: @Fingercomp хоть бы пост сделал на форуме Такие проги сродни hello world: их должен велосипедить и костылять каждый сам, я считаю. Выложил в репу, чтобы не потерять. Ну, ещё там интерфейс консольный поудобнее и нет ограничения в 4 киБ. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах