Подтвердить что ты не робот

Любой, кто использует Python для встроенных проектов?

Моя компания использует Python для относительно простого встроенного проекта. Кто-нибудь еще использует Python на встроенных платформах? В целом это хорошо работает для нас, быстро разрабатывает приложения, быстро отлаживается. Мне нравится общая "лаконичность" языка.

Единственная реальная проблема, которую я испытываю в повседневной работе, заключается в том, что отсутствие статической проверки против обычного компилятора может вызвать проблемы, возникающие во время выполнения, например. простой случайный cat строки и int в заявлении на печать может привести к отключению всего приложения.

4b9b3361

Ответ 1

Мы используем python в довольно много встроенных плат с ARM-процессорами и 16 МБ ОЗУ (работает linux).

Он работает очень хорошо, и очень легко сделать собственный код быстро - одна из сильных точек питона.

Что касается надежности кода, мы стараемся иметь 100% -ный охват тестирования. Написание тестов с помощью python очень быстро, и это дает вам прекрасное чувство уверенности. Мы используем скрученный пробный вариант для запуска тестов и отчета по охвату, но есть много других доступных инструментов.

В моем опыте тесты python + более надежны и намного быстрее записываются, чем любые другие альтернативы.

Единственными минусами для встроенной работы является то, что иногда python может быть медленным, а иногда он использует много памяти (относительно говоря). Это еще не привело нас к проблеме остановки шоу, и python довольно легко профилировать как скорость, так и память, если это становится проблемой.

pychecker тоже очень полезен, что будет ловить довольно много распространенных ошибок.

Ответ 2

BTW, см. это сообщение в блоге: " Введите вывод для Python" для интересного обсуждения вывода типа и статической типизации, включая ссылки на некоторые Сообщения в блоге Guido van Rossum, описывающие добавление необязательного статического ввода в Python.

Я согласен с Брюсом Экелем, что лучше практиковать "сильное тестирование", чем полагаться на сильную типизацию. Я думаю, что это одинаково хорошо относится к встроенной разработке.

Ответ 3

Лично я работал над некоторым программным обеспечением, которое работает в устройстве, используемом BusRadio. Это пример встроенного проекта, построенного на Twisted и Python. Устройство представляет собой встроенный процессор XScale, в котором debian-производный, поэтому он может не соответствовать определенным определениям "встроенный", но он довольно маленький: он помещается в приборную панель школьного автобуса.

Возникли некоторые интересные проблемы с использованием Python с большими библиотеками - переводчик может занять довольно много времени, чтобы запустить и загрузить весь код для Twisted на очень медленном чипе, и некоторые вещи нуждались в оптимизации специальных случаев. Однако ни в коем случае динамическая природа Python не была проблемой. Программное обеспечение, о котором идет речь, конечно, не было совершенным, но, по крайней мере, при использовании Twisted простая ошибка программирования не приведет к "подавлению всего приложения". Трассировка будет регистрироваться, и обработка продолжается.

Итак, если вы во встроенной среде достаточно без ограничений, что вы можете использовать Python в первую очередь, это ничем не отличается от разработки "обычных" программ (игр, настольных приложений, веб-приложений). Вам не нужна статическая печать там, и вам это тоже не нужно.

Ответ 4

На моем предыдущем работодателе я хотел немного поиграть со встроенными системами в tinypy, что является "минималистской реализацией Python в 64k кода". (Но я так и не дождался, и у меня больше нет времени.)

Ответ 5

Telit делает модули модема GSM/GPRS, которые включают встроенный интерпретатор Python.

Я сам их не пробовал, поэтому не знаю, как интерпретатор Python сравнивает или отличает от реализации ПК, например, включая модули, пределы памяти RAM и ROM, скорость выполнения и т.д.

Однако, как указал пользователь foresightyj в комментарии, кажется, что они используют Python 1.5.x, который является по-настоящему древней версией, и поэтому мне было бы тяжело относиться к ним серьезно. Разработчикам Python не понравилось бы переходить на такую ​​древнюю версию без множества современных возможностей Python. Я был бы обеспокоен проблемами безопасности с такой старой версией.

Ответ 6

Я работаю над оборудованием для связи с микроволновой связью на основе старого и медленного powerpc и 16 МБ ОЗУ.

Мне удалось перенести интерпретатор Python 2.6.1 на VxWorks, чтобы получить интерпретатор командной строки непосредственно из целевой оболочки или выполнить сценарии python, загруженные на целевую флеш.

Мы использовали эти сценарии для выполнения автотеста на цели или выполнения диагностических процедур. Вот некоторые подробности по всей процедуре: КАК: Port Python to VxWorks

Ответ 7

Единственная реальная проблема, которую я имею в день дневная работа заключается в том, что последний из статических проверка по сравнению с обычным компилятором может вызывают проблемы, которые время выполнения, например. простой случайный кот строки и int в печати выражение может привести к приложение вниз.

Единичные тесты - это ваша единственная безопасность от этих вещей.

Ответ 8

Действительно, Python часто используется как "язык поддержки", в то время как вам нужно писать какие-то тесты, т.е. я был вовлечен в проект, который (основанный на Python) базовый код базы тестов был (есть?) почти такой же большой как основной продукт. Операторы Python работают над QNX, VxWorks - и большинство проблем, которые мы имеем, - это правильно переносить потоки и связанные с сетью части нашего кода.

Возможно, стоит взглянуть на проект OpenMoko там сделано много встроенной разработки в Python.

Вещи для наблюдения: - поддержка модуля расширения Python/C может вести себя довольно странно в зависимости от платформы/ОС - большинство встроенных платформ предлагают совершенно устаревшие версии Python - наконец, вы узнаете, что существует разница между "правильным" встроенным программным обеспечением, в котором каждый бит подсчитывается, и "современным" встроенным программным обеспечением, которое выполняется на процессорах X12c > 412Mhz с более 128 нм, а затем Python просто не соответствует аппаратное обеспечение, на которое вы хотите настроить таргетинг: (

Ответ 9

Мы используем Python здесь, в университете, для встроенных приложений на основе аппаратной платформы Gumstix. Несмотря на более высокую производительность, чем традиционные встроенные системы, мы находим сочетание малого формфактора, низкое энергопотребление (иш) и легкость передачи кода между разработкой на настольных компьютерах и целевым аппаратом неоценимым.

Python также является отличным языком для обучения студентов, и с Gumstix он отлично справляется с работой кода в системе с низким энергопотреблением, а не с головной болью и горя, которая приходит с использованием специальных языков, таких как NesC.

Ответ 10

Моя команда написала встроенное программное обеспечение, сделанное из С++ и Python. Мы решили написать базовые классы и тяжелые вычислительные процедуры на С++. Мы писали логику в Python. Boost библиотеки как клей. Использование boost никогда не бывает легким, но результаты превосходны. Быстро и легко модифицировать. Используя python для представления пользовательских потребностей, мы в состоянии удовлетворить потребности клиентов в реальном времени, изменив код с помощью технологии инъекций. Что-то действительно захватывающее! (хорошо, я выродка;)

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

Чтобы использовать python и С++ вместе, мы должны были строго контролировать ввод.

Ответ 11

Я работал в компании, которая использовала Python на встроенном продукте, основанном на Atmel AVR32 и работающем встроенным Linux. Первоначально микропрограмма была разработана на ПК (из-за отсутствия прототипа рабочего оборудования), а затем перешла на встроенное оборудование, работающее на кросс-компилированном интерпретаторе Python.

Возможность отладки и изменения исходного кода "живого" на устройстве была большим плюсом во время разработки и сэкономила много времени. Большими недостатками были скорость и использование памяти интерпретатора Python.

После первого выпуска прошивки для производства мы портировали критические разделы кода на C/С++. Портирование усилий было довольно простым и привело к улучшению на несколько порядков по быстродействующему коду (как и следовало ожидать).

На самом деле большая часть кода проектирования и производственного тестирования была написана на Python, в основном работает внутри тестового жгута на ПК.

Ответ 12

По моему опыту, Python традиционно используется в среде рабочего стола больше, чем во встроенной области. Есть две причины, связанные с тем, что Python интерпретируется:

  • Языки C/С++ имеют более высокую производительность, чем Python (и это важно во встроенных системах с медленным микроконтроллером).
  • Языки C/С++ имеют более детерминированное время отклика (и это важно в встроенных системах реального времени, контролирующих что-то).

Конечно, поскольку встроенные системы станут быстрее и сокращаются сроки выхода на рынок, Python будет более востребован во встроенном секторе.

Ответ 13

У меня есть сервер Python (с помощью Twisted) и некоторых вспомогательных скриптов, работающих под XP Embedded, и он отлично работает.

Ответ 14

Последние события

  • MicroPython - это быстрая и быстрая реализация языка программирования Python 3, который оптимизирован для работы на микроконтроллере.
  • Европейское космическое агентство (ESA) финансирует дальнейшую разработку MicroPython. Это делается для оценки пригодности языка для приложений на основе пространства, в частности для полезных нагрузок.
  • WiPy 1.0 и 2.0, LoPy и SiPy - это беспроводные платформы MicroPython, продаваемые Pycom. li >

The WiPy 1.0

Ответ 15

Не является ли EVE Online клиентом в реальном времени высокопроизводительный Python?

Ответ 16

Я использую модуль Gatetel GT-HE910, в который встроен модем Telit, включая 3G, GPS, AD, IO и Python 2.7. Это используется для удаленного приложения для сбора данных. Python очень медленный на этих модулях, но нам нужно обновлять каждые 15 минут или в состоянии тревоги, чтобы они работали хорошо.

http://www.gatetel.com/#!gt-series/cscb

Ответ 17

Blockquote Единственная реальная проблема, которую я испытываю в повседневной работе, состоит в том, что последняя статическая проверка против обычного компилятора может вызвать проблемы, возникающие во время выполнения, например. простой случайный cat строки и int в заявлении на печать может привести все приложение вниз

Для меня это огромная сделка. Проблемы, которые вы могли найти во время компиляции и устранить проблему, теперь должны опираться на время выполнения. Не зная тип данных и необходимость писать дополнительную функцию только для проверки типа данных - это проблема. В C. нет необходимости делать это. Как бы вы объявили "volatile" в python?

Blockquote Единственным недостатком встроенной работы является то, что иногда python может быть медленным, и иногда он использует много памяти (относительно говоря). Это еще не привело нас к проблеме остановки шоу, и python довольно легко профилировать как скорость, так и память, если это становится проблемой.

Это тоже огромно. Для Embedded sytems или RTOS ограничение времени очень важно.

Python не обязательно быстро кодировать. Это действительно зависит от того, с каким языком вам комфортно. Честно говоря, мне требуется 1 день, чтобы написать функцию и ненужные объекты ориентации объектов, которые я могу сделать через 2 часа в C. Тестирование настолько неудобно, что мне нужно написать код, py_compile, скопировать pyc в цель, а затем запустить программу, затем python завершает работу с недопустимой переменной или не произносят ошибку заливки или какую-то мелкую вещь.

Мое предложение C toolchain доступно для любой цели. C быстрый, аппаратно ориентированный, сложный и веселый. Stick с C для встроенных систем. Не нужно устанавливать настраиваемые пустые пакеты python, чтобы запустить его.