Могу ли я программировать свой Arduino, используя любой другой язык программирования, кроме C ++? Если да, то какие языки программирования? Какое программное обеспечение мне понадобится для компиляции и загрузки моего кода на Arduino?
Могу ли я программировать свой Arduino, используя любой другой язык программирования, кроме C ++? Если да, то какие языки программирования? Какое программное обеспечение мне понадобится для компиляции и загрузки моего кода на Arduino?
Ответы:
Некоторые общеизвестные:
Теоретически, вы должны иметь возможность расширять avr-gcc для поддержки других языков, хотя это немалая задача. Я хотел бы также предостережение , что поддержка других языков , чем C , как правило , поставляется с некоторыми довольно весомые ограничения на компоненты языка - например, даже с C ++ это не рекомендуется , чтобы быть инстанцировании новые объекты , как malloc
и free
очень дорогие и в пространстве памяти и циклов.
Помимо использования Google, следующие ссылки применимы Нажмите здесь.
Теоретически, можно использовать любой компилятор, который выводит сборку AVR (ограничения по модулю на размер кода, использование оперативной памяти и т. Д.).
Бэкэнды AVR существуют как для LLVM, так и для GCC, поэтому теоретически, при определенных усилиях, большинство языков, которые поддерживаются LLVM и интерфейсами GCC, могут быть скомпилированы в AVR. Большим вопросом будет поддержка библиотеки и т. Д.
Тем не менее, вот несколько странных вариантов для духа вопроса, а не его буквы [1].
Ох, и вы могли бы написать сырье AVR Assembly !
[1] - Я не пробовал это все же!
Поскольку avr-g ++ должен поддерживать все стандартные конструкции C / C ++, можно кодировать встроенную сборку. Больше информации на этой ветке arduino.cc
Я удивлен, что никто не упомянул AVR Assembly !
Сборка не часто считается самым интересным или даже простым методом программирования, но, тем не менее, она на 100% возможна для всех Arduino на базе AVR. Платы SAM, скорее всего, не будут работать с этим видом, но все же возможно использовать ассемблер в их программировании.
Все платы Arduino (на момент публикации) поддерживают программирование сборки через Atmel Studio . SDK создан для чипов Atmel.
Сборка изначально поддерживается всеми устройствами Atmel, и для ее работы не требуется загрузчик, поэтому все программы работают в реальном времени.
__asm__("Assembly code here")
работает, чтобы добавить встроенную сборку в любой эскиз. Однако для большинства программ это плохая идея, поскольку с помощью этого метода трудно добиться независимости от платформы.