Рабочая группа Rust Embedded, созданная для разработки технологий повышения качества и безопасности приложений, прошивок и драйверов к встраиваемым системам, представила первый выпуск фреймворка embedded-hal, предоставляющего набор программных интерфейсов для взаимодействия с периферией, обычно применяемой с микроконтроллерами (например, предоставляются типажи для работы с GPIO, UART, SPI и I2C). Наработки проекта написаны на языке Rust и распространяются под лицензией Apache 2.0...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=60435
Изобрели велосипед, но зато на Расте.
таки велосипед?
а на других языках что есть?
как удобно подключить к своему проекту?
Самое древнее что приходит в голову это JavaME. Полная абстракция и безопасность.
Обыкновенные традиционные вбросы про "велосипеды", причем очень толстые, выдающие с головой недалекость вбрасывателей.Каждый следующий выводок таких троллей повторяется ошибки предыдущих, за множество лет как существую сами велосипеды, это у этих троллей ничего не продвинулось.
Велосипеды изобретены однажды, а почему тогда постоянно создаются разные их модификации? Почему бы не пользоваться только теми велосипедами которые делались тогда когда и были изобретены?
Вот сами и езжайте на тех самых велосипедах! Вы на них и ездите, они застряли в вашем ограниченном сознании, с которым дальше расхожей поговорки, которая вообще-то чисто по логике с самими велосипедами применяется совсем к другим случаям - вы никуда дальше продвинуться не можете!
И просто изливаете тут боль от вашей собственной зависти к талантам других людей!
> Почему тогда постоянно создаются разные их модификации?Да потому, что создателям очередных велосипедов кушать хочется. А изобрести что то, действительно, своё они не в состоянии. Вот и приходится в очередной раз "изобретать" велосипед.
> таки велосипед?
> а на других языках что есть?Калокубы и прочие STM HAL-ы, выдающие уровень програмизда с головой :). Видимо такие же но от хруста вон то затеяли.
> как удобно подключить к своему проекту?
С такими вопросами вообще лучше всего ардуину использовать. По этому параметру вне конкуренции для ламонубов.
У дедов модно писать драйвер с нуля, для каждой реализации SPI, отличающейся базовым адресом/парой битов в регистрах? Оче интеллектуальное занятие.
> Калокубы и прочие STM HAL-ы, выдающие уровень програмизда с головой :). Видимо такие же но от хруста вон то затеяли.
> У дедов модно писать драйвер с нуля, для каждой реализации SPI, отличающейся базовым адресом/парой битов в регистрах? Оче интеллектуальное занятие.Обыкновенная _зависть_!
Деды может и не такие уж и деды,
а просто знают и разумеют то, чего не можете вы!
Может разумеют. А может и просто страдают по старости лет от NIH-синдрома. А может и вовсе боятся, что окажутся невостребованными с появлением новых инструментов.
> Может разумеют. А может и просто страдают по старости лет от NIH-синдрома.В может просто вы продолжаете пытаться оправдать вашу зависть на почве бездарности.
> А может и вовсе боятся, что окажутся невостребованными с появлением новых инструментов.Сами себе противоречите - это на Rust то инструменты не новые?))) Вы же сами возмущаетесь, что "велосипеды" слишком страшат вас своей новизной, но обзываете их творцов дедами и как будто это они, а не вы боитесь чего то нового!
Что и требовалось показать, у кого что болит... И еще и под лавиной эмоций от вашей зависти и страхов перед новым, даже ваших собственных противоречий не видите, что просто отражаете сами себя!
Это что-то вроде std, но для встроенных систем.
То есть противоречащая самой природе embedded сущность.
Конечно, пусть каждый пишет свой велосипед.
Нужно же как обосновать сроки разработки (а заодно сделать себя более незаменимым)
Больше интересно как они намереваются волшебным образом скрыть особенности разных железных платформ под слоем абстракции, что из этого получится и какой ценой.
Там документация есть. После беглого взгляда станет понятно, чем эта библиотека является и чем не является.
Документация у них очень скудная, что уже плохой признак.
Вы на свет что ли лезете, демоны? Нормальная документация, открой почитай.
В отличии от тебя открыл и почитал.
https://github.com/rust-embedded/embedded-hal/tree/master/docs
Три файла и CoC вот и вся твоя документация.
Документация хранится вместе с кодом, то что ты открыл - это заметки, которые мейнтейнерам нужны. Вот отрендереные онлайн-версии документации:https://docs.rs/embedded-hal/latest/embedded_hal/
https://docs.rs/embedded-hal-async/latest/embedded_hal_async/
https://docs.rs/embedded-hal-nb/latest/embedded_hal_nb/
https://docs.rs/embedded-hal-bus/latest/embedded_hal_bus/https://docs.rs/embedded-can/latest/embedded_can/
https://docs.rs/embedded-io/latest/embedded_io/
https://docs.rs/embedded-io-async/latest/embedded_io_async/
https://docs.rs/embedded-io-adapters/latest/embedded_io_adap.../
сгенеренная из комментариев к коду документация - лучшая документация. Подтверждаю.
Сам-то в нее заглядывал? Там одни названия функций из комментариев с редкими описаниями. Ни на один вопрос о проекте она не отвечает. Doxygen они для себя открыли.
Я тебя очень сильно удивлю, но документация именно так и выглядит. Можешь открыть ГОСТ, например, и увидеть требования к РКД. "О проекте" - это не документация, а README.md. Попробуй устроиться на работу все таки.
я тебя очень сильно удивлю, но документация выглядит так: https://sourceware.org/glibc/manual/>Можешь открыть ГОСТ, например, и увидеть требования к РКД.
подтереться твоим гостом можно, разве что ^_^
Ничего, что Glibc на порядки старше этого проекта?>подтереться твоим гостом можно, разве что
Ну это в твоём духе будет. Подтереться, пожрать, покекать над мемами. Поколение даунов.
> Ничего, что Glibc на порядки старше этого проекта?Ну, вот, того же года что и этот проект:
http://www.jemarch.net/poke-3.3-manual/Тока... это ж бородатики из GNU. Чой они могут, дыряшки только пейсать, не то что сесуриту-хрустоманы, рожающие шшшшэдэвры.
>>подтереться твоим гостом можно, разве что
> Ну это в твоём духе будет. Подтереться, пожрать, покекать над мемами. Поколение
> даунов.Эт да. Чой мы могём. Могли б писать по госту, но приходится... так... качественный софт, мануалы, интеграция с эмаксом... Дауны, одним словом. ^_^
> я тебя очень сильно удивлю, но документация выглядит так: https://sourceware.org/glibc/manual/Ну да, весьма неплохо, только людям, не таким как ты, самодостаточно того, что есть в самом Rust и в коде, такие люли всегда ядро любого творческого процесса, а не такие, как ты.
Ты просто уже потребмтель разжеванных мануалов, которые на самом то деле тебя на этом уровне и запирают. А что ты еще можешь, кроме того, что мануалы читать? Их же еще после прочтения понимать надо! Сам факт чтения тобой ничего тебе не гарантирует! И те кто действительно понимают, им такие мануалы не особо то и нужны!
Тебя просто бесит, что есть люди не такие, как ты, и им быть такими горвздо лучше, чем быть как ты.
А иначе ты бы довольствовался теми мануалами, что ты показал, они делалм бы тебя счастливым, и ты не возмущался бы по сторонам.
это гениально, серьёзно. снимаю шляпу. xD
> это гениально, серьёзно. снимаю шляпу. xDда, возрпзить тебе нечем
Она есть, что для ембеда уже невероятное достижение. Обычно даже скудной нет, и ты занимаешься увлекательным чтивом в виде заголовочных файлов.
Вот вся необходимая разработчикам документация:
https://github.com/rust-embedded/embedded-hal/blob/master/CO...
Так написали же, каким образом:"... т.е. созданный на базе embedded_hal драйвер можно использовать с любыми микроконтроллерами, для которых в пакете предоставляется HAL-прослойка"
Т.е. наверное для каждого устройства должна быть создана соответствующая прослойка. Считай эту прослойку еще более низкоуровневым "драйвером к железке". Это как с видеокартами и их поддержкой в ОС для прикладух - есть "интерфейсное апи"/фреймворк OpenGL/DirectX/Vulkan и есть дрова под железку, которые эти апи обеспечивают, скрывая многие внутренние особенности железки. Вот эта вот штука из новости - это условный "Vulcan", а HAL-прослойка (у каждой железки своя) - драйвер. Т.е. для написания игрушки ты работаешь с OpenGL и тебе (почти) всё равно что там за видюха. Здесь же вместо игрушки пишешь драйвер или прошивку и тебе тоже (почти) всё равно что за железка. Понятно что далеко не всё равно - надо же знать какие там ограничения по памяти и какие железячные итерфейсы у нее есть и каких нет.
"embedded сущность" - это "костыль", т.е. оптимизация.
Для embedded разработчиков и так вакансий немного, а уж на таком и подавно не найдешь. Но для домашних проектов сойдет, светодиодом поморгать.
а как лететь в космос без моргающего, вдруг инопланетяне не заметят габариты
Вообще-то всё с точностью до наоборот: сейчас 90-95% вакансий на плюсах - embedded.
От всяких ABB/Siemens заканчивая индусскими галерами, тысячи их.
И это напрягает. Я мог бы туда пойти, но устал работать с железками, там вечно независящие от тебя проблемы. А обычное ПО - сиди себе пиши, никто не мешает.
> А обычное ПО - сиди себе пиши, никто не мешает.Наивный Вы человек... Просто сидеть и писАть - это редкое счастье, когда опытные грамотные бизнес-аналитики (не ты) с заказчиком всю предметную область до последней пылинки вылизали до такой степени, что коту с его яйцами и не снилось, а опытный грамотный архитектор подробно просчитал будущую систему до последнего винтика. А на практике нередко это всё превращается в кошмар вида "нарисуйте мне 7 параллельных красных линий и 3 из них должны быть синими перпендикулярными остальным" и "ну вы же, компутерщики, умные ребята, сами там как-нибудь что-нибудь придумаете" и всё это надо было сделать еще вчера, а еще в процессе разработки это ТЗ, которое вроде бы как бы должно было быть ReadOnly после утверждения, распухает в два-три раза, а ближе к концу проекта тебе еще пытаются рассказать что линии это уже не модно и давай рисовать круги и они должны быть квадратными.
Ага, так немного, что превышает количество специалистов на рынке.
Суть новости: хипсторы ясделяли новую абсракцию.
Ну а кто будет привязывать её к конкретному железу?!.. ой всё, прикладуха не барское дело - нехай деды разбираются!
Если бы ты хоть немного понимал в эмбедеде, то возможно слышал про ST HAL, созданной для чипов stm32 компанией ST.
Котороая может быть применена в большинстве случаев и ее будет достаточно для разработки.
Так что абстракции это хорошо.
Чем бы Rustоманы не тешились, лишь бы проекты не ломали. Лишний гемор для майнтайнеров создают. Из-за них приходится старые пакеты использовать. Один Librsvg чего стоит, его многие проекты в зависимости добавили. Даже GNOME целиком не собрать.
При чем тут embedded к майнтайнерам?
Если бы предыдущая либа не была бы багованым куском, которых никто не хочет или не может исправлять, то на librsvg никто бы не перешел. Поэтому наоборот радуйтесь))
librsvg-rust -> nanorsvg. А так - и старый вполне в ходу. Там нечего добавлять особо или ломать.
>Даже GNOME целиком не собрать.Не, ну плакаться из за librsvg-rust, но хотеть при этом собрать гном - это патология, бро. Оно ж тянет за собой зависимостей, как и весь расто-софт с своими библиотеками, и так же собирается через пень-колоду, с захардкоженными/неработающими флагами и тд и тп. Смысл?
Примеры в студию. А то я uutils собираю и горя не знаю.
https://git.alpinelinux.org/aports/tree/community/uutils-cor...манал я так собирать весь софт и горя не знать. xD
Так, и что тебе здесь не нравится?
всё. это не система сборки, а кал. вот норма:https://crux.nu/ports/crux-3.7/core/coreutils/Pkgfile
при том, что последние "mkdir /bin" и "mv базовые утилиты" это для "separate /usr", и не обязательны для помойки редхатподобных.
Ты здоров? Ты привел какой-то алпайновский скрипт, который от круксового отличается только названием команд системы сборки. Что это должно доказать? Что Ленин гриб?Если тебя башевый цикл смущает, то так и скажи четко. Ну так это алпайновский бред, в nixos такого нет например - https://github.com/NixOS/nixpkgs/blob/nixos-23.11/pkgs/tools...
>Ты здоров?Нет канеш, иначе я б с тобой не общался)
>Ты привел какой-то алпайновский скрипт, который от круксового отличается только названием команд системы сборки.
я привел пример сборки обычного гну корутилсов и растопомойки, где руками создают манстраницы и директории, фетчат исходники либ для каждой сборки, экспортируют env переменные и прочие действия. Нужные для сборки растопомойки, и совершенно лишние, если хочешь собрать себе софт.
>Что это должно доказать? Что Ленин гриб?
тебе это ничего не должно доказать. Я тебе пишу только чтоб другим было видно.
>Если тебя башевый цикл смущает, то так и скажи четко.
Мне пердолиться с сборкой растопомойки смущает.
>в nixos такого нет например
убрали всю помойку за декларативный синтаксис, так и не решив проблему с манстраницами и симлинками. Впрочем, пофиг на ник-сос.
Тяжёлый случай. Ну ничего, я терпеливый.>руками создают манстраницы и директории, фетчат исходники либ для каждой сборки, экспортируют env переменные и прочие действия
На примере скрипта из альпайна, говори до конца, ага. Ну заведи им репорт, чтоб сделали нормальную сборку. Причем тут раст и корутилсы? В логику совсем больно?
>Мне пердолиться с сборкой растопомойки смущает.
Каким образом, если она автоматическая?
>убрали всю помойку за декларативный синтаксис
Карнуто, как ты уберешь помойку, если ПМ ничего не знает о конкретном проекте? Он дёргает обычный сборочный конвейер (такой же как и гну, кстати, внезапно) и хуки для карго.
>не решив проблему с манстраницами и симлинками
Друк, ткни на строчку, где вручную делаются маны и симлинки) Подсказка - ее там нет. И да, в кишках Никса ее тоже нет) Чюдеса, да?
>пофиг на ник-сос.
Ну канешно! Как разбомбили по фактам - так сразу пофиг. Ну ничего, иди пожалуйся своему парню, что злые анонимы тебе порвали туза.
>Тяжёлый случай. Ну ничего, я терпеливый.ты тяжелый и терпеливый?)
>На примере скрипта из альпайна, говори до конца, ага
на примере скрипта из альпайна видно что под капотом у ник-соса, только в ник-сосе пошли по стандартному пути, и забили на маны и симлинки.
>Ну заведи им репорт, чтоб сделали нормальную сборку.
вот это нормальная сборка? xD
https://github.com/NixOS/nixpkgs/tree/master/pkgs/build-supp...
>Причем тут раст и корутилсы?
калософт и калософт.
>Каким образом, если она автоматическая?
в автоматической, симлинки и манстраницы (которые абсолютно бесполезны т.к. повторяют хелпы) не предусмотрены.
>как ты уберешь помойку, если ПМ ничего не знает о конкретном проекте?
Примерно так:
https://github.com/NixOS/nixpkgs/tree/master/pkgs/build-supp...Впрочем, это не решает проблемы.
>рук, ткни на строчку, где вручную делаются маны и симлинки)
вот:
https://git.alpinelinux.org/aports/tree/community/uutils-cor...а в ник-соси этого нет, потому что там и не делаются эти маны:
https://hydra.nixos.org/build/242483713/nixlog/1>Подсказка - ее там нет. И да, в кишках Никса ее тоже нет) Чюдеса, да?
Чудеса что ты такой тяжелый и терпеливый, и совсем не догадливый. xD
>Ну канешно! Как разбомбили по фактам - так сразу пофиг. Ну ничего, иди пожалуйся своему парню, что злые анонимы тебе порвали туза.
с зоны откинулся, или у тя двор такой был... тяжелый. и терпеливый? xD
Чел, ты уже показал свою непригодность и хитренькую поганенькую натуру, так что диалога теперь с тобой не будет. С поганьём не говорю.Давай расскажу как было? Ты пошел, нарыл самый ущербный растовский билд у альпайна. Поскольку билд гну у альпайна ещё сильнее хуже, ты решил схитрить. Потирая лапки нашел билд крукса и решил, что никто не заметит. Не прокатило.
А, и поскольку по твоей странной логике кривой билд скрипт == кривая система сборки ЯП, то выходит, что у сишки кривая сборка. Увы и ах)) Так что теперь давай другим доказывай, что это не так)) Браво! Апплодирую лёжа!
Кстати, можешь другой акк теперь заводить, потому что _такого_ позора тебе здесь не забудут. Здесь всё-таки ещё есть приличные грамотные товарищи.
> Чел, ты уже показал свою непригодность и хитренькую поганенькую натуру, так что
> диалога теперь с тобой не будет. С поганьём не говорю.
> Давай расскажу как было? Ты пошел, нарыл самый ущербный растовский билд у
> альпайна.Разговор ты сам начал о uutils. Я взял первый линк в repology, у альпайна. И поржал с того что хрустоманы считают нормой. Я бы показал билд uutils в круксе, но там нет поехавших еще настолько, чтоб его собирать.
> Поскольку билд гну у альпайна ещё сильнее хуже, ты решил
> схитрить. Потирая лапки нашел билд крукса и решил, что никто не
> заметит. Не прокатило.Поскольку я альпайном не пользуюсь, я привел в пример как я собираю coreutils в круксе. Собери я шлак uutils в круксе, мне б пришлось повторять тот же набор действий что провели в альпайне, плюс выкачивать тонну зависимостей в память, ожидать что из за плохого соединения и/или бэдблоков у меня одна или две зависимости будут с хреновыми чексумами, создать исус, ждать месяц, быть посланым, очистить кэш, опять выкачать тонну зависимостей, и установить какой-то нёх, который не умеет и половины того, что умеет coreutils. Зато безопастно и на расте.
> А, и поскольку по твоей странной логике кривой билд скрипт == кривая
> система сборки ЯПКак может быть кривой система сборки, в которую надо прописать "export RUSTONIG_DYNAMIC_LIBONIG=1" и которая автоматически выкачивает пол-интернета? Да это ж гениально! Приколись, если бы я этот список https://github.com/uutils/coreutils/blob/main/Cargo.lock выкачивал вручную?! Хрустоманы гении, серьёзно.
> Из-за них приходится старые пакеты использовать. Один Librsvg чего стоит, его многие проекты в зависимости добавили.Напомни, сколько-сколько годков librsvg была без мейнтейнера, совершенно никому (в том числе и теперешним кричальщикам "Караул! Все пропало! Там теперь ржавчина!") не нужной, 4 или только 3?
Но оно и понятно -- ведь опеннетным анонимам некогда было мейнтейнить проект, им на опеннете супротив раста воевать надобно было!
и что, за 3 года никто не вписал туда CoC.md? Не переписал систему сборки на meson? Не перенёс проект туда-сюда в гитлабе гнома? Огосспади, да он же сдох совсем было.Не то что щас, https://gitlab.gnome.org/GNOME/librsvg/-/issues/418, можно 4 года сидеть с сломанным тестом сборки, но зато столько активных мейнтейнеров. А старый librsvg который уже сколько, 8 лет без мейнтейнеров?! продолжает работать, собираться, и жрат не просит.
> и что, за 3 года никто не вписал туда CoC.md? Не переписал систему сборки на meson? Не перенёс проект туда-сюда в гитлабе гнома?Не, только клоунадили на опеннете.
> Не то что щас, https://gitlab.gnome.org/GNOME/librsvg/-/issues/418, можно 4 года сидеть
> с сломанным тестом сборки, но зато столько активных мейнтейнеров.
>> does this happen from a clean checkout? I will try to reproduce in the evening.
>> ... Even more confusing, when sha256sum the file it complains about, I got the expected result.Особенно у опеннетных оналитеков, дальше заголовка не читавших, ога.
> А старый librsvg который уже сколько, 8 лет без мейнтейнеров?! продолжает работать, собираться, и жрат не просит.
Но на опеннете почему-то опять ноют.
>Не, только клоунадили на опеннете.Разве ж это клоунада? Вон, клоунада у разрабов-растаманов:
>> Hmm, this is weird. I downloaded the tarball, turned off the wifi to prevent downloads
Вот как софт нужно собирать! xD
>Но на опеннете почему-то опять ноют.
разве ж это нытье, называть эту растаманскую дрисню вместо софта дриснёй? ну, ок, нытьё. ну и чо? :-P
А в чем вообще проблема? За 4 года была одна единственна жалоба, потому что у какого-то васяна не сошлись чексуммы и все сломалось.
Ну так пусть разбирается что у него не так. Диск на беды проверит например.
У остальных все работает.
>А в чем вообще проблема?Проблемы с чтением или с пониманием написанного?
>За 4 года была одна единственна жалоба
Тоесть с чтением проблемы:
>> Jordan Petridis marked #431 (closed) as a duplicate of this issue 4 years ago
Там еще у одного васяна сломалась сборка.
>у какого-то васяна не сошлись чексуммы и все сломалось
у васяна разработчика тоже не сошлись чексумы, не только у васяна что создал исус.
У него тоже нужно проверить диск на беды? А тому васяну, кто создал похожий исус, уже спустя месяц, тоже нужно? xDВ общем, в этой нашей конверсации прекрасно всё. И ты, и эти твои васяны с хрустом.
>>А в чем вообще проблема?
> Проблемы с чтением или с пониманием написанного?У тебя? Не знаю.
>>За 4 года была одна единственна жалоба
> Тоесть с чтением проблемы:
>>> Jordan Petridis marked #431 (closed) as a duplicate of this issue 4 years ago
> Там еще у одного васяна сломалась сборка.Ну т.е. проблема у тебя, как минимум с чтением (иначе ты бы увидел, что там тот же самый чувак, с тем же самым репортом).
>>у какого-то васяна не сошлись чексуммы и все сломалось
> у васяна разработчика тоже не сошлись чексумы, не только у васяна что создал исус.С аглицким у тебя тоже не сошлось?
> У него тоже нужно проверить диск на беды? А тому васяну, кто
> создал похожий исус, уже спустя месяц, тоже нужно? xD
> В общем, в этой нашей конверсации прекрасно всё. И ты, и эти твои васяны с хрустом.Особенно прекрасны метанизация малых водоемов Военством Супротив Раста ...
Хм... те если у него есть проблема, которую повторить не получается, а доп инфы этот гений непредоставляет, то нужно все бросить и разбираться?
Пишется УМВР, тикет закрывается, клоун шагает в известном направлении.> разве ж это нытье, называть эту растаманскую дрисню вместо софта дриснёй?
от того что ты испаржнился тут в комментах, ситуация не изменится)
Не хотите поддерживать свои либы? Значит будете кушать другие, даже если вам оно дрыстней кажется.> ну, ок, нытьё. ну и чо? :-P
Да в общем-то ничего) Могу только поржать с убогих.
>те если у него есть проблема, которую повторить не получается,то отличная система сборки, и софт, и вообще всё.
Полагаю, там софт будет ломаться из за такого:
https://gitlab.gnome.org/GNOME/librsvg/-/issues/939А исусов мало, потому что растаманы на каждый чих предлагают ребутнуть виндавс:
>> I downloaded the tarball, turned off the wifi to prevent downloads, nuked ~/.cargo/{registry, git}
>а доп инфы этот гений непредоставляет,А какая нужна? Создай шаблон тикета с базовыми вопросами. Если не хватает - спроси. Он же не разраб, он жертва хруста. :-D
>то нужно все бросить и разбираться?
нет канешна. кто он такой вообще? пнх он с своими тикетами.
>клоун шагает в известном направлении.
а оставшиеся клоуны продолжают лабать на расте.
>от того что ты испаржнился тут в комментах, ситуация не изменится)
ого какой слог. испражнился на хрустамана)) И да, я не собираюсь менять ситуацию с хрустом: она прекрасна.
>Не хотите поддерживать свои либы? Значит будете кушать другие, даже если вам оно дрыстней кажется.
я пользуюсь старой librsvg и nanorsvg. Кушать будете вы))
>Да в общем-то ничего) Могу только поржать с убогих.
ты чот очень лично воспринимаешь фейлы раста. Расслабься.
>то отличная система сборки, и софт, и вообще всё.А это, я полагаю, другое
https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/issues/106
embedded-hell говорите?
Ну значит что нужно - то можно будет взять и на C++ переписать. Без потери гарантий безопасности - код на расте ведь сам по себе безопасен, а компилятор только проверяет это.
Конечно перепишут на C и C++ если идея покажет себя хотя бы минимально жизнеспособно. О безопасности же нет смысла рассуждать когда идет прямая работа с железом.
Вот мы и дожили до того момента когда уже надо переписывать на С/С++ с раста 😂
То ли еще будет :)
Ну я переписал одну либу на C++ с раста. На Си переписать нельзя - Си - не объектно-ориентированный язык с кастрированной стандартной библиотекой и отсутствующими zero-cost abstractions. В C++ аналоги растопримитивов присутствуют.
это чё за либа такая, что на расте (где одни хелловорды) существовала, а на с/с++ (на которых тонны либ) не было уже написанной и отлаженной годами? :-D
Да были либы. Либо проприетарью платные, либо под жопоэль, то есть тоже платные, либо на пистоне, луа и яваскрипте под пермиссивкой. А на расте была либа под слабым копилефтом, то есть линковать - разрешено. Так как мне компилятор раста на хрен не упал, пришлось переписать. И немного передизайнить под динамическую линковку.
так что за либа, сказочник-жопаэлефоб. :-D
Переписать-то и на Си можно, хоть в объектном стиле, только много boilerplate будет.
>О безопасности же нет смысла рассуждать когда идет прямая работа с железом.Вот так они на сях и пишут. Именно там, где в случае чего, хрен обновишь, безопасность и не нужна. Ведь не может же эмбеддед железка данные из внешнего мира принимать, значит и переполнений буфера быть не может!
В случае, если мы говорим о контроллере для бытового холодильника, то действительно не_важно. Если же говорить про встройку, которая работает в критических условиях, то там код пишут на Ada. Вот уж где реально непробиваемая надёжность, язык, который, по сути, своим синтаксисом учит писать грамотный и безопасный код.
А как же ариан 5, который упал от того, что лог записался поверх параметров полёта?
После чего собственно и появилось понятие статических анализаторов - поскольку сам язык ничего не гарантирует.
Никто от Ады после этого не отказался, а значит дело не в ней было, а в чьих-то шаловливых рученках.>После чего собственно и появилось понятие статических анализаторов
Ого какие откровения пошли. А до этого их не было, ага.
> Никто от Ады после этого не отказался, а значит дело не в ней было, а в чьих-то шаловливых рученках.Да-да, язык безопасный, но проблема в чьих-то "рученках"))
Собственно, об этом я и хотел сказать - дело не в языке. Даже аргументировать самому не пришлось.
>> Никто от Ады после этого не отказался, а значит дело не в ней было, а в чьих-то шаловливых рученках.
> Да-да, язык безопасный, но проблема в чьих-то "рученках"))
> Собственно, об этом я и хотел сказать - дело не в языке.
> Даже аргументировать самому не пришлось.Тоесть дело в языке:
https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=rustя так и знал что нам впаривают дичъ.
Ну что Вы? Чекер всех боровов прочекает. Найдёт того борова, который решит лог записывать поверх полётного задания.
adacore.com/press/adacore-joins-rust-foundation-as-silver-member
О нет! Нас предали!
Или они просто подстелили соломки, ну на всякий случай))?
Внедряются, чтобы уничтожить ))
The software, written in Ada, was included in the Ariane 5 through the reuse of an entire Ariane 4 subsystem despite the fact that the particular software containing the bug, which was just a part of the subsystem, was not required by the Ariane 5 because it has a different preparation sequence than the Ariane 4.
Вот такой вот язык "безопасный", не проверили всё и прострелили себе ногу.
> В случае, если мы говорим о контроллере для бытового холодильника, то действительно не_важно.Это как сказать. Если твой контроллер на 10% проданных холодильников спалит инвертор, и сделает это до истечения срока гарантии, то ты нечаянно можешь остаться без прибыли.
> можно будет взять и на C++ переписать. Без потери гарантий безопасностиЭто непонимание модели предоставления гарантий растом. Раст проводит _локальный_ анализ, в рамках которого он доверяет декларациям функций и типов, на которые код ссылается. Например, если функция заявляет, что она принимает &T в качестве аргумента, значит аргумент не меняется. Или она принимает &mut T в качестве аргумента, значит раст проверяет, чтобы не было других ссылок, прежде чем передать.
Таким образом, если ты напишешь на расте memcpy, который будет отказываться работать с пересекающимися кусками памяти (в расте иначе не выйдет на самом деле), то раст может проверить в месте вызова функции, что аргументы ссылаются на несвязанные куски памяти. Если же ты напишешь обёртку над этим растовым memcpy или перепишешь его на C++, то C++ уже не сможет этого проверить. И все эти гарантии пошли лесом.
Гарантии и условия, которые необходимо выполнить для этих гарантий, закодированы в декларациях функций и типов. Для этого требуется растовый синтаксис и семантика. Если ты меняешь синтаксис на C++, ты получаешь семантику C++, которая не позволяет говорить вещи, типа "возвращаемый функцией указатель ссылается на память второго аргумента, в неё переданного".
Бессмысленно переписывать, если ты не планируешь потом с кодом массированно работать и вносить изменения или использовать этот код как библиотеку. А если так, то все гарантии идут лесом. Это если не считать тех багов, которые ты привнесёшь переписывая.
Отлично! Главно что он позволяет безопасно работать с памятью))
Со всеми 512-ю байтами.
https://www.youtube.com/watch?v=YyRVOGxRKLg
Написан БРЕД.Когда-то, молодые и ОЧЕНЬ одарённые молодые люди, думали, что мир программирования ограничен ЕС/IBM 360, потом - клонами PDP-11, потом (и - очень долго!), что - x86 (который был ещё при динозаврах и исчезнет тогда, когда Земля будет поглощена Солнцем, ставшим красным гигантом), потом - что весь эмбеддед это - stm32 или esp32... Потом появился отдельный подвид одарённых особей - АРДУИНЩИКИ. Кoторые к эмбедедд имеют такое же отношение, как сёдла к коровам...
А, вот, представьте, что в эмбеддед - да, так и есть, - приходится "лисапеды изобретать"! С каждой новой архитектурой и микроконтроллером! И привязку "стандартного" драйвера ПРИХОДИТСЯ к совершенно разным реализациям одних и тех же интерфейсов делать, у которых - совершено разный набор управляющих, статусных и информационных регистров? и - разные алгоритмы инициализации и порядка работы (и обработка ошибочных ситуаций и сбоев!).Более того, я не помню ни одного случая, чтобы не приходилось переписывать "под свой случай" что-то из "стандартных" библиотек тех или иных микроконтроллеров. ДАЖЕ - из одной линейки!
HAL - ну совсем не волшебное слово и не заклинание. ТЕМ БОЛЕЕ, если работать приходится над "голым" железом и без ОСРВ или "среды поддержки времени исполнения". Тем более. когда стоит задача сделать максимально производительное решение. а НЕ наколеночный "концепт пруф".
Кто-то слышал о "крахе доткомов в начале 2000-х"?
Или - о кризисе 2008-го?
А вот эмбеддеры - ничего этого не знали! И - даже рядом не стояли!
Почему? А - потому, что у них НЕ БЫВАЕТ так, чтобы не было работы.
Ну - просто по специфики отрасли - того самого "лисапедописательства". Потому, что номенклатура процессоров и контроллеров так обширна, что эмбеддер НИКОГДА без работы сидеть не будет или искать её. Уж поверьте эмбеддеру с 1986-го года. В эмбеддерстве не человек работу ищет, а работа - человека.Одно хреново в эмбеддерстве: не все, из программеров, архитекторов или миньеджеров, в нём работать могут. Уровень вхождения, по сравнению с той же "веб-разработкой", - как Эверест по сравнению с горкой в детской песочнице. И "на крыло" в профессии люди только к 30-35 (и, даже,- к 40) годам "становятся"...
А так идея "сделать стандартный HAL" - ничего... Заслуживает звания "точки приложения усилий" по разминке мозгов, наращивания программистских навыков и демонстрации этих навыков публике...
Все через это проходят.
> А - потому, что у них НЕ БЫВАЕТ так, чтобы не было работы.Но там и зарплаты копеечные по сравнению со смузи вэбом и жс фреймворками. Встройка вся эта скорее для идейных кому деньги не так важны. Товарищ работал в военке, в госе, зарплата чуть выше чем у промоутера, зато тешил ЧСВ при каждом удобном случае говорил какой он важный.
Вы - явно НЕ в эмбеддинге работаете... :)))))Гос госу и военка военке - рознь.
Я же вам - не об изобретении очередного "температурного автомата" для ящика с картошкой на балконе толкую...
Товарищу посоветуйте не лениться и немного по-другому со своими начальниками, боссиками и миньеджерами общаться! Для этих хитровыделанных категорий, что колбасой торговать, что микросхемы производить - всё едино.
Если ваш товарищ ещё не понял, то пусть уразумеет, что он попал в подотрасль ИТ, где у него не только ВСЕГДА работа будет, то и эта работа ВСЕГДА ему хлеб с маслом будет на блюдечке с голубой каёмочкой приносить. Пусть не боится искать и выходить на серьёзные фирмы и УЧИТЬСЯ. Конечно лучше крутиться в оборонке, космических исследованиях - там - самые высокие доходы. Или - в области обеспечения безопасности в энергосекторе (особенно - там, где ядерные электростанции). Автоматизация судовождения и управления корабельными установками. Охранные системы. Распознавание образов и первичка анализа звуковых спектров. Радиолокация.
Естественно, что лучше выходить на заказы и работы где-то за пределами России и да и - бывшего СССР. В РФ и рядом - ещё очень много всякой швали в управленческих кругах - мнят себя богами, а к разработчикам, как к людям второго сорта относятся. Эдакое барство, байсто и панство лезет из всех щелей! И - стараются "на схемы сесть", то есть что-то урвать на полукриминале от бюджетирования и сделать разработчика крайним.
Надо их учить.
И приучать платить адекватные деньги тем, кто ЧТО-ТО МОЖЕТ ДЕЛАТЬ.
За рубежом иные разработчики-эмбеддеры иногда выше своих начальников доход имеют + там ещё по патентам и лицензиям в области интеллектуальной собственности доход идёт (сейчас всё меньше идиотов, которые в договорах и контрактах прописывают пункт о безусловной передаче всех прав на код и изобретения фирме-нанимателю! Наконец-то дошлО, что так - ВЫГОДНЕЙ самим нанимателям!)Пусть ваш товарищ просто поймёт, что он счастливый билетик вытянул, если у него голова заточена под проектирование встроенных систем управления.
Просто надо "крутиться" пока работаешь на имя. А потом уже оно тебя кормить будет.
А вы явно в эмбеддинге работаете))
И ваше ЧСВ даже выше чем у того Эвереста)
Нет, мне до ЧСВ веб-разрабов - даже рядом не угадываюсь.
> Просто надо "крутиться" пока работаешь на имя. А потом уже оно тебя кормить будет.В РФ это не работает. Из слов этого же товарища, вкалывает как раб на галере, его начальник ходит как учитель по классу с указкой и бьёт ей по голово, если ты хоть на минуту отвлёкся в окошко посмотреть, унижения, оскорбление и полное осознание, что ты там никто - обычный рядовой (если в армейских терминах). Но.... ЗАТО В ВОЕНКЕ и он ради этого готов терпеть, ведть есть чем понтануться. Я же обычный смузихлёб, рабочий день 8 часов, реально работаю 2-3 часа, остальное время кофе, чай, болтовня, курилка, сидение в телефоне (у товарища ещё и телефоны сдают в сейфы при входе на предприятие). Частных компаний, которые занимаются встройкой в РФ нет, а выехать не каждый сможет и не каждого пригласят. Я бы вот рад был бы тоже уехать, но у меня старые родители, кто если не я за ними будет ухаживать.
Сочувствую товарищу вашему.
То, как он описывает "с линейкой" - сбрасываю на художественное преувеличение.
Но то, как вы сравниваете свою работу с его.... вы - даже не замечаете всего ужаса положения?Да, когда-то я - тоже с таком положении был: выкладываешься по-максимуму, причём в областях, которые типичным смузи-хлёбам - обычно не осилить (там математики, в разном виде, - через край! и код - не тривиальный, и стандартных решений - просто нет, ОСи - нет, даже библиотек, часто, - НЕТ...).
Потом посмотрел, что делаю много (и - много чего, что мои сокурсники или коллеги, кто ушел "пить смузи", просто в принципе уже не смогут делать), а получаю - только "в ноль свести" при минимальных расходах... И то - в случае, если не случилось какого-то непредвиденного форс-мажора (ремонт, поломка чего-то, или со здоровьем серьёзные проблемы у кого-то в семье).
А жизнь проходит...
А в смузи-сосаети - не особо хочется опускаться уровнем.
Иначе - просто потом из этого болота не выберешься!Начал искать. Ушло где-то с месяцев девять-год. Потом начали какие-то заказы "неигрушечные" идти. В резюме работы появились... Работодатели отзывы друг дружке стали давать. Потом подошёл к проектам, где надо было или гражданство НЕроссийское иметь, либо вид на жительство, либо - переезд и поручительство работодателя, с проверкой местными "безопасниками" и правоохранительными органами (обычно хватало справки об отсутствии судимости, переведённой на энное количество языков и заверенное нотариусами или местными судами - зависит от страны). Легче всего было в Германии и Израиле на проект попасть. Тяжелее всего - в ВБ и США (зависит от штата).
Теперь, по прошествии почти 15 лет, вспоминая начальство, задаюсь вопросом: ну, и - кому от вашей дубовой хитровыделанности и жадности с вороватостью, лучше стало? В глобальном смысле...
А ведь по Штатам и Европе - ОГРОМНОЕ количество "нашего народа" работает. И - отлично работает, при соответствующей оплате.
Можно сказать, что, практически во всех изделиях, что у вас дома работают, до того, как его выпустили в Китае, есть железо или код, разработанные людьми, выехавшими из республик бывшего СССР...
Более того, если у вас где-то работает ARM (любого производителя), то, с вероятностью 95% его тестирование произведено системами, где значительный вклад в разработку сделан "нашими людьми".
Ракеты у Маска, софт на марсоходах, управление воздушным движением над Европой, защита энергетических сетей в Европе, софт в управляющих компах в европейских авто...
Вот - почему наши спецы ТАМ - могут это делать и делают, а дома - хрень творится постоянно с неумелостью менеджмента наладить нормально рабочие процессы и организовать производство?
> Уровень вхождения, по сравнению с той же "веб-разработкой", - как Эверест по сравнению с горкой в детской песочнице.Да, да, куда уж вебкамакам до гениев человечества!
А не эти же гении писали прошивку для Тойоты?
Ну, когда машинки сами разгонялись? И которые убили 89 человек?
Которые вы№№№ли такой код в котором расследователи из NHTSA нашли больше 7000 нарушений MISRA?
Одна из функций на 740 строк.
67 функций с цикломатической сложностью больше 50, одна на 146.
Ну и как вишенка на этом овноторте "рекусивная функция при каждой ошибке ребутающая контролер"
Такого себе ни один ардуинщик позволить не мог)И, да! Это же автомотив, оно отвечает за жизни людей!
В общем эмбеддещики - это овнокодеры с самым высоким ЧСВ в мире.
А вы - точно знаете всё до конца в той истории с тоётой? :)))))))
Поищите. Лично вам - очень поучительно будет. :)))
А так - да, пока можете пока поисточать... :)
О, началось... пафосный поучитальный тон и куча скобочек - явный признак что сказать нечего.А какой конец истории?
66 лямов штрафа государству, 25 лямов акционерам, неизвестное кол-во денег выплаченных в частном порядке в качетсве компенсаций за 400 (че-ты-ре-ста!) случаев смерти.
Отзыв 5.5 миллионов авто.
К сожалению не получили штраф на 1.2 ларда, но тут их юристы вно не зря хлеб кушают.Показали всему миру "ипонское качество" (а спустя N лет туда добавила Таката).
Показали что можно овнокодить и сьехать с наказания.
Показали что автомотив это илюзия качественного кода, и эмбедедщик часто пишет плохой код, от которого зависит твоя жизнь.
Эти ваши уникальные эмбеддед камни собирают из стандартных IP блоков. Смотришь в очередной даташит - там опять 16550 (совместимый) уарт. Зачем, зачем, ЗАЧЕМ каждый раз писать для него новый драйвер?
Не порите чушь. Ей - больно! :)
ЗАТЕМ, что там реализации в железе отличаются.
Ну, возьмите, например реализацию для Atmel (X)Mega 128 и - для stm32f103 какого-нибудь!
Вперёд! Всё человечество и даже я, поверьте!, смотрим на вас с надеждой! Пришёл СПАСИТЕЛЬ, который ЗНАЕТ, КАК!... :)))))))Знаете, сколько таких грамотеев-"спасителей" я с конца 1980-х перевидал? :)))
А, ну если есть разные реализации, тогда всё - сворачиваемся, будем для каждого камня с нуля писать. HAL для уартов зделоть невозможно, у ChibiOS/HAL, конечно, получилось, но мы не такие.
> А, ну если есть разные реализации, тогда всё - сворачиваемся, будем для каждого камня с нуля писать. HAL для уартов зделоть невозможно, у ChibiOS/HAL, конечно, получилось, но мы не такие.Угу и у STMicroelectronics получилось сначала сделать Standard Peripherals Library, а потом соорудить STM32CUBE с HAL.
Но возможно Коболистогностик прав и у него не получится)
Может потому, что у него лапки.
Может потому, что он смотрит на всех с вершин эверестов своего чсв.
А может потому что "бабки, $$$$ бабки!" - так ведь можно один и тот же код продать 10 заказчикам, да и поддержке заработать.
Вас волнует ваш ЧСВ и вы хотите об этом поговорить?
Не просветите, а ChibiOS - на каком проценте камней/систем
изделий, в мире, стоит?
Вы - вообще - понимаете, о ЧЁМ говорите? Предмет обсуждения представляете?
А если я хочу потом приложение перевести на FreeRTOS? Или - на RTX (или - ещё какую реализацию CMSIS?)Господи, откуда вы все такие берётесь? Куда лезете? И что тужитесь обсуждать и предлагать???
Дальше.
Я понимаю, если бы был грандиозный съезд, конгрес, или какой-то комитет (не, лучше - КОМИТЕТИЩЕ) организован, чтобы отрасль привести к "общему знаменателю" - сиречь тот самый, пресловутый "HAL" сформировать-описать.
Но вы - вообще представляете разнообразие и номенклатуру микроконтроллеров и вариантов реализаций этих интерфейсов? Или вы думаете, что все уже "переехали" на 32-разрядные системы??? Уверяю вас. что - нет. Есть ещё не мало систем (и - довольно серьёзных), которые и совокупности 16-ти и - ДАЖЕ - 8-разрядных МК используют.
Не говоря о тех, кто уже - "напрочь" в "кремневую компиляцию" ушёл с микроконтроллеров и ВСЁ проектирует на ПЛИС.
Последним - вы какой такой "HAL"предлОжите"? В какой "универсальной вычислительной среде" вы собираетесь их использовать? Там, после компиляции и оптимизации проекта вы даже не сможете понять, где у вас границы блоков/интерфейсов (фиически и по логике работы) расположены! :)))Вот тут один Онаним ляпнул, что все реализуют/клонируют тот самый 16550 для последовательных интерфейсов... Да я - чуть чаем не подавился такому уровню невежества, когда это прочитал! То есть, насколько я понимаю, чел - ВООБЩЕ не в теме и написал наверное всё, что прочитал в книгах, например, у Гука или - ещё их книг ранних 1990-х по "программированию компьютеров ИБМ ПиСи на ассемблере"...
Но, это - совершенно не так. Например, в тех же атмеловских мегах, вообще, отдельного понятия "традиционного УАРТа" НЕТ. Там есть универсальный свой блок последовательной связи, который, будучи отконфгурированным особым образом может работать в разных режимах и стандартах интерфейсов последовательной связи. И там - совершенно не совпадающая, по состояниями и логике работы, с тем ещё 165500-блоком, дисциплина инициализации, штатного режима, обмена с внутренними буферами, настройками и состояниям!
Ну - да, можно, как во взрослых ОС, задать некий "общий стандарт" (назвать его "U(S)ART HAL")... Но, вы представляете, сколько работы надо будет проделать для того, чтобы конкретная железка интерфейса "соответствовала и удовлетворяла" какому-то HAL-у ??? Вы представляете, сколько потерь на этом будет? Сколько кода "лишнего"?
Вот, именно поэтому, эмбеддинг - это ОЧЕНЬ ЧАСТО - именно "лисапедостроение".
Потому, что часто именно подход "от особенностей архитектуры, конструкции и реализации конкретной железки работающего, как конкретный интерфейс", а - не от "общей архитектуры драйверов или HAL", позволяет в эмбеддинге получать наиболее производительные, минимальные (по ресурсам) или оптимальные решения?Народ сильно успехи в процессоростроении разбаловали.
Вы почитайте, что такое, например, RTX2010, где, и на скольких изделиях в США его ставят ДО СИХ ПОР, И - ПОЧЕМУ? И - сравните, например, почему с Опортьюнити столько проблем было (начиная от инверсии приоритетов).
Лет 10-12 назад задавался вопросом, когда всё перепишут на питоне, чем займутся. Так вот!
А - что, разве всё не переписали на Си/Си++?
> А - что, разве всё не переписали на Си/Си++?C был несколькими итерациями раньше
Это - не отменяет сути вопроса.Вообще, для меня успех Питона - второй по значимости когнитивный шок был, после "успеха/взлёта" Винды в 90-х...
Раньше говорили "против всех законов физики"...
А про эти два "успеха" в мире ИТ, теперь в пору говорить "Против всех законов элементарной логики и здравого смысла!" :))))))
Вполне возможно, что у вас очень личное понимание и логики, и здравого смысла.Как уже неоднократно здесь обсуждали, качество - далеко не всегда тот самый критерий, на основе которого делается выбор в пользу того или иного продукта. Гораздо чаще решает фичастость и время выхода на рынок. Потому что именно эти два фактора и дают возможность снять все сливки. А качество потом уж подтягивается. Или не подтягивается, и тогда уж конкуренты предлагают какие-то альтернативы, но задержки всё равно большие.
Скорость, качество, цена - выбирай любые два. Неуж-то не слышали никогда?
> Вообще, для меня успех Питона - второй по значимости когнитивный шок был, после "успеха/взлёта" Винды в 90-х...Я не понимаю, как можно удивляться таким вещам, после того как взлетел js. Взлёт C не настолько отбивает удивлялку, потому что C всегда воспринимается через призму того, что он старпёрский и кошерный, его все изучали в детстве как первый АФИГЕННО ПРАФИСИАЛАНЛЬный язык, и это мешает видеть его таким, какой он есть. Смотришь на C, а видишь популярность C. Но если почитать о состоянии разработки языков и компиляторов к 1970 году, то взлёт C отбивает удивлялку не хуже, чем взлёт js.