C++ Toolchain AVR

Gast #5559021
Lesenswert?

Hi Leute, ich komme aus der (Software)Ecke C++, nun will ich mich mit 
Mikrocontrollern befassen. Das AVRGCC Tutorial ist in C geschrieben, da 
ich den Code im Tutorial gut nachvollziehen kann und eigentlich bei C++ 
bleiben will, meine Frage: Gibt es eine vernünftige C++ Toolchain für 
AVRs?
Gast #5559051
Lesenswert?

Niklas G. schrieb:
> Der AVR-GCC unterstützt C++. Leider wird aber keine C++ Standard Library
> mitgeliefert, weshalb das nicht so viel Spaß macht.

Erstmal danke. Damit könnte ich leben.





Niklas G. schrieb:
> Wenn du einen ARM
> Cortex-M Mikrocontroller, wie z.B. einen STM32 nutzt

Habe mir einige Tutorials durchgesehen, auf den ersten Blick sieht ARM 
sehr sehr viel komplexer aus vom Code her, man muss wesentlich mehr 
schreiben (was kein KO-Kriterium ist). Ist das sinnvoll für nen Neuling 
in der Mikrocontroller Welt?
Persönliche Seite #5559070
Lesenswert?

R.Siegmann schrieb:
> Erstmal danke. Damit könnte ich leben.
Okay... Mich stört es schon, dass selbst so Dinge die nichts mit der 
Laufzeit zu tun haben, wie std::integer_sequence oder 
std::numeric_limits, nicht verfügbar sind. Es ließe sich irgendwie 
umgehen, aber schön ist das nicht :-)

R.Siegmann schrieb:
> Ist das sinnvoll für nen Neuling
> in der Mikrocontroller Welt?
Da du ja schon Programmier-Erfahrung hast, könnte es durchaus gehen. Der 
Vorteil ist, dass du so direkt eine leistungsfähige Plattform lernst und 
nicht später umlernen musst. Es gibt ja auch viele Bibliotheken, die 
einem die Details abnehmen, wie die "Cube" Libraries bei STM32.
#5559674
Lesenswert?

Bernd K. schrieb:
> R.Siegmann schrieb:
>> sieht ARM sehr sehr viel komplexer aus vom Code her, man muss wesentlich
>> mehr schreiben
>
> Kein bisschen. Sobald man mehr als Hello World macht treten die 12
> Zeilen mehr für die Initialisierungen der Hardware komplett in die
> Bedeutungslosigkeit.

12 Zeilen braucht man ja schon fast, um einen einzelnen I/O-Pin ans 
Laufen zu bekommen. Die Hardware ist schon erheblich komplexer als bei 
einem AVR.
Gast #5559871
Lesenswert?

Rolf M. schrieb:
>> R.Siegmann schrieb:
>>> sieht ARM sehr sehr viel komplexer aus vom Code her, man muss wesentlich
>>> mehr schreiben
>>
>> Kein bisschen. Sobald man mehr als Hello World macht treten die 12
>> Zeilen mehr für die Initialisierungen der Hardware komplett in die
>> Bedeutungslosigkeit.
>
> 12 Zeilen braucht man ja schon fast, um einen einzelnen I/O-Pin ans
> Laufen zu bekommen. Die Hardware ist schon erheblich komplexer als bei
> einem AVR.

Schau mer mal was ich so an Tutorials finde, davon mache ich es 
abhängig. Für den Anfang bin ich immer ersteinmal an schnellen 
Ergebnissen interessiert, danach kanns gerne detaillierter werden.
Gast #5559892
Lesenswert?

Quick and dirty geht es wie schon genannt mit Arduino, auf AVR, einigen 
STM32 und ESP. Das ist aber ein Gemisch aus Prozeduren und OO, IO Pins 
werden mit Prozeduren wie digitalWrite(Pin) bedient und SPI z.B. ist ein 
Objekt.
Ich benutze lieber mbed, da sind alle Komponenten in Klassen gekapselt. 
Das gibt es aber nur für Cortex-M weil es von ARM selber gepflegt wird.
Die Cortex-M gibt es in allen möglichen Grössen, deshalb reichen mir die 
für meine Projekte. Die grossen haben soviel Flash und RAM das sogar ein 
cout << "Hello world" geht. Das ist natürlich nicht unbedingt sinnvoll, 
aber z.B. ein GUI mit Display möchte ich nie mehr in C bauen.
Gast #5560085
Lesenswert?

Also der magische Würfel ist jetzt aber so ziemlich das genaue Gegenteil 
von C++ Entwicklung...
Wenn man es installiert bekommt man ein Programm mit einer Startseite 
die gross 3 Funktionen anbietet: New Project - Load Project - Help. Da 
fängt man mit Hilfe an und rate mal was sich öffnet.
Persönliche Seite #5560135
Lesenswert?

R.Siegmann schrieb:
> Wenn ihr ein gutes wirklich Anfängertaugliches C++ Tutorial für ARM
> kennt

Was meinst du mit C++ Tutorial? Eines, welches allgemein C++ erläutert? 
Da kannst du jedes normale C++ Buch verwenden.
Eines, welches explizit C++-API's verwendet um die STM32-Peripherie 
anzusteuern? Da gibt es keines, weil es kein wirklich etabliertes 
umfängliches C++-API gibt. Man verwendet meist die C-API's.
Eines, welches C so verwendet, dass man den Code auch in C++-Projekte 
einbinden kann? Das gilt für alle C-basierten Tutorials.
Das ist übrigens beim AVR genau so. Im Embedded Bereich ist C++ leider 
nicht sehr verbreitet.
Gast #5560312
Lesenswert?

R.Siegmann schrieb:
> Gibt es eine vernünftige C++ Toolchain für
> AVRs?

Für AtmelStudio ist eine avr-gcc-Toolchain verfügbar,
aktuelle Version: 8.0.1

Beitrag "Re: constexpr in Atmel Studio nicht verfügbar?"

Für Eclipse ist eine gnu-mcu-eclipse-arm-none-eabi-gcc-Toolchain 
verfügbar,
aktuelle Version: 7.3.1-1.1

Beitrag "Re: STM32/ CUBE / Free IDE mit C++"

Eine C++ hardware abstraction library für Microcontroller ist verfügbar,
letzte Erweiterung 13.09.2018

https://github.com/KonstantinChizhov/Mcucpp

für AVR8, Stm32 und MCP430 Mikrokonttroller.

*********************

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren