Wenn man ein neues AVR-Projekt anlegt, wird eine Datei fuse.c mit folgendem Inhalt erzeugt:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
Wo und wie sind die Fuse-Konstanten definiert? (In avr/io.h jedenfalls nicht.)
|
Anzeige
|
[code::blocks] wo wird LFUSE_DEFAULT definiert?Wenn man ein neues AVR-Projekt anlegt, wird eine Datei fuse.c mit folgendem Inhalt erzeugt:
Wo und wie sind die Fuse-Konstanten definiert? (In avr/io.h jedenfalls nicht.) Uhu U. schrieb: > Wo und wie sind die Fuse-Konstanten definiert? Hier vermutlich: "To use the Fuse API, include the <avr/io.h> header file, which in turn automatically includes the individual I/O header file and the <avr/fuse.h> file. These other two files provides everything necessary to set the AVR fuses." Quelle: http://www.nongnu.org/avr-libc/user-manual/group__avr__fuse.html Du kannst übersetzen mit -save-temps -g3 (oder höher). Im präprozessierten Progamm (*.i für C, *.ii für C++) findest du dann sowas wie:
__INTTYPES_H_ wird also in Zeile 35 von inttypes.h defined, __AVR_ATmega8__ hingegen per Kommandozeilen-Option(*) -D__AVR_ATmega8__ oder -D__AVR_ATmega8__=1 (*) Bis v4.9 ist __AVR_ATmega8__ ein Built-In Define von avr-gcc, ab v5 wird das Makro über ein spec-File definiert ($prefix/lib/gcc/avr/$version/device-specs/specs-atmega8). Uhu U. schrieb: > Wo und wie sind die Fuse-Konstanten definiert? (In avr/io.h jedenfalls > nicht.) Im Prinzip schon in <avr/io.h>. Allerdings sind sie natürlich spezifisch für den tatsächlich benutzten Controller, sodass sie in dem abhängig von -mmcu=XXX reingezogenen konkreten Headerfile stehen. Ah ja... vielen Dank für die Hinweise. So unter dem Strich scheint mir das aber ein Komfort zu sein, der nicht unbedingt sinnvoll ist. Ist eigentlich der Fuse-Anzeige-Bug im avrdude behoben? (Ich habe mir letzhin zwei Arduino Nanos gebrickt, weil ich auf die Fuse-Werte vertraut hatte, die beim Lesen eines Controllers angezeigt weren.) Uhu U. schrieb: > Wo und wie sind die Fuse-Konstanten definiert? Kann man da nicht so Sachen wie "gehe zur Deklaration" oder "expandiere dieses Makro schrittweise" machen? Code::Blocks wird doch immer so gelobt, sowas gehört imho im Jahr 2016 zum Stand der Technik bei einer IDE, insofern müsste also ein Mausklick reichen um zu der Stelle zu springen an der das definiert wird. Bernd K. schrieb: > Kann man da nicht so Sachen wie "gehe zur Deklaration" oder "expandiere > dieses Makro schrittweise" machen? Kann man, aber für solche Dinge findet er leider nix. Uhu U. schrieb: > So unter dem Strich scheint mir das aber ein Komfort zu sein, der nicht > unbedingt sinnvoll ist. Du meinst, dass man die Fuses überhaupt im Sourcecode einstellt? Hmm, ja, ich mach' das bei mir auch nicht, aber manche Leute finden das wohl toll. > Ist eigentlich der Fuse-Anzeige-Bug im avrdude behoben? Wenn ich nur wüsste, welchen du meinst ... Jörg W. schrieb: > Wenn ich nur wüsste, welchen du meinst ... Wenn man das Flash ausliest, kommt am Ende eine Meldung
Da sind E und H vertauscht. (Version 6.0.1, compiled on Oct 21 2013 at 15:55:32) Der Bug war nur wenige Tage lang im Sourcecode, und der Fix fand sich auch ziemlich schnell in einem Release. Es ist unklar, warum zum Geier™ dieses hornalte Release nach wie vor durch die Kante geistert. :( Dieser Bug ist der, der am häufigsten wohl mittlerweile berichtet worden ist, weil das ja auch jeder sofort bemerkt. Das Teil stammt aus dem Linux Mint 17 / Ubuntu Repositorium. Uhu U. schrieb: > Das Teil stammt aus dem Linux Mint 17 / Ubuntu Repositorium. Dann beschwer' dich dort. Aktuell ist die 6.3. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|