mikrocontroller.net

Forum: Compiler & IDEs Was bedeutet ((progmem))?


Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
bin grad in nem Sourcecode über folgendes gestolpert:
static char _attribute_ ((progmem))

Bedeutet das das man Konstanten im Flash ablegen kann? Und was bedeutet
_attribute_? (doppelte Unterstriche vor und hinter attribute, falls
das Script das ändern sollte)

mfg

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> bin grad in nem Sourcecode über folgendes gestolpert:
> static char _attribute_ ((progmem))

Und diese Variable hatte keinen Namen?

> Bedeutet das das man Konstanten im Flash ablegen kann?

Ja.

> Und was bedeutet _attribute_?

Das ist eine GCC-Erweiterung, um Funktionen, Objekten und Typen
Attribute geben zu können.

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt schon nen Namen, aber der spielt ja keine Rolle.

Aber das mit dem Attribut hab ich noch nicht ganz kapiert.

static char _attribute_ ((progmem)) IrgendeinArray[] = {1,2,3,4};

Was oder wo ist da das Attribut? Steht das irgendwo beschrieben? Hab
darüber noch nix gefunden.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann lies dir bitte die avr-libc-Doku durch.
(Oder die GCC-Doku für eine allgemeine Beschreibung.)

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich les schon seit 2 Stunden und hab auch schon versucht zu suchen.
Leider bin ich noch nicht fündig geworden und hab ehrlich gesagt auch
schon aufgegeben. Ein genauerer Hinweis wäre ganz nett

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://www.nongnu.org/avr-libc/user-manual/group__...
http://gcc.gnu.org/onlinedocs/gcc-3.4.5/gcc/Attrib...

(In etwas älteren Versionen sicher alles auch auf deiner Platte
zu finden, aber dafür kann ich dir schlecht einen locator
anbieten. ;-)

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ah, thx. Das mit pgmspace hab ich schon gefunden. Und bei der GNU C Doku
selber hatte ich zugegebenermaßen nicht geschaut. Dachte das wäre im
WinAVR Paket mit dabei.

btw: ich hab in nem anderen Thread schonmal gefragt: ich hab hier immer
noch nur die WinAVR Version vom Februar. Ist das Projekt eingestellt und
wird nur noch an den einzelnen Baustellen gearbeitet oder gibt es auch
mal wieder ein Komplettpaket zum Installieren? Ich tu mich nämlich noch
echt schwer bei sowas und würde mich freuen wenn's wieder mal was DAU
taugliches gibt

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Und bei der GNU C Doku selber hatte ich zugegebenermaßen nicht
> geschaut. Dachte das wäre im WinAVR Paket mit dabei.

Ist sie ja auch. ;-)

> btw: ich hab in nem anderen Thread schonmal gefragt: ich hab hier
> immer noch nur die WinAVR Version vom Februar. Ist das Projekt
> eingestellt und wird nur noch an den einzelnen Baustellen gearbeitet
> oder gibt es auch mal wieder ein Komplettpaket zum Installieren?

Das Projekt ist nicht eingestellt, aber es ist letztlich praktisch
eine one-man-show, die zu einem guten Teil in der Freizeit von Eric
Weddington abläuft.

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ist sie ja auch. ;-)

Echt? Ich hab mit ner Volltextsuche danach gesucht und nix gefunden.
Naja, egal.

> Das Projekt ist nicht eingestellt, aber es ist letztlich praktisch
> eine one-man-show, die zu einem guten Teil in der Freizeit von Eric
> Weddington abläuft.

Hab ich vollstes Verständniss. Aber ich denke es gibt hier jede Menge
fähiger Leute die hier ein wenig nachhelfen könnten. Ich gehöre leider
(noch) nicht dazu, sonst würde ich das machen. Vielleicht finden sich
ja ein paar bereitwillige die das Projekt unterstützen?

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich glaube, Erics Problem ist, dass das ganze Projekt derzeit als
one-man-show aufgezogen ist und nicht wirklich `shareable'.

Ich habe ihm schon paar Ideen unterbreitet, wie man das aufteilen kann
(ein Gerippe für die Paketverwaltung und einzelne kleine Päckchen für
die Tools, damit entkoppelt man die Sache, kann die einzelnen Tools
schneller aktualisieren bzw. diese Arbeit auch teilweise an andere
abgeben).  Findet er auch gut.  Nur: wenn man das jetzt implementiert,
würde sich das nächste WinAVR natürlich noch weiter rausziehen.  Also
wird wohl die nächste Version, damit sie nun endlich überhaupt mal
fertig wird, als Monolith gezimmert wie bisher, mit der Konsequenz,
dass Eric das letztlich weitgehend allein fertigstellen muss.

Autor: ope (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was für Änderungen müssen am gcc,binutils/gdb denn durchgeführt werden,
die nicht durch den configure Prozess eingestellt werden können
(binary-prefix= avr, host=, target= etc.)? Oder betreffen die
Änderungen die anderen "Beigaben"?

Viele Grüße
Olaf

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Patches.

Autor: ope (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mmh, kann ich das so deuten, das die AVR Implementationen der
gcc/binutils distributions fehlerhaft sind, oder was soll gepatched
werden? Am Installer oder Programmer's Notepad kann/sollte es doch
nicht liegen.

Viele Grüße
Olaf

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ...oder was soll gepatched
> werden?

Zum Bleistift:

. binutils: AVR-COFF-Implementierung, neue AVR-Typen
. GCC: 0b binary constants, neue AVR-Typen
. GDB: zwei kleine Bugs, die nur bei AVR auftreten
...

Dazu kommen sicher noch Win32-typische Patches (von denen ich keine
Ahnung habe).

Autor: Peter Fleury (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein komplettes WinAVR Paket braucht es eigentlich gar nicht mehr.

Dank der neuen AVRStudio Version braucht man neben dem AVR-GCC
eigentlich keine weiteren Tools mehr.

Ich habe erfolgreich AVR-GCC (GCC 3.4.5) mit aktuellem binutils und
AVRlibc) sowie zum Vergleich auch mit GCC 4.0.2 mittels MSYS und MinGW
auf WinXP erstellt.

Für den ersten Einstieg in die AVR Programmierung genügt das aktuelle
WinAVR.

Wen man sich intensiver damit beschäftigen will, sollte man sich die
Zeit nehmen, selbst ein Packet zu kompilieren.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Dank der neuen AVRStudio Version braucht man neben dem AVR-GCC
> eigentlich keine weiteren Tools mehr.

Vorausgesetzt, man will AVR Studio nehmen und sich auf die von diesem
unterstützten Programmieradapter beschränken. ;-)  (Außerdem brauchst
du natürlich in jedem Falle noch binutils und avr-libc.)

Man hat eigentlich natürlich auch noch nie WinAVR unbedingt gebraucht,
selbst compilieren ging schon immer...  In der Unix-Welt ist das lange
Zeit gang und gäbe gewesen.

Autor: Peter Fleury (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zur Frage des OP:
Das neue AVRStudio hat eine Menuoption "avr-libc Reference Manual"
unter Help.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.