Предложения по наиболее подходящему (наилучшему) языку для программирования встроенной системы?[закрыто]

StackOverflow https://stackoverflow.com/questions/649197

  •  19-08-2019
  •  | 
  •  

Вопрос

Я рассматриваю возможность встроенного кодирования для устройства с частотой примерно 20 МГц, 6 Мб оперативной памяти и процессором ARM32.Кто-нибудь может предложить лучший / наиболее подходящий язык для программирования встроенной системы?Я обдумываю:

  • Lua
  • Крошечный
  • C
  • Java Я
  • C#
  • кто-то предложил JavaScript

Есть какие-нибудь предложения?Спасибо

Редактировать - похоже, C и Lua являются победителями.Ура всем!

Редактировать - Реальное время не является проблемой, это больше зависит от ограниченной оперативной памяти / процессора.

Это было полезно?

Решение

У меня есть используемый Lua на процессоре ARM OMAP.Тесная интеграция Lua с C позволяет использовать metal в любое время, когда вам нужно, а его небольшой размер делает его подходящим для широкого спектра платформ.Я разработал пользовательский интерфейс для своей прошивки в Lua на своем Mac, а затем перенес его на встроенную платформу без каких-либо изменений.

Хотя процессор OMAP был достаточно мощным, чтобы запускать другие языки, такие как Java или Python, я не знал, на какое оборудование я нацеливался, когда запускал код.Луа была надежной ставкой.

Другие советы

Если вы создаете устройство с нуля или напрямую взаимодействуете с нестандартными периферийными устройствами, C - действительно единственный выход.

Если у вас уже есть встроенная операционная система или вы можете без труда ее портировать, у вас может быть больше гибкости при добавлении одного из языков, поддерживающих скрипты.О C # не может быть и речи, если вы не используете WinCE, и тогда вы будете ограничены .NET Micro.

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

C, вероятно, ваш лучший выбор для таких ограниченных ресурсов процессора.

У меня было бы искушение перейти на обычный C, но ведь я пишу C уже почти 30 лет.Lua и TinyPy кажутся мне слишком новыми, экспериментальными;встроенные устройства должны быть очень надежными.

У Java ME есть хорошие стороны.Я не знаю о C # во встроенном мире.

Важно указать, чего вы ожидаете от этого устройства.Это какое-то управляющее приложение?Нужно ли для этого реализовывать алгоритмы?Как насчет поддержки с плавающей запятой?Графический интерфейс?Важна ли производительность?Планируете ли вы использовать операционную систему?

Ответы на эти вопросы являются важнейшей предпосылкой для выбора языка программирования.

Тем не менее, встроенные системы должны быть надежными, поэтому я бы выбрал какое-нибудь проверенное решение.C, вероятно, является наиболее надежным и лучше всего поддерживаемым вариантом для чипов ARM, но YMMV зависит от ваших конкретных потребностей.

C, безусловно, является наиболее используемым языком во встраиваемых системах.Кроме того, это, по -видимому, самый обсуждаемый язык в целом http://www.langpop.com/

Редактировать: хм.Я только что заметил, что термин "встроенный", который вы, кажется, описываете, касается не добавления языка автоматизации в приложение, а втискивания приложения во встроенную платформу.Как советуют другие, если вам это действительно не нужно, пропустите встраиваемые языки и запрограммируйте свое приложение на C.Для этого почти нет накладных расходов во время выполнения, за исключением того, что вы на самом деле используете.

В произвольном порядке Lua, JavaScript и TCL вполне хорошо подходят для встраивания.Lua был для меня самым простым для встраивания.Javascript мог бы будь самым быстрым.Все три имеют хорошую обработку для ненадежного кода, но TCL наиболее надежен, например, ненадежный код может запускать ненадежный код (если ему доверяют настолько сильно).

Если у вас нет доступной ОСРВ, поддерживающей множество альтернативных языков, лучше всего использовать C или C ++ (в зависимости от вашей цепочки компиляторов).

Ваше решение, скорее всего, будет определяться инструментами, доступными для этого процессора.

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

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

C самый лучший

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top