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
> 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.
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.
Dann lies dir bitte die avr-libc-Doku durch. (Oder die GCC-Doku für eine allgemeine Beschreibung.)
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
http://www.nongnu.org/avr-libc/user-manual/group__avr__pgmspace.html http://gcc.gnu.org/onlinedocs/gcc-3.4.5/gcc/Attribute-Syntax.html#Attribute-Syntax (In etwas älteren Versionen sicher alles auch auf deiner Platte zu finden, aber dafür kann ich dir schlecht einen locator anbieten. ;-)
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
> 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.
> 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?
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.
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
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
> ...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).
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.
> 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.
Zur Frage des OP: Das neue AVRStudio hat eine Menuoption "avr-libc Reference Manual" unter Help.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.