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

Gast #6040819
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
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
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
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.
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

Eine eigene Frage? Dieser Thread ist über 6 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.