Comments 11
Очень странное.
> что мы живем в мире копеечных 128Гб флешек
флешки на 128 гигабайт живут отдельно от мира встраиваемых систем
Без малого 2 мегабайта на бинарник веб-сервера (кстати, рекомендую добавлять -h к -la ключам) это примерно столько же, сколько идет (далеко не с каждым) RPi Pico.
Поэтому байты экономить может быть и нет смысла, все-таки не 80-ые и 90-ые на дворе, но разбрасываться мегабайтами как-то тоже не комильфо.
флешки на 128 гигабайт живут отдельно от мира встраиваемых систем
Ну даже не знаю, из соседней статьи:
Стартовая модель включает 8 ГБ оперативной памяти и 64 ГБ внутренней памяти.
Так что думаю все несколько проще стало.
на бинарник веб-сервера
Дело в том что это не просто веб-сервер, а целый фреймворк: REST, JSON, авторизация и так далее и тому подобное.
Но главное тут в другом: встраиваемый MRuby дает отделение прикладной логики от системной части, т.е. можно реализовать отдачу html и обработку параметров на скриптах, которые при ошибке не уронят все приложение целиком, а системную часть оставить на Си.
Да, но в тексте статьи вы приводили не одноплатники (которые, кстати, с каким температурным режимом и допустимостью вибраций работают?), а микроконтроллеры.
И вот у них памяти ровно на хэллоу ворлд на веб-сервере или даже меньше.
> встраиваемый MRuby дает отделение прикладной логики от системной части, т.е. можно реализовать отдачу html и обработку параметров на скриптах, которые при ошибке не уронят все приложение целиком, а системную часть оставить на Си.
считается, да.
, а микроконтроллеры.
Вообще речь про embedded разработку, что на сегодняшний день либо arduno/pi либо промавтоматика со своими законами и АСУ.
По крайней мере так обстоят дела в тех проектах к которым я имел или имею отношение - если даже в самокаты сейчас arduno ставят, чтож теперь сделаешь.
Да, но в Arduino у вас нет гигабайтов, а есть килобайты
https://store.arduino.cc/en-cy/products/arduino-mega-2560-rev3

SRAM - 8 KB
EEPROM - 4 KB
Неправильно смешивать МКшки (промышленные или нет) и Single Board PC (промышленные или нет).
Неправильно смешивать
По идее да:
Generally Ethernet is not built into microcontrollers. First you need a jack which can convert Ethernet signals into signals read by a microcontroller (this is generally called 'magnetics'). Then you need a TCP/IP stack, and then on top of that you need DHCP, DNS and whatever other protocols you want to use. So the actual microcontroller you use doesn't matter a whole lot. If you get something very powerful like an ARM with Linux running on it, then developing for it would be very simple, almost the same as writing a network application running on a desktop PC running Linux. Or you could go with something less powerful & cheaper like an AVR or PIC.
Но там же чуть ниже:
Lots of the TI Luminary microcontrollers (ARM Cortex-M3) have an onboard ethernet MAC. It needs an external crystal and ethernet PHY (connector + magnetics).
И как быть?
да сеть может быть даже на более "ущербных" МКшках, я вам не про сеть, я вам про вопрос куда вы двухмегабайтных бинарь на него класть собираетесь.
Вот, к примеру, чуть более жирный вариант, когда есть и сеть на борту:
https://www.espressif.com/sites/default/files/documentation/esp32-c3_datasheet_en.pdf

Supports up to 16 MB external memory
А в чем проблема внешних PHY? Это никак не связано с объемом флешек. У stm32f479(ARM Cortex-M4F) 2 мегабайта флешки. При этом можно спокойно на lwip или freertos tcp/ip http сервер развернуть. А на мощных одноплатниках и так, я думаю, обычный Ruby можно запустить. Получается очень нишевая вещь какая-то.
А на мощных одноплатниках и так, я думаю, обычный Ruby можно запустить. Получается очень нишевая вещь какая-то.
И да и нет. Мощные одноплатники имеют тенденцию перегреваться, что (помимо цены) несколько ограничивает их применение.
Хотя честно говоря тут сложно судить — реалии постоянно меняются, у меня на столе например стоит очень компактный NAS, внутри которого работает полноценный Linux а веб‑интерфейс крутится на полноценном Python.
Ну PIC32MX из примера №3 вполне себе встраиваемая система (там 256КБ ROM и 64КБ RAM). Правда, там вроде бы некая 16 бит разновидность используется на 40КБ.

Ruby и встраиваемые системы