Forum: Mikrocontroller und Digitale Elektronik Atmel Studio: C++ Standard-Lib mit AVR-8 Bit benutzen


von Guest (Gast)


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.

von Oliver S. (oliverso)


Lesenswert?

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

C++ an sich funktioniert, mit etwas Handarbeit bezgl. new und delete ( 
und noch ein paar anderen Dingen. google weiß bescheid).

Oliver

von c-hater (Gast)


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++.

von Guest (Gast)


Lesenswert?

Danke daß das geklärt ist, war aber nicht die Frage.

von Stefan F. (Gast)


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.

von Wilhelm M. (wimalopaan)


Lesenswert?

Guest schrieb:
> aber ein paar Algorithmen und
> Datenstrukturen sollten sich doch auch für diese 8-bitter verwenden
> lassen.

Ja, geht ja auch.

von Guest (Gast)


Lesenswert?

Wilhelm M. schrieb:
> Ja, geht ja auch.

Wäre nett wenn du mir sagst wie.
Wenn ich
1
#include <algorithm>

schreibe, kommt eine Fehlermeldung daß der Header nicht existiert.

von Stefan F. (Gast)


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.

von Wilhelm M. (wimalopaan)


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.

von Maxim B. (max182)


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++.

Nein, AVR8 sind klein genug,im sie problemlos mit C zu programmieren. 
Man braucht hier kaum noch Assembler.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.