Опубликован выпуск проекта PikaScript 1.8, развивающего компактный движок для написания приложений для микроконтроллеров на языке Python. PikaScript не привязан к внешним зависимостям и может работать на микроконтроллерах с 4 МБ ОЗУ и 32 КБ Flash, таких как STM32G030C8 и STM32F103C8. Для сравнения для работы MicroPython требуется 16 МБ ОЗУ и 256КБ Flash, а для Snek - 2 МБ ОЗУ и 32 КБ Flash. Код проекта написан на языке Си и распространяется под лицензией MIT...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=57208
что бы зачем???
Чтобы писать под мелкотню и не париться.
А потом, что испёк, то и кушай.Если писать на Питонах, в общем случае этого самого мелкого процессора сразу начинает нехватать, и везде жмёт, и получается ущебрное ПО.
А вот когда нужена логика работы, подразумевающая обновление, особенно случай типа подправить мелочь через Веб интерфейс, то тогда другое дело.
В итоге, и "париться" придётся, плюс ещё и скрипт прицепить, и задействовать по назначению.
> Если писать на Питонах, в общем случае этого самого мелкого процессора сразу начинает нехвататьЧто, у питона алгоритмы длиннее?
Разница производительности в 90 раз
https://github.com/micropython/micropython/wiki/Performance
Какая ерунда. Код на питоне пишется за год вместо 10000 лет, это ли не показатель производительности?
Что там писать под микроконтроллер то? Речь же не о десктопах и серверах.
> Что там писать под микроконтроллер то? Речь же не о десктопах и
> серверах.Сразу видно, что вы не писали софт под реал-тайм, опрос датчиков и первичное преобразование с передачей по сети.
В смысле? Я имею в виду, что на МК не нужно запускать Web-сервер с кучей фреймворков, опрос датчиков и первичное преобразование с передачей по сети это как раз без Питона нужно делать.
> В смысле? Я имею в виду, что на МК не нужно запускать
> Web-сервер с кучей фреймворков, опрос датчиков и первичное преобразование с передачей
> по сети это как раз без Питона нужно делать.Веб-сервер? Куча фреймворков? Вы новость точно читали?
Если речь идёт о прототипировании -- как раз речь идёт именно про Питон. Или про штучное изделие.
И никаких фреймворков в сабже не упоминается. Максимум библиотеки, а использовать библиотеку -- заведомо лучше, чем писать свой велосипед с квадратными колёсами.
И как, много напрототипировали? Питон создан для реалтайма и опроса датчиков как гуано для пуль. Так что скорее если сишник что-то сделает за год, питонер накодит за 3 месяца - а потом 5 лет будет ипстись с ним, потому что макет вот уже почти совсем, вот-вот заработает, вот только тут чуточку заоптимизить, тут капельку обработки ошибок добавить, ой в флеху не лезет, ой оперативка кончается, ой в реалтайме теперь не успевает, а тут чота падает и хрен ппроссыш...Питоняш так то даже из веба уже попросили в пользу игогошки и хруста. Скоро эта хрень проследует за своими предками, как то BASIC и VB.
Почему лучше, конечно, не указывается.
> Почему лучше, конечно, не указывается.Если вам нужно указывать почему -- значит вы студент 2го курса детектед и явно сами себя не обеспечиваете.
Дожили. Выросло поколение, которое думает, что петон - это такой язык исключительно для веба.
> Дожили. Выросло поколение, которое думает, что петон - это такой язык исключительно для веба.Он для всего - и все делает одинаково паршиво. Микроконтроллеры? Игрушка для ламеров. Системная автоматизация? Кусок головняка - вечно ломают, в добавок к общему качеству. Веб? У игогошки и хруста перфоманс на порядки лучше, крупняк резко с него валит. Приложухи на десктоп? Хуже только электрон.
Яп для создания макетов программ из папье-маше.
Какой-нибудь открытый RTOS? Не? Религия не позволяет?
Да и простенький аналог RTOS накидать сейчас не особо напрягаться надо, переключения контекста задачи на аппаратном уровне сделано. Типа STM32 - ldmia, stmdb. Ну а с таймером - так самый недопрограммист должен уметь работать...
Не религия не позволяет, а мозги...точнее их маломощность у разработчика)
Ничего сложного в этом нет, особенно с rtos. Несколько задач, приоритеты, где нужно блокировки, пара кольцевых буферов.
> Разница производительности в 90 раз
> https://github.com/micropython/micropython/wiki/PerformanceВы понятия не имеете, о чём говорите. Питоны, аля сайтон, микро-пайтон и вот этот из сабжа -- транслируются в Си, который компилируется в нативный код. И если программист на Си с кривыми руками -- код на микро-питоне будет работать быстрее раз в 5.
Не пишите больше подобной чуши, пожалуйста.
> транслируются в Си, который компилируется в нативный код
> преобразует Python-код во внутренний байткод Pika Asm, который на конечном устройстве выполняется в специальной виртуальной машине Pika Runtimeгде? а что же требует в микропитоне 256кб флеша для работы как минимум?
> где? а что же требует в микропитоне 256кб флеша для работы как
> минимум?Правильно, новость не читай, сразу пиши:
"Для быстрого начала разработки без оборудования предоставляется симулятор или предлагается плата для разработчиков Pika-Pi-Zero на основе микроконтроллераSTM32G030C8T6 с 64 КБ Flash и 8 КБ ОЗУ,
поддерживающая типовые периферийные интерфейсы (GPIO, TIME, IIC, RGB, KEY, LCD, RGB). Разработчики также подготовили online-генератор проектов и пакетный менеджер PikaPackage."
Онлайн генератор проектов ствит вас в один ряд с "калокубом" (с). Только ниже по иерархии. Куда-то на уровень инфузорий с туфельками.При том даже ардуинщик так то шпрехает на урезанных и специфичных но все же плюсах. И при должном желании имеет шанс развиться в личинку нормального эмбедера, осознав что то что делали либы можно писать и самому, более специфично для задачи (а потому эффективнее в 10 раз чем общее решение на все случаи). И даже калокуб генерит все же сишный код. Подпрокачав скиллы можно потом и без него уже в качестве костыля шпрехать.
А во что можно развиться используя вон ту хню? Более серьезных опций на этом не существует. Пожизненный нуб и ламер? Который может 10% от того что другие с тем же чипом делают? У вон тех то задача понятная: продать как можно больше платок. Ламеры и нубы в этом плане самое оно. А будут ли их потом вообще програмить - да кому какое дело, у таких проектов главное хайпануть и продать =). А почему продать? Хотя платка тривиальная, питоняши же тугие на мозг и сами такое не нарисуют - значит можно слупить три цены за услуги "незаменимых богов".
Вы бы ссылку открыли. Там сравнение именно микропитона с другими решениями.
Дело не в размере алгоритма, они вполне могут быть ещё теми "портянками", а в скорости и реакции на события.Для примера, есть поливалка цветов, на raspberry. Её задача поливать не по датчику влажности, а поливать автономно, не менее месяца полтора десятка растений. И.. нельзя затопить соседей!
Есть две кеги с водой, куча клапанов, насосов, датчиков, две камеры, одна из которых направлена на пол ;).
Аварийный контроль дублируется на си, а основной алгоритм полива на Питоне.
Там можно изголяться и с экономией воды и с включением ламп, и быстродействие ни разу не жмёт. Плюс, можно дистанционно, с телефона мелочи поправить.
Здесь, вроде бы не спешный скрипт, и удобен, и ресурсы не жмут.Возведение простых мигалок лампочками и градусников на Питоне расматривать не стоит, это видимо отдельный вид хобби.
> Здесь, вроде бы не спешный скрипт, и удобен, и ресурсы не жмут.Нет, это не скрипт. На скрин с ассемблером вы, конечно-же внимания не обратили?
> Возведение простых мигалок лампочками и градусников на Питоне расматривать не стоит, это
> видимо отдельный вид хобби.Не только на питоне не стоит, но и на Си не стоит, ни на Расте, ни на Вланге не стоит и вообще ни на чём не стоит. Всё, что не имеет верифицированного компилятора и алгоритма -- всё это не стоит.
> скрин с ассемблером выэто типа джава-байткода, который выполняется в VM. это достижение конечно по сравнению с интерпретатором микропистона.
> это типа джава-байткода, который выполняется в VM. это достижение конечно по сравнению
> с интерпретатором микропистона.Нет. Это байт-код, который транслируется в машинный код. Именно так сделана таблица трансляции в golang на два десятка платформ, также сделана трансляция в Оберон, именно так работает IL на .Net/LLVM и вообще в любом нормальном трансляторе.
В моём случае, на Питоне именно скрипт.До этого были скрипты на си в стиле
#!/usr/bin/grep ...| gcc .. & ./a.out
;)Kcтати, как уже заметили в теме, обсуждаемый вариант требует предварительной компиляции, и скриптом не является, применительно к микроконтроллеру.
А если всё равно сперва компилировать, то зачем нам какой то сырой инструмент вместо стандартного С/С++?
То же самое и к МикроПитону относится в зависимости от специфики применения, то есть если хочется Питон, то бери хотя бы стандартный.
> Kcтати, как уже заметили в теме, обсуждаемый вариант требует предварительной компиляции,
> и скриптом не является, применительно к микроконтроллеру.Что и требовалось доказать.
> А если всё равно сперва компилировать, то зачем нам какой то сырой
> инструмент вместо стандартного С/С++?Сколько синтаксических правил в С/С++ и неопределённого поведения вместе с ними, и сколько синтаксических правил у ассемблера?
> То же самое и к МикроПитону относится в зависимости от специфики применения,
> то есть если хочется Питон, то бери хотя бы стандартный.Нет. Не надо ни диалект, ни стандартный, если есть альтернативы. Если нет -- тогда лучше то, что юзабельно. В данном случае -- точно стандартный питон не катит.
> Аварийный контроль дублируется на си, а основной алгоритм полива на Питоне.
> Там можно изголяться и с экономией воды и с включением ламп, и
> быстродействие ни разу не жмёт. Плюс, можно дистанционно, с телефона мелочи
> поправить.А как контроль затопления сделан? На уровне датчиков и реакции на них? Оно не польет соседей ночью, после очередной мелкой правки с телефона, когда кодер уверен что все ок и свалил спать? Такие штуки вообще лучше 1 раз проверить что все ок - и потом не трогать. Имущество целее! Как вообще "аварийная защита" организована? Хотя-бы на уровне датчиков и электрики?! А то сам пи в аналог не очень умеет, а большая часть цифровых сенсоров для нубов особого доверия не внушают, в том числе и в вопросе их надежности и продуманности.
А камеры это прекрасно - кроме одного момента: в них же смотреть надо?! Это что, атоматизация добавляет рутину вместо ее уменьшения? Или вы смогли неглючный АВТОдетеки протечек по картинке с камеры? Просто если таким уровнем "автоматизации" баловаться можно умную розетку поставить и насос врубать ремотно на немного. Настолько же практично получается - что так дергаться на систему, что эдак.
А таки пачка аналоговых датчиков воткнутых именно в землю, с индивидуальными порогами, показали себя наименее дурным вариантом. Иначе всегда есть шанс пересушить или перелить (в этом случае камера на пол, конечно, покажет искомое... только вопрос насколько часто вы в нее пялитесь и какой сектор она покрывает, в том смысле "а что уже размокло на...й?!").
Приятно слышать столь интересные вопросы по технической части.>>если таким уровнем "автоматизации" баловаться можно умную розетку поставить и насос врубать
Именно так в деревне уличный полив сделан. Алиса полей клубнику. Алиса накачай второй бак.. ;)
>> лучше 1 раз проверить что все ок
Кто бы спорил.
Как было дело? Кратко. Обычно договаривались с тёщей, что б поливала. Заболела, и сама уехала лечиться.
А отпуск приближается. Когда проверять? Вышло как описал.
Умных розеток, когда это делалось, ещё не было.
А далее комнатный узел полива стал полигоном - симулятором управления теплицей в деревне.
А там, уже относительно проверенный вариант.
>> А таки пачка аналоговых датчиков воткнутых именно в землю, с индивидуальными порогами,Это есть.
Но есть еще два мультиплексора подачи воды, насосы. Где то возникают пробки, и вода не идёт.
Вообще, протечек не было, а вот не подача воды была, недополив или переполив тоже были.>> А как контроль затопления сделан? На уровне датчиков и реакции на них?
Есть датчики воды на полу и на подоконнике, по сигналу с них сразу включится "аппаратная" блокировка, до вмешательства или до запуска анализатора ситуации.
Для "аппаратной" блокировки использутся stm32L0 c дубовым ПО, в виде машины состояний.
Но кег с водой и насосов два комплекта. Не сразу завянет, если и не вмешаться.
Косвенно результат полива контролируется по возрастанию влажности и нескольким расходомерам (от кофеварок), в кегах контролируется уровень воды.>> после очередной мелкой правки с телефона, когда кодер уверен..
В режиме боевого дежурства кодеры не суются, а только создатель заходит, и то посмотреть, что всё хорошо. Это ведь не очень сложная система. Просто слишком иного трубочек.
А в тестовом режиме и дети балуются.>> А камеры это прекрасно - кроме одного момента: в них же смотреть надо?!
Чисто чтоб убедиться, что всё хорошо. Считай это это то типа фермы на телефоне. ;)
>> Или вы смогли неглючный АВТОдетектор протечек по картинке с камеры?Пытался с фильтрами, с лазерами, с наскоку не пошло, и в силу не острой актуальности забросил.
> у питона алгоритмы длиннее?И толще.
Я пишу на 1С. Предпочитаю АПИ и метаданные ...Владимир
> Чтобы писать под мелкотню и не париться.Писать что? Жалкое подобие фирмвары использующее 5% возможностей чипа? С этой байдой STM32 будет убогее ардуины.
Чтобы людей делом занять, а то такой фигней начинают страдать, например ... ээ... PikaScript напишут ..Ну а если серьезно, то может быть полезно в домашней автоматизации/интернет вещей. Например по быстрому и без знаний контроллеров и си повесить поддержку нового протокола / стандарта для той или иной системы умного дома.
... повесить поддержку нового протокола ...
на лампочку, выключатель, отопление и многое другое
Для вас придумали Ардуино Потенто. Что ещё нужно для мигания лампочкой, как не Cortex M7?
Вы когда выйдете за пределы Ардуино, удивитесь что вокруг происходит.
Если так будет дешевле, то так и сделают. Проще приплатить 10 зеленых за камень чем за 10 часов работы спеца
А не проще ли с таким мировоззрением пойти работать и зарабатывать столько же, но в час, играясь с каким-нить дедком?
Для каждой задачи свой инструмент, какой смысл например научным или интеграторам умных домов сотрудникам нанимать программиста си для мк если он сам это сделает на Python за 1 час ? Или держать сотрудника на зп, дороговато
Дороговато до первого инцидента с серьёзным заказчиком, и финансовых потерь.
А если фуфло гнать, и тем более баловаться, то действительно, рациональнее сделать дешево и быстро.
Как вы думаете, сколько людей способны подергать пином на Raspberry PI, а сколько на голом микроконтроллере. Думаю что на Raspberry PI сильно больше людей, так что для них будет быстрее и дешевле сделать это на Raspberry PI.
> Как вы думаете, сколько людей способны подергать пином на Raspberry PI, а
> сколько на голом микроконтроллере.С ардуиной - много. А чего такого написать digitalWrite(...чего, куда)? Это даже вебмакаки осиливают, они за "этакий яваскрипт" сие воспринимают.
Проблемы в основном начинаются если оказывается что этот digitalWrite зело неспешный (как общее решение на все случаи). А более быстро - макаки работу с GPIO кодить не умеют.
Кстати при прямой работе с регистрами у RasPI настолько быстрый GPIO что некоторые им напрямую синтезируют радиоизлучение на сотни МГц. Но, конечно, взмахнуть сотни миллионов раз в секунду лапкой катит только прямым программированием регистров GPIO, стандартное линуксное файловое апи на такое не способно в принципе.
Опять же, зависит от задачи.Если заказчик требует 10к устройств, то имеет смысл нанять схемотехника и программиста мк. Подобать оптимальную схему, оптимальный мк и писать оптимальна прошивку для мк.
А если задача делать тесовый стенд для этих 10к устройств, в количестве 2шт. То имеет смысл взять Raspberry PI и на Python набросать 30 строк.
Иначе это не разумное выбрасывание времени и денег.
Если вы не любите программировать и МК, то зачем вы лезете в это дело?
Видимо вы удивитесь, но я нахожусь куда глубже программирования мк (для меня си на мк это высокоуровневый слой), и мне это нравится. И вопрос всегда не кто чего любит, а в том сколько это стоит. Если это что то будет стоит заоблачных денег, то и вы не сможете себе это позволить, как бы вы это не любили. А микроконтроллер сможете сами спроектировать и разработать ? Нет ? Тогда зачем вы лезете в них ?
И вообще, зачем микроконтроллеры, когда 90% задач можно решить схемотехникой ?
> И вообще, зачем микроконтроллеры, когда 90% задач можно решить схемотехникой ?Микроконтроллеры с фирмварью таки гибче.
Кроме всего прочего, при достаточно продвинутом алгоритме чисто схемотехническое решение получается очень разлапистым по вентилям с одной стороны, и не меньше МК по кристаллу. А с другой - при каком либо баге вся партия чипов пойдет под пресс. А в микроконтроллере отматерятся да другую фирмварь зальют.
Поэтому многие производители стали встраивать в свои железяки множество мелких сервисных микроконтроллеров с фирмварями вместо баааааааальших (и глючных!) машин состояний. Даже не потому что время разработки, а потому что глюки фиксабельны и работает менее глюкаво чем то же сдаленое схемотехнически. Ладно еще если глюк воркэраундится софтом. А если нет?!
Просто пофтыкать - можете подивиться на Ath9k и сколько разных поводов в драйверах есть для вправления мозгов сдуревшей БОЛЬШОЙ машине состояний и ее обвесу. Вот многие чипмейкеры и заменили огромный (и довольно бажный) автомат микроконтроллером с фирмварью. А в случае багов новую версию фирмвари просто дадут, перевыпускать чип уже не требуется. А вот перевыпуск ревизии чипа таки дорого, и никто не будет это делать с ченжлогом "пофиксили 2 бага". А фирмварь можно и так. Поэтому стали делать гибридные подходы, когда вместо огромной схемы мелкое процессорное ядро с фирмварью, а от схем как максимум специализированная периферия этому ядру, облегчающая массовые тяжелые или очень жесткореалтаймные операции.
p.s. кстати однократно программируемые МК почти вымерли по тем же причинам. Они дешевле, но экономия - только до первого залета в алгоритме. Пустить кучу уже запроганых с крутым багом под пресс - совсем не дешевле.
И вообще, зачем микроконтроллеры, когда 90% задач можно решить схемотехникой ?
> И вообще, зачем микроконтроллеры, когда 90% задач можно решить схемотехникой ?Ггг даже просто померять температуру за окном - и скинуть ее по радиоканалу на табло погодной станции - схемотехникой ты таки уже поднапряжешься, имхо. А часы и будильник добавить - пойдешь переделывать чип? А на микроконтроллерах это пара несложных прошивок и даже самого простого мк хватит, если по минимуму. И часы с будильником в V2 - да легко, если часовой кварц предусмотрели.
За это хорошо платят, и этим зарабатывать комфортнее, чем многим другим: работаешь в помещении и на удобном стуле, иногда ещё и по своему расписанию, и прочее, прочее.
Вы даше не поняли смысла коммента. M7 - это как Core i9 для запуска блокнота на Электроне
> как Core i9 для запуска блокнота на ЭлектронеДык не хватит жы!
>как Core i9 для запуска блокнота на ЭлектронеМинимально необходимые требования для полноценной работы?
> Для вас придумали Ардуино Потенто. Что ещё нужно для мигания лампочкой, как
> не Cortex M7?Использовать Ардуино, который виснет раз в полчаса для управления инфраструктурой -- это вы явно погорячились от незнания требований надёжности, и что обещают разрабы и производители Ардуины. Нет, Кортекс вам тут тоже не поможет.
Это была ирония про производительность и абстракцию
> Это была ирония про производительность и абстракциюНадо добавлять теги. Кто в армии служил, тот в цирке не смеётся.
Виснет, то что сами и написали.
А так, конечно и Ардуино библиотеках баги встречаются, про что то и я репорты писал, но чего то такого, что б завесило вменяемую программу не встречал.
> Виснет, то что сами и написали.
> А так, конечно и Ардуино библиотеках баги встречаются, про что то и
> я репорты писал, но чего то такого, что б завесило вменяемую
> программу не встречал.Причём тут либы? Речь про уровень железа, которое виснет само по себе без всяких либ.
Не говорю уже о том, что задающие кварцы имеют точность +/- ползабора.
> Причём тут либы? Речь про уровень железа, которое виснет само по себе без всяких либ.А на этот случай даже в ардуине таки есть вачдог. В STM32 есть еще и хардварный монитор кварца и переход на встроенный RC если кварц заголх. И вот именно вообще совсем целиком повесить STM32 с правильно прописаными option bytes - таки тот еще квест. Придется очень правильный зависатор накодить, обслуживающий два разные вачдога (WWDG к тому же разборчив и к минимаьлному времени сервиса) - и ничего при этом не делающий. Случайно накодить ТАКОЕ - "маловероятно".
> Не говорю уже о том, что задающие кварцы имеют точность +/- ползабора.
Я бы не назвал 20-30ppm _гарантированые_ в даташите ползабором. Ошибка в 20 частей на миллион это не много, лучше только калиюрованые TCXO да потом атомные часы и рубидий разве что.
Если ашипка больше - схемотехника надо было уволить, он ардуинщик :).Впрочем в хрени для наколенщиков все именно так: китаезы лепят первый попавшийся на складе кварц и кондеры в обвес "какие были" а не "как в даташите". Без изучения свойств того что вышло. Ламы сразу не заметят, а потом уже поздняк, продажам не очень мешает и можно слить весь лежак и брак со складов, который иначе пришлось бы вообще утилизировать за свой счет. В этом плане китайцы довольно беспринципные ребята. И спасибо если это кварц. А если это партия отбраковки МК с нормального производителя - вот это уже будет весело. Мало кто сможет в полный тест чипа и его стабильности во всех режимах, поэтому о том что его лоханули он узнает сильно потом.
Без знания архитектуры процессоров и работы систем кодить на Электроне и NodeJS... Знакомо. Или без знания истории и психологии идтии на митинги.
NodeJS, Java, Python и много другого работает в суровом продакшене, вне зависимости как я или кто то еще к этому относится.
Не понимаю, почему люди не хотят писать на хорошем ANSI C, а пишут на какой-то Java.
Не понимаю, зачем вообще микроконтроллеры, процессоры, если есть транзисторы, лампы, резисторы ....
Не понимаю, зачем транзисторы, лампы, если есть реле...
> Не понимаю, зачем транзисторы, лампы, если есть реле...Да вообще реле и сейчас в почете. Правда, только для коммутации нагрузок. Ну, э, с полупроводниками это дороже а зачастую еще и потери напрягают, большой радиатор так то не подарок.
> не зависимости как я или кто то еще к этому относится.Масло подорожало, доллар упал. Всё само!
Вы еще не изобрели процессор, который интерпретирует JS. С Питоном и Java за 20 лет то более менее закостылили.
Я еще на Го прогаю, но не в МК же.
> Я еще на Го прогаю, но не в МК же.А что за двойные такие стандарты? tinygo может и в МК, и в WebAssembly. Вы тут это бросьте.
Я еще раз объясняю: все эти тиниго и прочие аля ардуино, микропитоны с софтварными ногодрыгами лишают гибкости и ограничивают возможности, с ними можно очень быстро вывести Hello, world, подрыгать ногой, но всё остальное уже требует извращений. Один АЦП имеет столько режимов работы, он же не ограничивается чтением резистивного датчика света раз в секунду.
> Я еще раз объясняю: все эти тиниго и прочие аля ардуино,Вы что-то путаете. tinygo -- полноценный компилятор golang через LLVM в нативный код.
> Вы что-то путаете. tinygo -- полноценный компилятор golang через LLVM в нативный код.А он тоже 6-метровый бинарь на хелловорлд компилит? :) А то go так то тоже нативный компилер, но генерит довольно жирный код, стдлиб не менее жирный, а еще они это все статически линковать любят. И получается 6-метровый хелловорлд.
Аксиома: чем больше в яп фич, тем жирнее будут их реализации, стандартная либа и проч. За сам факт их существования. Даже просто удалить неиспользуемый код это уже довольно продвинутый топик, типа LTO, со своими проблемами. А прикиньте, он спокойно удаляет таблицу векторов прерываний, ведь программа ей не пользуется. А то что ее железо вызывает - LLVM сам по себе не знает, значит удалить.
>> Вы что-то путаете. tinygo -- полноценный компилятор golang через LLVM в нативный код.
> А он тоже 6-метровый бинарь на хелловорлд компилит? :)Хелло ворлд -- от 2 до 6 кБ. Зависит от того, для какой платформы.
> А то go
> так то тоже нативный компилер, но генерит довольно жирный код, стдлиб
> не менее жирный, а еще они это все статически линковать любят.
> И получается 6-метровый хелловорлд.Нет. 1.9 МБ. А если пропустите через strip и upx -- 300 кБ.
И далее: бла-бла-бла. Вы явно не в теме, не позорьтесь.
Как на всех этих сабжах сделать например режим энергосбережения, активировать одну периферию, воспользоваться ей, выключить её, сменить частоту ядра, подремать, проснуться. Вот как это всё тут? 5 лет от таблеточной батарейки на счётчике как?
> Как на всех этих сабжах сделать например режим энергосбережения, активировать одну периферию,
> воспользоваться ей, выключить её, сменить частоту ядра, подремать, проснуться. Вот как
> это всё тут? 5 лет от таблеточной батарейки на счётчике как?Легко. Берёте стандартную либу и делаете.
> Легко. Берёте стандартную либу и делаете.Ну, покажите это все. С стандартной либой и реальным проектом который все это делает именно так. Пример такого проекта и стдлибы в студию.
А то даже ардуинщики мониторящие сенсоры чота сами вынуждены половину этого делать - просто потому что кто кроме них специфику их задачи знает? Явно не абстрактная стандартная либа. Ну или откуда б stdlib знать что я на вон то GPIO питание операционника повесил - и надо сперва его включить, подождать, и только потом замеры ADC делать? Это довольно хитрозадое и специфичное для задачи взаимодействие абстракций уже. А без этого операционник будет жрать больше чем весь мк в спячке и таблетка сольется за месяц... очень интересно как это на стдлибе сделать =)
> Ну, покажите это все. С стандартной либой и реальным проектом который все
> это делает именно так. Пример такого проекта и стдлибы в студию.Тыщи их.
> А то даже ардуинщики мониторящие сенсоры чота сами вынуждены половину этого делать
> - просто потому что кто кроме них специфику их задачи знает?Вы определитесь про что вы говорите: либо ножками дрыгать, либо DMA пользовать (для этого либы точно есть).
Есть более простой путь https://www.opennet.dev/opennews/art.shtml?num=55868
Можно еще поискать, где-то встречал
Вы не понимаете, что это вопрос мировоззренческий: кто задаёт тренды в эти Java (Oracle), NodeJS, пока вы грызете печеньки и ходите по опенспейсу с бесплатным кофе-стимулятором, определенные люди знают, что нужно вами руками всё централизовать и глобализировать, чтобы всё по подписке и при строгом наличи интернета, и чтобы все файлики хранились у них, и чтобы банить угодных можно было.
А вы знаете архитектуру процессоров и работу систем?
Архитектуру каких процессоров вы знаете? Расскажите, подробнее
Работу каких систем вы знаете?
Вы судя по комментариям прямо блещете умом, в отличии от "программистов" на js вроде меня
Конечно знаю, я ваял на ассемблере под x86, отлично знал схемотехнику, знаю чем отличается Фон-Неймоновская архитектура от Гарвардской (а вы знаете какая в STM32G0?), мой первый комп был 486dx4 с 24 МБ ОЗУ и 500 Мб харда, и даже через диалап я мог сидеть в интернете. Пока не пришли вы.
Сейчас я прогаю на Си эти самые STM32, в т.ч. на CMSIS и читаю референс и программинг мануалы (слышали такие выражения?).
У меня стойкое ощущение, что мк и 16 битные x86 -- это фигня примитивная, которую совершенно любой сможет за вечер, в достижения вносить такое не стоит. Сложность современных систем действительно возросла на многие порядки, и производительность всё ещё является сдерживающим фактором для безудержного роста сложности и возможностей. Ну а если, скажем, для устройства требуется дорогой процессор, то его никто не купит и его нет смысла производить, если только нет узкоспецифичного спроса на дорогие девайсы от какой-нибудь индустрии и бюджета на всё мероприятие (включая продвижение на рынках). В любой другой ситуации, все бы давно писали только на питонах, а нас окружали бы интересные и дешёвые девайсы с кучей полезных возможностей.
Продолжайте и дальше парсить Number в виде строки
> совершенно любой сможет за вечервсё ясно. одни пишут, что на пистоне быстрее, другие, что на регистрах смогут за вечер.
А что такого сложного появилось кроме нейронных сетей? Половина этой сложности в написании фреймворков для фреймворков. Вот использовать микропитон в микроконтроллере уже сложность: там тупо сложнее передать по тому же UART последовательность байт, т.к. типов же нет. А структуру целиком запулить как без типов? Ах да, у вас там JSON...
с CMSIS пишут лохи. ты по памяти попробуй ;)
Можно и по памяти. Но это другая крайность. Речь идет о натягивании совы на глобус. Микроконтроллер это сова. Глобус - это скрипты в первую очередь для работы с вебнёй, парсинга данных (и даже эти ваши джанги с джавами уже не нужны с приходом нативного Го), ну уж никак не для низкоуровневой работы с периферией, регистрами МК.
> с CMSIS пишут лохи. ты по памяти попробуй ;)Если даташит использовать можно - есть куча проектов которые без CMSIS, они сами оформили регистры как им там хотелось по спекам из шита. И прогают как им там охота.
Некоторые кстати довольно далеко в этом пошли. Скажем опенсорсный загрузчик для распи нагородил там какие-то продвинутые плюсатые абстракции. Вот прям в бутлоадере. Получилось жоскавато, но ничего лучше тупо нет, выбор из этого и блоба, можно еще самому попытаться, мда...
Фу, пацан.
Начинал с Электроники-86, первый мой комп -- ZX Spectrum, первый мой интернет -- модем 24бис и ПитерСтар его почасовой провайдер. STM32 прогаю на кошерном Обероне, и даже не читаю ничего -- нет необходимости, всё давно прочёл. Спойлер: нет, читаю каждый год 6-10 книг и никогда не поздно прочесть ещё чуть-чуть.
Старший программист учавствоваший в разработке мультикс поимел мою жену на моих глазах. Утрись мальчик
> Старший программист учавствоваший в разработке мультикс поимел мою жену на моих глазах.
> Утрись мальчикВедущий инженер проекта ОС УНАС ревьюил мой код спереди и сзади на протяжении нескольких часов. Слабак.
s/программистов/макак/
> по быстрому и без знаний контроллеров и си...выставить свою голую задницу на поругание всякому мимопроходящему.
Я бы сразу подумал про горячую замену кода, не знаю, есть ли она у них.
Чтобы можно было на пердоне писать. Оманая секта.
> что бы зачем???Чтобы постепенно дописать до полной совместимости с CPython, чтобы потом его заменить.
Реквестирую, годно, люто плюсую.
То есть он лучше чем Оберон. Так ведь?!
Умеющих в Python можно встретить гораздо больше.
> То есть он лучше чем Оберон. Так ведь?!Не лучше, но если компилятор Оберона AIX не умеет в какую-то конкретную железку -- то, питон я знаю, и использовать диалект питона для этой конкретной железки, как замену -- при всех недостатках питоняки -- заведомо более хорошее решение под специфическую железку, чем Оберон, которого под эту железку нет. Из списка пока я увидел только ESP32 (* на сколько в курсе -- пока под него Оберона нет *). Впрочем, под ESP32 есть golang, и это заведомо лучше питона, а golang -- это испорченный оберон с каналами и конкурентностью, если что.
Go это дикая помесь си, жыэс и питона с загибом для веьмакак :)
> Go это дикая помесь си, жыэс и питона с загибом для веьмакак
> :)Играл, но не угадал ни одной буквы.
Это Оберон с нативной конкурентостью и с концепцией сигналов из OS Plan-9.
А раньше операционка влезала на дискету...
А еще раньше компьютер едва влезал в спортзал.
Только Ютупчика тогда небыло, потому и влезала. Навеняка эти раритеты и сейчас можно найти где-нибудь, только что с ними делать непонятно. Колибри вот есть,аж целая ОС между прочим.
Чтобы загрузить Ютуб, надо запустить операционную систему браузер, а внутри нее операционную систему AngularJS.
Тут и пишут постоянно про Докер в Докере.D Кодеры явно получше многих все понимают,но сделать при этом ничего не могут.
Кодер априори ничего не может понимать за пределами экосистемы своего фреймворка. А вот программисты с инженерным образованием ВСЁ понимают и принципиально не взаимодействуют со смузи-технологиями.
> А вот программисты с инженерным образованием ВСЁ понимаютЭто которые местные комментаторы, не отличающие интерпретируемого ЯП от компилируемого?
Сабж больше похож на джаву, интерпретируется в компилированное.
> Это которые местные комментаторы, не отличающие интерпретируемого ЯП от компилируемого?особо зашкварны срачи разводимые от якобы отличающих.
Спасибо большое,не знал, что и тут прослойка. Что же, как есть...
> Чтобы загрузить Ютуб, надо запустить операционную систему браузер, а внутри нее операционную
> систему AngularJS.Забыл про операционную систему "Жизнь".
Ну да, а ведь можно же написать просмотрщик ютуба на чистом асме. Лет за десять.
И прикол в том, что на дискету он всё равно не влезет.
Разучились программировать. Хорошо, допустим АЦП, а если мне надо через DMA строго по таймеру делать замер? А если подкидывать по ДМА в таймер для ШИМ? А если я хочу засыпать и пробуждаться?
Ах да, это же все для погодных станций, светодиодных лент и лампочек. "Умный дом".
Оказывается, можно делать удобные инструменты под каждую нишу, а не пытаться героически штробить стены кувалдой и зубилом во имя великих предков. Обмельчали людишки, бгг.
Наоборот! До тех пор, пока вы кроме кувалды ничего не знаете, что бывает отбойный молоток (DMA), перфоратор (ШИМ), эти абстракции урезают возможности и ограничивают. Но касательно сабжа, конечно, позволяет извратиться через Си-вставки.
> Разучились программировать. Хорошо, допустим АЦП, а если мне надо через DMA строго
> по таймеру делать замер? А если подкидывать по ДМА в таймер
> для ШИМ? А если я хочу засыпать и пробуждаться?
> Ах да, это же все для погодных станций, светодиодных лент и лампочек.
> "Умный дом".Ну кто вам мешает. Берёте импортируете соответствующую либу и пользуете. Что за неуместные истерики?
Там просто нет таких функций и либ, их надо опять же самому сначала на сян наваять, а потом уже притащить в пихон
> Там просто нет таких функций и либ, их надо опять же самому
> сначала на сян наваять, а потом уже притащить в пихонКто вам такое сказал, что таких либ там нет? Почему-то я их там нашёл. И они написаны на Си.
Это вы разучились мыслить. Документацию почитать религия не позволила? Там есть слипы. Там есть ШИМ. Там есть остальное. Берите и делайте свои замеры. Есть сомнения - компилируйте и смотрите, в какой ассемблер оно превратилось.Лишь бы поныть и понты свои кинуть - какой ты "крутой имбедед дивилопир".
>PikaА в качестве маскота надо пикачу.
Отличный дотер.D Пикачу с Айсбергом отличные дотеры,D
Дота это гама дядь,а не net ЯП если чё. xD.
Ух, надо срочно портировать на микроновский MIK32 АМУР.
Не проще ли выучить язык ассемблера ⁉️ чем занимаешься смузихлебством
Да чё сразу то. Хотя бы С.
Был бы он единым, было бы проще. А под каждую архитектуру - ну его нафиг. Уж лучше си...
> Был бы он единым, было бы проще. А под каждую архитектуру - ну его нафиг. Уж лучше си...Проще выучить ассемблер под каждую архитектуру, учитывая то что штука эта примитивная донельзива, чем наизусть помнить все сишные явные и неявные грабли под эти компиляторы и архитектуры и потом проект вдумчиво править чтоб грабли обойти.
Порой быстрее контекстной поиском/заменой и написанием полутора десятка макросов перенести проект на асме вообще под другую архитектуру чем на сях хотя бы это собрать и убедиться что не работает хер пойми где и почему.
☝ этот дело говорит
ведь у компиляторов под каждую архитектуру свои особенности,
особенно если речь идёт о чём-то более сложном, чем мигание светодиодом,
а ассемблеры учатся легко, набор команд простну и молчу уж о том, что на ассемблеры получаешь полный контроль и
максимальную производительность за счёт оптимизации в дебагере
> Не проще ли выучить язык ассемблера ⁉️ чем занимаешься смузихлебствомА на новом контроллере учить новый ассемблер и его начинку?
Почему никто и никогда не учитывает время разработки? Неужели это такие программисты или, все же, диванные эксперты? Можно и на ассемблере, если впереди у вас вечность.
Выучить-то проще (хотя для современных процессоров уже не всё так просто). Писать на нём не проще.
Зачем он нужен, когда есть micro-lisp?
Зачем нужен твой комментарий, если уже есть не такие бессмысленные?
Зачем? Есть же ассемблер и си! Я понимаю, что хочется освоить один язык для всего, но это невозможно. Точнее возможно, но лучше не надо. Это как ломом копать огород.
А зачем си при наличии ассемблера?
Позорище.
Деды с "АСМом" и отцы с "С" и железобетонным "ComputerScience" - запускали "Voyager1", "Voyager2", "Кассини", "Гюйгенс" и т.д. , а теперь что?Нахер этот питухон. Душить змею на микроконтролах - такое себе.
Невежество. Гнать в шею питухонистов. Никогда не понимал и не хочу понимать варварского расхода железа и времени через интерпретатор. Это как перенести бытовую табуретку в соседнюю комнату посредством жд-вагона и грузчиков.
А теперь квадрокоптеры из модулей.
Насчет экономии кремния взамен человеческой жизни это конечно тоже крайность, даже если кризис создан искусственно как сейчас, чтобы производить меньше, а продавать дороже. Но есть несложный инструмент в виде Си, на нём тупо удобнее писать под МК и ничего лишнего. Если нужно сложнее, то есть С++ либы и прочие готовые библиотеки.
это для тех ущербных которые кроме питона ничего не могут? ни lua, ни Javascript, ни forth
Способен работать на микроконтроллерах с 4 кб ОЗУ это хорошо, но че про скорость ни слова, которая мягко говоря где то на уровне bash
куда катится мир...
Вообще надо было назвать - PipkaScripta, или PipirkaScript
Есть еще одно подобное поделие
Выпуск Snek 1.6, Python-подобного языка программирования для встраиваемых систем
https://jira.phoenixit.ru/browse/FKIS-915
Попросите админа удалить прошлый коммент
Выпуск Snek 1.6, Python-подобного языка программирования для встраиваемых систем
Вот правильная ссылка https://www.opennet.dev/opennews/art.shtml?num=55625