Альтернативная IDE для компиляции и запуска кода arduino?

Я не очень опытен в c ++ и знаю, что синтаксис C ++ и код, написанный / скомпилированный arduino IDE, немного отличаются.


Я хотел бы иметь возможность писать код, компилировать его так же, как arduino IDE, и запускать его, не загружая на плату.


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

Я написал несколько программ Arduino, и я думаю, что самой сложной вещью, которую я использовал, были функции указателя, но я хотел бы иметь возможность тестировать код без необходимости загружать его на плату для каждого изменения, полагаясь при этом на Serial.print.

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

, 👍1

Обсуждение

google эмулятор arduino, @jsotola

Это разумный вариант, но мне все равно нужно было бы загрузить на плату, только эмулированную, я мог бы просто использовать одноразовую плату, которая у меня есть, и избежать хлопот с эмулятором. Однако я ценю это предложение, @Jordan Klaers

теперь непонятно , о чем вы спрашиваете ... вы хотите скомпилировать и запустить код Arduino без какого-либо оборудования, реального или виртуального... что будет делать программа? ... у него не было бы возможности взаимодействовать с вами, @jsotola

Используйте proteus с библиотекой arduino., @Mitu Raj

аналогично использованию repl.it - Я хотел бы иметь возможность писать код, который компилируется и запускается аналогично тому, что делает arduino ide. Я пытаюсь протестировать другой синтаксис для понятий, которые я не понимаю. Мне не нужно тестировать работу с оборудованием., @Jordan Klaers

извините, если это глупый вопрос. Я просто надеялся сократить некоторые этапы процесса, чтобы быстрее выучить язык. Я веб-разработчик, но по какой-то причине c ++ для меня сложнее, чем я хотел бы признать, @Jordan Klaers

"... синтаксис для C ++ и код, написанный / скомпилированный arduino IDE, немного отличаются". Arduino IDE поддерживает стандартный C ++. Что он делает по-другому, чтобы помочь учащимся, так это замечает, когда вы ссылались на библиотеку (о которой она знает!), И предоставляет ее, даже если вы забыли включить "#include", и перенаправляет объявления для функций, если вы их забыли. Если вы напишете правильный C ++, он будет компилироваться в любой стандартной среде C ++, включая Arduino IDE., @JRobert

Разница между C ++ и языками более высокого уровня (скриптовыми) заключается в том, что C ++ действительно близок к аппаратному обеспечению. Таким образом, запуск компиляций на ПК может отличаться от запуска на raspi или Arduino. И есть различия, даже если вы не используете аппаратную функцию напрямую. например, int на Arduino может иметь другой размер, чем на ПК. И кроме того, какова цель изучения Arduino C ++ без аппаратных функций? Этот язык предназначен для микроконтроллера, это чистое аппаратное обеспечение. Вы можете узнать, как работают указатели (и так далее), используя обычный C ++., @Peter Paul Kiefer

Спасибо, что разъяснили разницу, я полагаю, я могу просто использовать repl.it или даже visual studio. Я ценю вклад каждого!, @Jordan Klaers


2 ответа


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

2

Вы можете использовать любую C ++ IDE, которая вам нравится, лучше всего в комплекте с компилятором, например Code::Blocks . Предполагая, что вы используете Windows: подойдет и комбинация приличного редактора, такого как Notepad ++, и хорошей цепочки компиляторов, такой как MinGW. Если вам абсолютно необходимо, вы также можете использовать MS Visual Studio, я не беспокоюсь.

Затем создайте стандартные консольные программы с помощью этого main():

void setup();
void loop();

int main()
{
    setup();
    for (;;)
    {
        loop();
    }
}

И добавьте свой аппаратный код Arduino.

,

Нужно избавиться от Serial.print хотя бы :) :-) Но, увы, с отладчиком вам вообще не нужен этот Serial.print., @DataFiddler

Можно было бы написать простой "последовательный класс с минимальным интерфейсом, который печатает в "стандартный вывод или собственный канал отладчика., @the busybee


2

PlatformIO - это плагин для кода Visual Studio, который поддерживает многие встроенные устройства, включая большинство ардуино

,

Основной вопрос, по-видимому, заключается в том, чтобы протестировать их код в некотором качестве без необходимости загрузки в Arduino при каждом тестировании. Вероятно, было бы полезно сказать, как PlatformIO позволяет это сделать., @timemage