Und was kommt als Bildschirm-Output beim Ausführen von make-all.bat?
Hallo,
Also nachdem meine erste Schaltung (mehr oder weniger nur ein AtMega32 mit ISP anschluss und 2 LEDs) nun endlich fertig ist, wollte ich mich mal an die Programmierung setzen. Beim Asuro ging das ja ganz einfach, aus einer .c-Datei eine .hex-Datei zu machen und ie zu übertragen. Dachte ich mit, das muss doch hier auch ganz ähnlich gehen.
Also hab ich mir ein (meiner Meinung nach passendes) makefile von MFile aus WinAvr machen lassen und den LED-Blink-Code aus der RN-Wiki kopiert.
So, wenn ich jetzt mein make-all.bat ausführe (da steht ja eig nur "make all" drin), dann werden auch brav neue Datein erstellt. Also ich bekomme ein neues Verzeichnis .dept, in welchem sich die datei main.o.d befindet. Außerdem bekomme ich die Datein main.lst, main.map und main.o.Code:// Testprogramm: Blinken auf Pin PC0 // #ifndef MCU // Welcher AVR genutzt wird, wird i.A. im Makefile definiert #define MCU atmega32 #endif #ifndef F_CPU // kann auch im Makefile definiert sein #define F_CPU 1000000UL // Takt als LONG definieren, da zu groß für Integer #endif #include <avr/io.h> // Namen der IO Register #include <util/delay.h> // Funktionen zum warten // Achtung, damit delay richtig funktioniert muß mit Optimierung compiliert werden int main(void) { DDRC = _BV(0); // Nur PC0 als output, _BV(0) = (1<<0) = 1 PORTC = 254; // Pullups auf allen anderen Pins while (1) { PORTC &= 255-_BV(0); // 0 auf Bit 0 Ausgeben, Rest so lassen _delay_ms(100); // 100 ms Warten PORTC |= _BV(0); // 1 auf Bit 0 Ausgeben, Rest so lassen _delay_ms(100); } }
Leider aber keine .hex-Datei, die ich dann auf meinen µC übertragen könnte.
Was genau brauch ich da jetzt falsch?
Am makefile selbst wirds ja wohl kaum liegen, wenn das von einem Programm aus WinAvr so erstellt wird, sollte das ja schon richtig sein oder?
lg
ijjiij
Und was kommt als Bildschirm-Output beim Ausführen von make-all.bat?
MfG
Stefan
Also, wenn ich die make-all.bat per doppelklick ausführe öffnet sich die Konsole, Einiges an Text lauft ganz schnell über den Bildschirm, leider zu schnell das man irgendwas davon lesen könnte, und die Konsole geht wieder zu.
Bei starten der make-all.bat über die CMD gibts folgende Fehlermeldung: "make: *** No rule to make target 'all'. Stop."
Weiters passiert hier garnichts, es wird also auch nichts erstellt.
Wie gewünscht hier die Ausgabe in der Konsole:
Und hier der Inhalt der Batch-Datei:Code:-------- begin -------- avr-gcc (GCC) 3.3.1 Copyright (C) 2003 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Linking: main.elf avr-gcc -mmcu=atmega32 -I. -gdwarf-2 -DF_CPU=8000000UL -Os -funsigned-char -funs igned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhln s=main.o -std=gnu99 -MMD -MP -MF .dep/main.elf.d main.o --output main.elf -Wl,- Map=main.map,--cref -lm main.o(.text+0x16): In function `main': : undefined reference to `_delay_ms' main.o(.text+0x20): In function `main': : undefined reference to `_delay_ms' make: *** [main.elf] Error 1
Hoffe du wirst schlau daraus,Code:make all pause
Danke für deine Hilfe!
wo bekomm ich denn eine neuere version davon her? oder hat der avr-gcc iwie eine auto-update funktion dabei?
muss ich die alte version zuerst deinstallieren, bevor ich eine neuere drauf installiere?
weil eigentlich habe ich heute erst die neue version von WinAVR installiert (20100110), ka wieso da ein veraltetes avr-gcc dabei war...
http://sourceforge.net/projects/wina...nAVR/20100110/
Musst du nicht unbedingt, wäre aber empfehlenswert.
MfG
Stefan
Also ich hab gerade alle WinAVR-Teile deinstalliert, danach die neueste Version installiert, nach etwas herumspielen mit den beiden Batch-Files hab ichs jetzt entgültig geschafft, alle Files zu erstellen!
Vielen lieben Dank für deine Geduld und Hilfe!
LG
ijjiij
Lesezeichen