Встроенная разработка платформы в (! C)

Throwables класс Guava

Если у вас есть фактический экземпляр Throwable, Google Guava предоставляет Throwables.getStackTraceAsString() .

Пример:

String s = Throwables.getStackTraceAsString ( myException ) ;

14
задан Shalom Craimer 19 August 2009 в 05:22
поделиться

19 ответов

Forth довольно популярен для встроенной разработки.

кроме того, в то время как Smalltalk, вероятно, не популярен во встроенном сообществе, , встроенная разработка определенно популярна в сообществе Smalltalk.

5
ответ дан 1 December 2019 в 13:59
поделиться

Зависит от микроконтроллера, у многих из них есть C, но компиляторы ужасно, ассемблер является обычно легким и лучшее выполнение, самым эффективным и т.д. Как член Шотландского парламента, avr, и рука хороши для компиляторов C и для тех, которые я был бы и действительно использовать C (в зависимости от проблемы).

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

0
ответ дан 1 December 2019 в 13:59
поделиться

Существует группа людей, работающих для создания Lua жизнеспособным вариантом для встроенной работы. Они предназначаются для, прежде всего, 32-разрядных РУК с 256K Flash и 64K RAM или лучше, и кажутся довольными их работой до сих пор.

Они частично вдохновлены классическим ОСНОВНЫМ Штампом, ОСНОВНЫМ интерпретатором, работающим в умеренно мощной PIC с самой программой, сохраненной в последовательном устройстве EEPROM.

На работе я все еще обслуживаю встроенную систему клиента, которая записана в скомпилированной разновидности ОСНОВНОГО выполнения в ЦП Zilog Z180. Технология 1980-х все вокруг, с большей частью системы все еще создаются из DIP-корпусов с 24 мусорными ведрами в сокетах. Компилятор работает при CP/M-80 выполнении в средстве моделирования Z80, которое самом работает в средстве моделирования MS-DOS, встроенном в Windows. Кроме изумления сдвига, что что-либо продуктивное может быть сделано этот путь (и что можно все еще купить 27C256 ультрафиолетовая стираемая EPROM, и что мой почти 20-летний программист PROM Data/IO все еще работает) мне действительно жаль, что клиент не мог позволить себе переместиться в новый аппаратный дизайн, таким образом, система могла быть переписана на удобном в сопровождении языке.

0
ответ дан 1 December 2019 в 13:59
поделиться
0
ответ дан 1 December 2019 в 13:59
поделиться

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

0
ответ дан 1 December 2019 в 13:59
поделиться

Я использовал EC ++ ( Встроенный C++ ) вполне экстенсивно.

кроме того, PICBasic был популярен у PIC'ers целую вечность теперь.

0
ответ дан 1 December 2019 в 13:59
поделиться

В ранних 90 я сделал большую встроенную разработку на 8 051 Intel PLM51 использования и операционной системе DCX51.

PLM является очень простым языком †“, но очень мощный

Мы теперь используем C

1
ответ дан 1 December 2019 в 13:59
поделиться

Да. Java становится более популярным - много процессоров добавили инструкции, которые принадлежат, прежде всего, Java и подобным языкам (.NET). Кроме того, uclinux работает на микроконтроллерах, таким образом, можно использовать практически любой язык для некоторых больших micros.

Основной все еще распространено, как блок.

Вы будете видеть Ada в определенных правительственных проектах.

И некоторые инженеры даже помещают Lua и другие интерпретаторы на их micros, таким образом, их клиенты могут расширить функциональность.

, Но C является все еще доминирующим.

-Adam

1
ответ дан 1 December 2019 в 13:59
поделиться

Я не использовал меня, но , Bascom довольно популярен для микроконтроллеров AVR. Это - Основной IDE, который позволяет Вам взаимодействовать с периферийными устройствами очень легко. Я встретил аппаратных людей, которые успешно используют его.

1
ответ дан 1 December 2019 в 13:59
поделиться

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

2
ответ дан 1 December 2019 в 13:59
поделиться

Существует Паскаль компилятор для 8 051

0
ответ дан 1 December 2019 в 13:59
поделиться

Pascal, Modula2 тоже работает нормально. По сути, они в значительной степени эквивалентны C, за исключением невозможности сделать alloca (хотя некоторые имеют это как расширение).

Но основной проблемой будет проблема любого компилятора! C: что вы предпочитаете, лучший компилятор / toolchain или язык предпочтений.

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

В прошлом были примеры (Паскали, или даже сильно скомпилированные Основы), но C в основном норма. Я так и не понял почему.

за исключением невозможности сделать alloca (хотя некоторые имеют это как расширение).

Но основной проблемой будет проблема с любым компилятором! C: что вы предпочитаете, лучший компилятор / набор инструментов или язык предпочтений.

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

В прошлом были примеры (Паскали, или даже сильно скомпилированные Основы), но C в основном норма. Я так и не понял почему.

за исключением невозможности сделать alloca (хотя некоторые имеют это как расширение).

Но основной проблемой будет проблема с любым компилятором! C: что вы предпочитаете, лучший компилятор / набор инструментов или язык предпочтений.

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

В прошлом были примеры (Паскали, или даже сильно скомпилированные Основы), но C в основном норма. Я так и не понял почему.

В прошлом были примеры (Паскали, или даже сильно скомпилированные Основы), но C в основном норма. Я так и не понял почему.

В прошлом были примеры (Паскали, или даже сильно скомпилированные Основы), но C в основном норма. Я так и не понял почему.

0
ответ дан 1 December 2019 в 13:59
поделиться

См. Этот связанный вопрос:

Какие языки используются для программирования систем в реальном времени .

В ответ на ваш вопрос «почему» с точки зрения правительства / Военное приобретение, есть мнение, что Java (язык, платформа и т. д.) в наши дни является лингва-франка и что экономия на масштабе в языке снизит затраты на приобретение и обслуживание. Есть также надежда, что можно эффективно обучить компетентного Java-программиста, чтобы он стал разумным RT / встроенным программистом на Java, быстрее, чем если бы им требовалось выучить новый язык. Это обоснование, на мой взгляд, подозрительно, но оно дает ответ на вопрос «почему».

0
ответ дан 1 December 2019 в 13:59
поделиться

Я работал над устройством, на котором была запущена какая-то невероятно старая версия python (1.4 или что-то в этом роде). Не было возможности отладить его (кроме печати отладочных сообщений), поэтому, когда ваш код попадал в исключение, все просто останавливалось, и вы чесали голову в течение часа. Каждый раз, когда вы вносили изменения и обновляли код, который он выполнял, на его интерпретацию и компиляцию уходило около 10 минут.

Излишне говорить, что мы отказались от этого и заменили микроконтроллер на тот, который запускал C.

0
ответ дан 1 December 2019 в 13:59
поделиться

Если вы работаете в пространстве смарт-карт, вы можете использовать Java Card . Ага, Java, на 8-битном микро. На самом деле это довольно весело. Я могу разрабатывать в Eclipse, тестировать (и отлаживать!) На симуляторе ПК и быть уверенным, что он будет работать на карте точно так же. Жаль, что Java - ужасный язык для встраиваемых приложений :)

1
ответ дан 1 December 2019 в 13:59
поделиться

Учитывая, сколько раз я у меня на телефоне было исключение Java из-за нехватки памяти (большую часть времени я делаю что-нибудь отдаленно интересное), я убегал от Java, как летучая мышь из жаркого места.

Я ' Вы слышали, что Erlang был разработан для мобильных телефонов. Я думаю, что Lisp - хорошая архитектура для поддержки удаленных устройств, если cna устройства обрабатывает время выполнения.

0
ответ дан 1 December 2019 в 13:59
поделиться

Если вы включаете iPhone в качестве встроенной платформы, тогда Objective-C

0
ответ дан 1 December 2019 в 13:59
поделиться

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

При программировании чего-либо в масштабе микроконтроллера или прошивки для ASIC , вы склонны видеть, что C и сборка доминируют в сцене. Разработчики встраиваемых систем имеют тенденцию «специализироваться» на этих языках, поскольку их компиляторы доступны почти для каждой целевой платформы встраиваемых систем. Если ваш проект переходит, скажем, с чипа с ядром PowerPC на чип с ядром ARM, вы можете быть уверены, что ваш код C не будет слишком сложно перенести. Некоторые микросхемы действительно имеют компиляторы для других языков, но обычно они не соответствуют компилятору C с точки зрения эффективности результирующего двоичного файла. Поскольку встроенным системам часто не хватает ресурсов, разработчики систем хотят сделать свой код как можно более эффективным (это также одна из причин, по которой вы видите много кода на языке ассемблера). Я видел инструменты разработки, доступные для таких языков, как C ++, Pascal, Basic и другие, но они, как правило, являются нишевыми инструментами, которые недостаточно зрелы, чтобы соответствовать эффективности доступных компиляторов C. Инструменты отладки для этих языков также, как правило, труднее найти, чем те, которые доступны для C / assembly.

Вы также упомянули телевизионные приставки. Встроенные системы такого масштаба могут иметь мощность, эквивалентную мощности настольного компьютера 7-8 лет назад. Доступная оперативная память, дисковое пространство и вычислительная мощность позволяют им запускать полнофункциональные операционные системы и интерпретаторы для языков более высокого уровня. В этих более мощных системах вы по-прежнему будете использовать C и язык ассемблера (для кода драйвера если ничего другого), но другие языки (такие как Java, Lua, Tcl, Ruby и т.д.) становятся все более и более распространенными. Использование интерпретируемых языков делает перенос кода с одной платформы на другую еще проще, если платформа имеет достаточно ресурсов для обработки накладных расходов интерпретатора языка. Любой низкоуровневый код, который напрямую взаимодействует с оборудованием (драйверами), по-прежнему обычно использует ассемблер или C, поскольку языки высокого уровня не всегда могут делать такие вещи. Все, что работает как приложение поверх встроенной операционной системы, обычно можно разработать и протестировать внутри эмулятора или виртуальной машины, поэтому вы увидите, что много кода разрабатывается на том языке, который удобен разработчику.

Версия TL; DR: C популярен, потому что это универсальный язык, с которым знакомы почти все разработчики. Сборка популярна, потому что она обеспечивает низкоуровневый доступ к оборудованию способами, которые в противном случае были бы трудными или невозможными. Интерпретируемые / скриптовые языки, такие как Java, становятся все более популярными, но требования к ресурсам интерпретаторов для этих языков могут быть слишком большими для некоторых встроенных систем. Качество и разнообразие инструментов разработки / отладки для языков C и ассемблера также делают эти возможности привлекательными.

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

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

5
ответ дан 1 December 2019 в 13:59
поделиться

Многие пользователи домашнего пива и небольшие компании, которым нужно дешевое решение, нашли, что Tiny Tiger и Basic STAMP (с использованием BASIC) удовлетворяют их потребности.

0
ответ дан 1 December 2019 в 13:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: