Нужно подобие ОС для Ардуины

Тема в разделе "Микроконтроллеры AVR", создана пользователем Ariadna-on-Line, 9 ноя 2019.

  1. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Видимо это что-то из серии Ардуино-микрокомпьютер. Банальное дело - скомпилировал скетч и хочешь увидеть работу. Отлаживаешь до посиненья на Протеусе. Но - Пишешь в Ардуину- и всё предыдущее в ней ессно стирается, даже если очередное творение размером пару байт. А зачем ? Хочется чтоб всё хранилось на внешнем носителе, который теоретически безразмерный. Нужно подобие однозадачной ОС. Записал её раз и навсегда в Ардуину и забыл. Воткнул, например, SD с хексом (или бинарником, или т.п.) в слот, выбрал номер (название и тп.), и оно работает в монопольном режиме до ресета. Прошу тапками не кидать. Ткните носом. Наверняка такое давно есть, но надо знать что искать.
     
    Последнее редактирование: 9 ноя 2019
  2. parovoZZ

    parovoZZ Гуру

    WiringPI для одноплатников.
     
  3. Ariadna-on-Line

    Ariadna-on-Line Гуру

    ОК. Пошел искать... Нееее - Она для Малин, как я понимаю.
     
  4. parovoZZ

    parovoZZ Гуру

    так я ж написал - для одноплатников. Есть библиотеки для все тех же экранов, датчиков, сервоприводов и прочее, прочее, прочее... Как раз выполняется условие:
     
  5. b707

    b707 Гуру

    при цене наны 130 рублей сильно сомневаюсь, что кто-то этим заморачивался.
    Но если хочется - направление разработки понятно - нужно написать свой бутлоадер, которые будет загружать ХЕКС с внешней карточки
     
  6. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Да. Именно так. Еще тонкость - малочисленность ног процессора. Блок внешнего ЗУ должен быть аппаратно убираем с линий после того как ВГРУЗИЛ данные в процессор, например коммутатором. Это аппаратно реализуется очень просто. Наверняка же кто-то уже приходил к такой идее. И написал подобный бутлоадер.
     
  7. b707

    b707 Гуру

    Зачем? - если взять мегабитную флешку, подключаемую по SPI, например w25qxx - то она займет всего один пин, который при необходимости можно отключать да хоть даже обычным ключом на мосфете...
     
    Ariadna-on-Line нравится это.
  8. asam

    asam Гик

    Та
    Так Атмега не умеет выполнять программы из внешней памяти. Даже если хранить бинарник на SD все равно его, тем или иным способом, прошивать придется. С другой стороны, если запихнуть в ардуино какой- нибудь интрепретатор, тогда программы к нему можно и с SD исполнять. Вроде есть какой то Бэйсик и еще Форт - http://amforth.sourceforge.net/
     
    Ariadna-on-Line нравится это.
  9. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Не, Ведь Ардуино ИДЕ дает бутлоадеру Ардуины готовый компилированный бинарник. И на носителе можно хранить готовый. Тупо вгрузил "тело", освободил коммутатором шины от внешнего ЗУ и перешел в стандартную точку входа. Вроде бы всё. Не носить Ардуину к компу, а только SD от компа к Ардуине.
    ПС. Где тут лежат исходники бутлоадеров ? /:>))))
     
    Последнее редактирование: 10 ноя 2019
  10. SergeiL

    SergeiL Оракул Модератор

    А что вы такое на пару байт записываете?
    Если делать через загрузчик - флэш будет перешиваться при каждом запуске. На сколько флэша хватит?
     
  11. asam

    asam Гик

    Ну можно сделать. Только я не пониманию - в чем принципиальное преимущество. Ну будет ардуино с SD прошиваться, а не с компьютера, То есть мы просто добавляем лишниее звено. Сначала компилируем на компе, потом записываем на SD, а потом с SD прошиваем ардуино. Ну и в чем глубокий смысл? А исходники бутлоадера, например, сдесь - https://github.com/Optiboot/optiboot
     
  12. asam

    asam Гик

    Сделать проверку на то, что если то что надо прошито, то второй раз не прошивать совсем не сложно.
     
    Ariadna-on-Line нравится это.
  13. SergeiL

    SergeiL Оракул Модератор

    Как я понимаю, ТС беспокоится о ресурсе флэш. Два байта, это похоже - небольшое изменение в коде.
    Вопрос, во что выльются эти небольшие изменения, в плане сравнения старого и нового бинарника?
    Не знаю, насколько это нужно?
    Ну прошьёшь раз 10, после изменений,
    ну не сильно это повлияет на ресурс.

    Я никогда не пользовался протеусом.
    Зальёшь, если что то не так, накидаешь вывод в сериал. Проверишь, что не так - исправишь.
     
    Daniil нравится это.
  14. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Загрузчик после ресета проверяет необходимость шиться, и чем конкретно. Как реализовать проверку - другая тема. Тупо шиться после каждого ресета - конечно бессмысленно.
    Да. Такая идея встречалась на "просторах".
    Принципиального преимущества - нету. Просто часто это удобно. Например программатор ПикКит2 может держать автономно прошивки, и работать без ПК. За ссылку - спасибо.
     
    Последнее редактирование: 24 ноя 2019
  15. parovoZZ

    parovoZZ Гуру

    а кто проверку чтения будет осуществлять?
     
  16. timon

    timon Гик

    Не встречал. А как выбрать то? ) Как ввести номер/название? )
    На ум приходит только простенький ногодрыг на ТиниБейсике, там да, это все есть в каком то виде.
     
  17. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Доброй ночи. Зрительная память подсказывает словосочетание - типа "Бутлоадер конструктор". Не подскажете где глянуть ?
     
  18. asam

    asam Гик

    Наверное речь идет про -http://homes-smart.ru/index.php/oborudovanie/arduino/avr-zagruzchik
    Но это совсем не то что надо в данном случае.
     
  19. DetSimen

    DetSimen Guest

    Интерпретатор тебе нужен. (наерна). В ардуине крутится цыкал выборки комманд и их исполнения. А сами комманды могут поступать из Serial, или читаться с SD карты или с внешнего/внутреннего EEPROM или PROGMEM.
    Аха?
     
  20. parovoZZ

    parovoZZ Гуру

    Ну здесь же было решение на JS и именно так, как хочет ТС.