Pull to refresh

Comments 40

www.grisp.org — еще более радикальный подход, предполагающий запуск ERTS напрямую на железе (bare metal Erlang system);


Я так понял (отсюда) что там все-таки не trueЪ bare-metal Erlang, а есть RTEMS.

А так все конечно очень круто. Статья интересная, спасибо, побольше бы таких!
Ага, обвязки они понатаскали. В свое время тоже думалось за железку, в которой после ядра Линукса сразу init-процессом запускается ERTS и поднимает все остальное.

А не попадались мануалы, как под buildroot кросс-компилировать 32-битный .beam из elixir или просто erlang?

Спасибо, интересно. Скажите, а что с энергопотреблением?
Замеры, увы, не делал.
Была шальная мысль взять 18650 и покататься по городу, посмотреть, насколько хватит. Пока не воплотилась.
Зачем так сложно. Мультиметр в режиме амперметра включаем последовательно с источником питания, умножаем ток на напряжение и получаем ватты.
Ну, я, конечно, дурак, но не настолько, чтобы не знать, как это делается. :)
Про батарейку мысль была исключительно с экспериментальной точки зрения, ради посмотреть.
Померял. 220-250 мА с пиками до 270 мА. Но это со включенным WiFi.
И это ничего не дает, если у нас внутри приложение, которое хз как работает и иногда уходит в сон.
укажите, пожалуйста, минимальные требования к flash и ram железки, чтобы вообще запуститься и какой объем flash/ram занимает ваше приложение, как пример. спасибо
Можно танцевать от Carambola 2 — 16 MB Flash and 64 MB DDR2 RAM. Основная беда — ERTS весит почти 10 МБ в пакетах, т.е. флешку оно ест хорошо. Само приложение весит 2 МБ.
По оперативной памяти — у нас иммутабельный язык с GC, т.е. чем больше, тем лучше, но в теории на 32 МБ должно все запускаться и работать.

У меня в статье только MIPS-устройства, но на ARM-овых SoC проблем быть не должно, т.е. можно брать Raspberry Pi, Orange Pi, Banana Pi и т.п.
угу.

Меньше 10 мегабайт — надо писать код, который будет раздирать сами исходники бимов и выбрасывать то, что не используется.

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

Ты debug_info то вырезал?
На прототипе? :) Ниможна.
А так-то да, придется попрыгать.

А попадались какие-нибудь хаки типа реализации CoreErlang messaging на разделяемой памяти, но без копирования?

У классического Erlang модель для микроконтроллеров неподходящая, очень любит глубокое копирование, и поэтому неработоспособен на килобайтах cortex-m0 например

Если вдруг кому то покажется что Linkit дороговат, то есть отличные модули с таким же процессором (да все тоже самое), они на базе mt7688 и отлично находятся на али и заводится с пол оборота.
Linkit 18 баксов, а на али что-то ценьі на голую плату без ног и атмеги 14 евро. Есть волшебньій поиск где дешевле?
есть, вводим mt7688 и смотрим где отправляют лотами у меня выходило порядка 6-7 EUR за штуку с учетом быстрой доставки. Что бы не сочли жуликом:
Скриншот
image
Пробовали запускать ту плату что на картинке у вас? Подойдет ли SDK от linkit?

Можно загнать их прошивку, я так делал, как с duo не сработает, а где только SoC используется — вполне. Ну и в принципе и atmega или что повеселее можно приделать

«Их прошивку», вы чью имеете ввиду?

Linkit, она на офсайте лежит, можно скачать и прошить по uart.

Если уже делали так и все подошло, то это отлично)
Обычно если разработчики отклоняются от рефернс дизайна, то возникают трудности с портированием
Да, прикольно. Только там флешка на 8 МБ по умолчанию. С OpenWRT потренироваться хватит, а вот то, что я описал — уже нет.
Можно по nfs подмонтировать раздел c ERTS, или вообще rootfs

Разные производители модулей — разные блоки памяти, цена особо не варьируется от этого. Которые я заказывал ровно с такой же по размеру флеш памятью. К тому же, никто не запрещает подключить sd карту по spi, заводится в пару команд в openwrt, можно даже смонтировать как rootfs

Было бы интересно почитать про такую практику. С ходу так не гуглится.

Если интересно — напишем, как раз делаю дверной глазок на веб камере (из овна и палок как говорится) для родителей

Ну, это понятно, я просто упредил, что именно в данном случае так по умолчанию.

Buildroot?

Erlang там пакетом из коробки, Elixir нет

добрый день. можно ли описать пример(ы), где востребована подобного уровня начинка? для термометра/трекера/погодной станции — великовато и много ест. для сложного есть малины, апельсины и бананы + внешние «шилды» либо отдельные платы сопряжения.
есть ли реальные случаи, где протестированное железо пошло в использование (не важно, массовое или нет), именно в том виде, в котором «отлаживалось»?
Ну, если учесть, что описанный подход заработал неделю назад, то ответ будет — пока нигде. Планы имеются, но пока рано говорить что-то конкретное.
Ранее я применял Erlang в таких устройствах для отображения картины проходящего трафика и прототипа сигнализации с ретрансляцией видео с камер и получением показателей с кучи датчиков и детекторов.
Можно у вас проконсультроваться, хоть и не совсем по теме?
Есть задача прокинуть удалённо звук, хочу тоже на openwrt это сделать, и вот вопрос возник по поводу железа, у меня есть TL-MR2030 ver1.9, c 4мя мегабайтами памяти, думаете его хватит для такой задачи или надо что-то более серьёзное?
Я только начинаю разбираться, но стало понятно, что надо собирать свою сборку в Image Builder, так как на готовых не поставить совершенно ничего дополнительного.
В теории должно хватить. Звуковые утилиты не сильно прожорливые, можно повыкидывать кучу сетевого софта, если не собираетесь его использовать как роутер.
Как роутер не нужен, а вот модем должен работать.
А повыкидывать можно только через Image Builder? Ничего попроще нет?
Можно попробовать минимальный образ с сайта OpenWRT, а утилиты и модули ядра доставить пакетами.
А минимальный образ он же всё равно к каждому железу свой?
Вы наверное мне ответили. Я то подключил, но примонтировать её не удаётся, не хватает памяти. Видимо надо совсем по другому организовать загрузку прошивки.
Sign up to leave a comment.

Articles