Eigentlich ist avr-gcc auch in Arduino unter der Decke ... Sie müssen nur die C ++ - ish-Syntax verwenden, wenn Sie deren Bibliotheken verwenden oder Ihre eigenen schreiben. Andernfalls besteht die einzige Einschränkung darin, dass Sie gezwungen sind, das Muster zu verwenden, das entspricht:
int main (int argc, char * argv []) {setup (); für (;;) {loop (); } return 0;}
Dies ist ein Muster, das zu einem großen Querschnitt (wahrscheinlich der Gesamtheit) des eingebetteten Designs passt. Sie implementieren einfach setup () und loop ().
Es ist auch keine Wahl zwischen Arduino und einem Mikrocontroller. Im Prinzip können Sie den ATMega328P aus einem mit einer Skizze programmierten Arduino-Board-Kontext herausnehmen und in eine engere integrierte Lösung umwandeln.
Ich glaube, ich bin mit der Meinung einiger anderer Antworten hier nicht einverstanden, die darauf hindeuten, dass Arduino nur eine "Spielzeug" -Plattform ist. Meiner Meinung nach ist es für eine "ernstere" Entwicklung sinnvoll. Es senkt nur die Eintrittsbarriere in die eingebettete Welt. Die Möglichkeit, es ohne einen separaten Programmierer (z. B. AVRISP mkII, STK500 usw.) zu programmieren, ist in dieser Hinsicht eine große Sache.
Ich glaube nicht, dass dies von fortgeschrittenen Benutzern erhebliche Kompromisse erfordert.