Atmel Studio: C++ Standard-Lib mit AVR-8 Bit benutzen

Gast #6040819
Lesenswert?

Hallo,
kann mir jemand dazu einen Tip geben.

Es ist ja für AVR-32 eine Implementierung mitgeliefert, aber diese wird 
für AVR-8 nicht gefunden.

Ich weiß daß es Einschränkungen gibt, da auch keine new/delete 
funktioniert und keine Exceptions aber ein paar Algorithmen und 
Datenstrukturen sollten sich doch auch für diese 8-bitter verwenden 
lassen.

Danke.
Gast #6040842
Lesenswert?

Guest schrieb:

> Es ist ja für AVR-32 eine Implementierung mitgeliefert, aber diese wird
> für AVR-8 nicht gefunden.
>
> Ich weiß daß es Einschränkungen gibt, da auch keine new/delete
> funktioniert und keine Exceptions aber ein paar Algorithmen und
> Datenstrukturen sollten sich doch auch für diese 8-bitter verwenden
> lassen.

> kann mir jemand dazu einen Tip geben.

AVR8 sind klein genug, dass man sie problemlos in Assembler 
programmieren kann. Da braucht man kein C und schon garkein C++.
Gast #6040954
Lesenswert?

c-hater schrieb:
> AVR8 sind klein genug, dass man sie problemlos in Assembler
> programmieren kann. Da braucht man kein C und schon garkein C++.

AVR8 sind groß genug, dass man sie in zahlreichen bequemen Sprachen 
programmieren kann. Da braucht man kein Assembler und schon gar keinen 
Bytecode.

Oliver S. schrieb:
> Es gibt keine C++-Standardlib und erst recht keine STL für den AVR.
> Klingt blöd, ist auch so.

So ist das. Wenn du die Standard C++ Bibliothek gerne nutzen möchtest, 
hast du hiermit eine Motivation, dich mit ARM Controllern zu 
beschäftigen.
Gast #6042176
Lesenswert?

Guest schrieb:
> Wäre nett wenn du mir sagst wie.

Hier sind alle Bibliotheken beschrieben, die zum Lieferumfang des 
avr-gcc Compilers gehören. Du wirst sehen, dass das nichts in C++ dabei 
ist.

C++ Sachen musst du also komplett selber programmieren.

Es sei denn, du verwendest das Arduino Framework. Da sind eine ganze 
Menge C++ Bibliotheken mitgeliefert und man kann weitere downloaden.
#6042328
Lesenswert?

Guest schrieb:
> Wäre nett wenn du mir sagst wie.
> Wenn ich#include <algorithm>
>
> schreibe, kommt eine Fehlermeldung daß der Header nicht existiert.

Sicher.
Aber: die libstdc++ vom g++ ist open-source. Man kann da also 
reinschauen bzw. zunächst erst mal alles das ohne Probleme übernehmen, 
was keine dyn. Allokationen macht. Ggf. kann man bzgl. der 
Implementierung auf kleinen µC noch etwas Feintuning machen. Dyn. 
Container kann man auch ggf. mit einem Pool-Allokator machen oder man 
macht sie halt fixed-capacity.

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