Использование Arduino в качестве автономного компилятора

Я в основном программирую на C/C++, поэтому у меня есть компилятор GCC для всех моих компиляций. Мне было интересно, есть ли специальный компилятор для Arduino, который можно использовать так же, как компилятор GCC? Потому что просто взять скетч .ino и передать его comiler с несколькими аргументами будет намного проще для меня, чем все эти вещи в IDE, и, кроме того, я использую Sublime Text в качестве текстового редактора. А заставить программу на Си работать в Sublime так же просто, как предоставить ей путь к компилятору. Поэтому я хотел бы иметь портативную уменьшенную версию компилятора Arduino, которая НЕ является всей папкой IDE. Надеюсь, я получу хорошие ответы!! Заранее спасибо.

, 👍5

Обсуждение

Вы хотите использовать библиотеки Arduino и другие "улучшения Arduino", или вы в порядке с использованием простых заголовков C/C++ и AVR?, @marcelm

Я использую его в основном для робототехники и использую по крайней мере 10 датчиков одновременно, поэтому библиотеки просто необходимы..., @Supragya Mishra


3 ответа


Лучший ответ:

7

Прежде всего: Arduino IDE имеет свой собственный компилятор GCC. Это версия, которая может компилироваться для платформы AVR (не знаю, способна ли на это стандартная версия).

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

Если вы хотите использовать sublime text editor только для программирования, а не перестраивать среду компиляции Arduino для удовольствия (с чем я не смог бы помочь), вы можете взглянуть на Arduino-cli. Это дает вам инструмент для вызова важных функций, которые обычно выполняет IDE, через командную строку (например, установка ядер и библиотек, компиляция и загрузка). Это то, что я сейчас использую с sublime для программирования на Arduino. Это позволяет мне вызывать создание загрузки из sublime без открытия Arduino IDE.

Если вы хотите пойти по этому пути, вот файлы sublime-build, которые я использую для своих Arduino Nanos и ATtiny84. Может быть, вы сможете адаптировать их под свои нужды. (Примечание: я опустил несколько вариантов, которые я использую для загрузки на разные com-порты, потому что com-порт-это единственное, что там меняется. Кроме того, я нахожусь на Ubuntu, так что на Windows или Mac это может выглядеть немного по-другому)

Для Нано:

{
    "cmd" : ["arduino-cli compile --fqbn arduino:avr:nano"],
    "working_dir": "$file_path",
    "shell":true,
    "file_patterns":["*.ino"],
    "variants": [
        {
            "cmd" : ["arduino-cli compile --fqbn arduino:avr:nano && arduino-cli upload -v --fqbn arduino:avr:nano:cpu=atmega328old --port /dev/ttyUSB0"],
            "working_dir": "$file_path",
            "shell":true,
            "name": "Compile & Upload ttyUSB0"
        }
    ]
}

Для ATtiny84:

{
    "cmd" : ["arduino-cli compile --fqbn ATTinyCore:avr:attinyx4:chip=84"],
    "working_dir": "$file_path",
    "shell":true,
    "file_patterns":["*.ino"],
    "variants": [
        {
            "cmd" : ["arduino-cli compile --fqbn ATTinyCore:avr:attinyx4:chip=84 && arduino-cli upload -v --fqbn ATTinyCore:avr:attinyx4:chip=84 --programmer arduinoasisp --port /dev/ttyUSB0"],
            "working_dir": "$file_path",
            "shell":true,
            "name": "ATtiny84: Compile & Upload ttyUSB0"
        }
    ]
}
,

Спасибо @chrisl Я уверен, что Arduino-CLI будет мне очень полезен, я проверил его, и, возможно, это более или менее то, что я хотел, идея переноса около 500 мб файлов в виде arduino ide очень плоха для меня, и поэтому я хотел небольшой компилятор, как интерфейс. Люди из Arduino проделали хорошую работу над версией CLI, так что это может помочь. Еще раз спасибо!!, @Supragya Mishra

Это также доступно в виде пакета для Sublime Text 3!!, @Supragya Mishra


2

Это не тот ответ, который полностью соответствует тому, что вы спрашиваете, но он слишком велик для комментария, и он немного помогает вам, по крайней мере, с помощью вашего редактора Sublime.

Что меня больше всего раздражает в Arduino IDE, так это отсутствие поддержки нескольких файлов (наличие горизонтальных вкладок делает количество файлов максимальным 6 или 7 и использование .h/.cpp файлы легко выходят за рамки этого числа).

Я предпочитаю использовать Visual Studio в качестве редактора, и я это делаю. В вашем случае вы можете использовать Sublime editor. Убедитесь, что файл .ino не изменяется (т. Е. Только делает переадресацию на ваши классы C++ или код в других классах). Это делается для предотвращения проблем синхронизации между Arduino IDE и Visual Studio.

Одновременно запустите Arduino IDE и выполните компиляцию отсюда. Читайте только файл .ino, в то время как другие файлы находятся в том же каталоге (структуре) и могут быть отредактированы Sublime editor.

Таким образом, он не использует GCC, но Arduino IDE используется только для компиляции/запуска, и вся работа по редактированию выполняется в вашем редакторе.

Кроме того, в Visual Studio я создал (по крайней мере, для одного проекта) заглушки, чтобы я мог запустить его на ПК, а также "тестовый" проект. Для этого вы можете использовать свой компилятор gcc.

,

Я попытался использовать "Использовать внешний редактор" в Arduino IDE, но это не то, что я хотел. Я заглянул в проект Arduino-CLI на github, и, возможно, это то, что я искал. Но все же спасибо за старания., @Supragya Mishra

Нет проблем, я поддерживаю ответ Крисла, который кажется вам более подходящим., @Michel Keijzers

Да, это было бы здорово, спасибо, @Supragya Mishra


0

Если вы работаете в Windows, я рекомендую VS2019 Community Edition (бесплатно) плюс расширение Visual Micro. Дает вам все функции intellisense VS, окна редактирования с вкладками, работы. Я пришел в мир Arduino из программирования Windows на C++ и C#, так что я уже был знаком с линейкой IDE Visual Studio, но теперь у меня не было бы другого пути.

,