Właściwie avr-gcc jest również pod okładkami w Arduino ... po prostu musisz użyć C ++ - składni ish, jeśli używasz ich bibliotek lub piszesz własną. W przeciwnym razie jedynym ograniczeniem jest to, że jesteś „zmuszony” do użycia wzorca odpowiadającego:
int main (int argc, char * argv []) {setup (); dla pętli(); } return 0;}
który jest wzorem pasującym do dużego przekroju (prawdopodobnie całości) projektu osadzonego. Po prostu implementujesz setup () i loop ().
Również nie jest to wybór między Arduino a mikrokontrolerem. Zasadniczo można wyjąć ATMega328P z kontekstu płyty Arduino, zaprogramować za pomocą szkicu i przeszczepić go do ściślej zintegrowanego rozwiązania.
Więc myślę, że nie zgadzam się z sentymentem niektórych innych odpowiedzi sugerujących, że Arduino jest tylko platformą „zabawkową”. Moim zdaniem jest to możliwe do bardziej „poważnego” rozwoju. Po prostu obniża barierę wejścia do wbudowanego świata. Możliwość zaprogramowania go bez osobnego programatora (np.AVRISP mkII, STK500, itp.) To dość duża sprawa w tym względzie.
Nie sądzę, aby wymagało to znaczącego kompromisu od bardziej zaawansowanych użytkowników.