Hallo, ich habe grad WINAVR und den AVR-COFF-Package installiert. Mit Hilfe vom WINAVR und dem makefile(.cof) aus den demo.c die demo.elf erzeugt. Anschliessend mit "make coff" die demo.elf in demo.cof konvertiert und dann dass Programm erfolgreich in AVR-Studio 4.07 simuliert. Meine Frage ist nun, ob man auch den AVR-Studio 4.07 als Editor verwenden kann, und wenn ja, wie ich das bewerkstelligen kann? Gruß Zoltan
Erstens solltest Du für AS4 besser "make extcoff" sagen. Siehe Doku. Zweitens: jein. AS4 unterstützt derzeit keinerlei 3rd-party Compiler. Du kannst es natürlich als Editor benutzen, wenn Du das unbedingt willst, aber den Compilerlauf mußt Du extern anwerfen.
Hi Joerg, danke für die Antwort. Ich finde es umständlich, immer in der Eingabeanforderung den "make extcoff" einzugeben und ständg zwischen WINAVR und AS4 wechseln zu müssen. Daher meine Frage. Aber so gehts natürlch auch. "aber den Compilerlauf mußt Du extern anwerfen" Könntest Du bitte genauer beschreiben wie das geht? Gruß Zoltan
Das ist eine Einleitung für die Installation von WINAVR und AVR Studio 4 unter Windows XP, so wie ich es bei mir gemacht habe. Vielleicht hilft es ja manch einem weiter... Gruß Zoltan
hi ich glaub es gibt aber noch eine andere möglichkeit und zwar erstellt das avr studio eine bat datei die dann den compiler aufruft jetzt muss man nur das project einmal kompiliren, wenn nun die bat datei erstellt wurde kann man dann den inhalt löschen und durch den befehl ersetzen der winavr startet. danach datei schreibschütze. jetzt nimmt avr studio den compiler von winavr : ) cu
Hi chris, ich habe das jetzt so versucht: 1. einen Assembler Projekt erzeugt, den compiliert 2. den so entstandenen xxx.dat abgeändert, so dass beim "Build and Run" pn.exe von winavr gestartet wird. --> "C:\Programme\Atmel\winavr\pn\pn.exe" war das so gemeint? Der PN bringt mich aber nicht viel weiter. Sollte ich nicht anstelle des Programmers Notepads das so irgendwie machen: in avrbuild.dat: "C:\Programme\Atmel\winavr\utils\bin\make.exe" "F:\AVR Studio 4\Beispiel\test\make exctcoff" Leider funktioniert das so nicht. Gruß Zoltan
Mach mal folgendes: Installiere WinAVR und die Coff Beta! Nun gehst Du bei und machst aus dem makefile.cof im samples Menü ein einfaches makefile(das was da vorher steht wird jetzt überschrieben oder Du änderst vorher den Dateinamen ind z.B. makefile_old). Rufe dir den Programmers Notepad auf und öffne Deinen Sourcecode. Nun unter Tools/Options den Bereich Tools auswählen. Als Scheme entweder Global (für immer sichtbar) oder c/c++ für nur bei C/C++ Code sichtbar auswählen. um z.B. <make all> als Befehl einzutragen siehe Bild. Das kannst Du dann mit z.B. make clean oder make extcoff (für AVR Simulation) auch machen.
Danke für den Tipp. Das erleichtert natürlich einiges. Bei Gelegenheit werde ich meine Anleitung entsprechend ergänzen. Gruß Zoltan
Du kannst übrigens jede Variable im makefile über die Kommandozeile angeben. Die optimierung z.B. oder den Prozessortyp. Mal mit dem makefile experimentieren. Da kann man bestimmt noch einiges vereinfachen, so dass man einer richtigen IDE doch schon recht nahe kommt. Ich habe festgestellt, dass man mit dem AVR Studio 4.07 auch Tools implementieren kann mit make all und make clean hat es schon funktioniert. Was noch geht habe ich noch nicht weiter getestet. ciao Axel
Ich habs jetzt auch hinbekommen. Jetzt kann ich den Kompiler und clean, die Konvertiereung in .cof, Ponyprog und meinen Terminal Programm aus AVR Studio 4 starten. Jetzt muss ich auch nicht mehr immer zum Simulieren zwischen den Programmen wechseln. Ich musste nur alles richtig einstellen, siehe Anhang. Leider ist die "Tools" Menü nach einer Weile aus der Leiste oben verschwunden. Das ist etwas merkwürdig?? Gruß Zoltan
Das liegt wie gesagt daran, dass Du dann das falsche Scheme (so stehts in den Optionen) ausgewählt hast. Hast Du also Deine Tools für das C/C++ Scheme eingestellt dann sind die auch nur sichtbar, wenn Du ein Sourcecode mit der endung .c oder .cpp auf hast. Konfiguriere die Tools mal unter global dann sind die auch immer sichtbar !
Hi @Axel und @Zoltan! Ich dachte eigentlich, dass AT4.07 ein 3th Party Tool nicht unterstütz. Da ich mich nun in den lezten Tagen mit dem AT3.56<->WINAVR auseinandergesetzt habe, bin da natürlich hellhörig geworden. Das Projekt aus dem pn läuft problemlos (W98), ebenso macht der Compiler etwas unter AT4.07, nur bleibt das makefenster nicht stehen, so das ich nicht sehen kann was da wirklich abläuft. Gibt's da 'ne Möglichkeit das als output stehen zu lassen? Und dann noch: Wie kann ich das Projekt im AT4 als Tree darstellen, so wie es unter AT3 ging? Gruß MooseC MooseC
@Axel, bitte lies die Beiträge richtig, bevor Du sie kommentierst: Bei mir war die "Tools" Menü aus AVR Studio 4 verschwunden und nicht irgendwas in PN. Die Lösung des Rätsels war, dass wenn man unter Tools das Customize Fenster aufmacht sich die Menüs File, Project, Edit... verschieben lassen. @MooseChecker "nur bleibt das makefenster nicht stehen" unter anderem deswegen benutze ich auch weiterhin das Programmers Notepad. Man kann das Fenster aber auch loggen: http://www.mikrocontroller.net/forum/read-2-30878.html
Hallo Zoltan, ich habe alle Einstellungen nach deiner Anleitung getätigt, und habe nach dem go folgene Meldung erhalten: Failed to create process: Der Vorgang wurde ausgeführt. Im makefile stand DIRAVR = C:/Winavr Nach deiner Anleitung soll man DIRAVR = C:\Winavr engeben. Ist das richtig ? Gruß Reinhard
Hallo Reinhard, versuchs halt mal mit /. Aber ich glaube nicht, das es daran liegt. Bei mir stand damals DIRAVR = E:\Winavr. Wenn Du Dein WINAVR aber unter z.B. c:\Programme instaliert hast, dann must Du das natürlich davorschreiben, bzw. entsprechend ergänzen. Was Du noch versuchen könntest ist in das Feld Command, wo jetzt make steht, die make.exe sammt Verzeichnis einzufügen. So ungefähr: ...winavr\utils\bin\make.exe Gruß Zoltan
Hallo Zoltan,
das eine hatgeklappt, es gibt jedoch immer noch ein Problem.
set -e; avr-gcc -MM -mmcu=at90s4433 -I. -g -Os -funsigned-char
-funsigned-bitfields -fpack-struct -fshort-enums -Wall
-Wstrict-prototypes -Wa,-ahlms=test.lst test.c \
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > test.d; \
[ -s test.d ] || rm -f test.d
-------- begin --------
avr-gcc --version
avr-gcc (GCC) 3.3 20030421 (prerelease)
Copyright (C) 2002 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.
avr-gcc -c -mmcu=at90s4433 -I. -g -Os -funsigned-char
-funsigned-bitfields -fpack-struct -fshort-enums -Wall
-Wstrict-prototypes -Wa,-ahlms=test.lst test.c -o test.o
test.c: In function `main':
test.c:3: warning: control reaches end of non-void function
test.c:3:2: warning: no newline at end of file
make: *** No rule to make target `foo.o', needed by `test.elf'. Stop.
> Process Exit Code: 2
Es wird keine test.elf erzeugt, somit kann ich auch keine
test.coff machen.
Hast Du noch einen Tip?
Gruß
Reinhard
Ja, füge wieder ein # in die Zeile 45 im makefile ein: #SRC += foo.c bar.c. ":furchtbar ;-)" Hier hin kommen weitere Sourcefiles, falls vorhanden. foo.c und bar.c waren nur Beispiele, die natürlioch nicht vorhanden sind und somit zu einem Fehler beim Kompilieren führen. Gruß Zoltan P.S. Woran lags denn beim ersten Mal?
Beim ertsten Mal habe ich in Parameters statt all -->all Target=%n eingefügt. Danke. Gruß Reinhard
ich bins nochmal,
es gibt immer noch ein Problemchen, oben ist mein makefile.
makefile:224: no file name for `-include'
-------- begin --------
avr-gcc --version
avr-gcc (GCC) 3.3 20030421 (prerelease)
Copyright (C) 2002 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.
avr-gcc -mmcu=at90s4433 -I. -g -Os -funsigned-char -funsigned-bitfields
-fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=
--output test.elf -Wl,-Map=test.map,--cref -Wl,-u,vfprintf -lprintf_flt
-lm
C:\WINAVR\BIN\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o(.ini
t9+0x0): undefined reference to `main'
make: *** [test.elf] Error 1
> Process Exit Code: 2
Warum lässt Du den makefile nicht in dem original zustand? Ich weiß jetzt nicht was da alles geändert wurde. Versuchs aber mal mit dem, im Anhang. Gruß Zoltan
Ich habe noch die Anleitung für WINAVR mit meinen Erkenntnissen aus diesem Beitrag/Forum erweitert. Wenn sich keine Fehler eingeschlichen haben, dann ist sie jetzt fertig. Gruß Zoltan
Hallo zusammen, habe mit großem Interesse diesen Thread verfolg, da ich der Zeit versuche mich in C zu programmieren versuche. Da ich mir auch eine Kompakte und zentrale Programmierumgebung schaffen möchte, priorisiere ich die Lösung alles mit AVR Studio 4 zu realisieren. Also, meinen C-Code darin zu schreiben und dann über das Menü Tool's den Code mit avr-gcc zu kompilieren. Und auch mein .cof-File (welches ich zum Simulieren brauche) zu erstellen. Das funktioniert meines erachtens auch so weit. Jedenfalls habe ich in meinem Verzeichnis all die Dateien und das .hex-File. Mit Aufruf von AVR_GCC Extcoff erhalte ich auch mein .cof-File. Was ich jetzt noch wissen möchte: Ich programmiere einen AT90S4433. Kann ich mit diesem MC auch eine Simulation starten. bzw. was muss ich im Vorfeld alles im AVR Studion einstellen, damit es für diesen Typ passt? Habe in der Hilfe irgendwas gelesen, dass es für jeden Typ ein .xml-File gibt, bzw. dass die -typ-def.inc eingebunden werden muss. Aber irgendwie raffe ich dass nicht. Auch habe ich das Problem, dass wenn ich mein Projekt öffne im I/O-Fenster der Atmega128 angezeigt wird. Und wenn ich das .cof File (zur Simulation) öffnen möchte, ich im Fenster in dem ich die Debug-Plattform (hier dann 'Simulator') dann nur der ATMEGA128 auszuwählen ist. Alle anderen Typen sind grau und können nicht ausgewählt werden. Wenn ich diesen dann auswähle, dann wird mir eine Fehlermeldung gebracht, dass das AVR-Setup dieses Device nicht unterstütz (oder so ähnlich). In meinem Project, habe ichnur das .c-File integriert (unter Assembler). Stimmt vielleicht das nicht bzw. muss ich hier noch anderes integrieren? Ich weiss es echt nicht. Hoffe es kann mir einer von Euch helfen. Vielen Dank schon im voraus. Gruß jobuma
Hallo, >priorisiere ich die Lösung alles mit AVR Studio 4 zu realisieren Ja das habe ich auch ausprobiert. Ich fand es aber umständlich nach jeder Simulation, ständig meinen C-File neu laden, und das Simulationsfenster schließen zu müssen. Darüber hinaus kann man in AVR Studio nicht verfolgen, was beim "make" passiert, denn das DOS Fenster verschwindet immer gleich wider. Es gibt natürlich noch die möglichkeit, wenn Du deine Reflexe verbessern möchtest, beim Erscheinen des DOS Fensters auf die PAUSE Taste zu drücken.. >In meinem Project, habe ich nur das .c-File integriert (unter Assembler). Stimmt vielleicht das nicht bzw. muss ich hier noch anderes integrieren? Versuch mal keinen Assembler Projekt zu öffnen. Statdessen einfach auf open file.. , und dann nur deinen C-File öffnen. Dann unter tools auf "go" (oder wie du es auch immer genannt hast) und "convert 2cof". Nun wider auf open file.. und diesmal den .cof file öffnen. Anschließend müsstest Du deinen AT90S4433 auswählen können. Gruß Zoltan
Hallo Zoltan, danke für Deine Antwort. Hat aber leider nichts geändert. Kann immer noch nur den 4433 auswählen. Habe noch ein paar Fragen dazu. Ich habe den Programmer von dieser HP (am Parallelport) und meine Schaltung auf einem Steckbrett aufgebaut. Also kein STK500 angeschlossen. Daran kann es aber doch nicht liegen, oder? Der SImulator ist doch von der Harwaeunäbhängig. Wenn ich ein .c-File öffne habe ich im Workspace-Fenster (im Studio) nicht's drin stehen. Ist da bei Dir auch so. Bzw. was müsste man eigentlich ändern wenn man einen anderen MC verwenden würde. Wenn Du also jetzt z.b. einen 4433 proggen wolltest. Was müsstest Du für einstellungen änder? Im makefile den mccu-Eintrag und im Code die spezifischen Sachen natürlich anpassen, das ist klar. Aber was sonst noch? Ich weiss immer noch nicht, was es mit den .xml-Files der einzelnen Typen auf sich hat (im AVR Studio) die unter dem Verzeichnis 'PartDescriptionFiles'. Was Dein Problem mit dem Fenster anbelangt (beim ausführen von make.exe), denke ich dass sich eine Lösung finden lässt. Habe da auch schon rumprobiert. Am besten wäre ja wohl wenn, die ganzen Ausgaben im Output-Fenster im AVR Studio angezeigt würden. Wird aber wohl nicht so einfach zu realisieren sein. HAb aber noch 2 andere Lösungen: 1. Ein BatchFile (ich benenne es go.bat), in dem make %1 %2 aufgerufen wird. Dieses File ins Verzeichnis, wo die make.exe liegt. (Damit kann es zentral und von überall aufgerufen werden; wie ja auch make.exe) Dann neuen Eintrag unter Tools erstellen. Bei 'comannd' go (für die go.bat), bei Parameters all "target="%d eingeben, und wie gewohnt %d beim Vezeichnis. Damit werden die Parameter all und target=(File ohne Ext) an die Batch übergeben, welche dann make aufruft. Die Anführungszeichen, bei target sind nötig, da sonst die Parameter nicht sauber an die Batch übergeben werden, und beim ausführen von make.exe ein Fehler auftritt. So, jetzt kann man unter den Eigenschaften der Batch unter den Haken bei 'Programm beenden' rausnehmen. Damit wird die Batch im DOS_Fenster ausgeführt, welches nach Programmende nicht geschlossen wird. Also das was wir wollen, und so das Ergebnis der Compilierung sehen. Ich habe WIn98SE und es funktioniert. Unter NT, W2K, WXP sollte dies aber auch so in etwa funktionieren. 2. Die andere Lösung wäre, bis zur Batch bleibt alles gleich, nur wird darin dann make %1 %2 > c:\CpmileResult.txt eigetragen (Zeile1) Dann einfach notepade c:\CompileResult.txt eintragen (Zeile2). Hier wird alles was normalerweise am Fensterausgegeben wird in die angegebene Datei geschrieben (die ist frei wählbar, und wird erstellt wenn es diese nocht gibt bzw. überschrieben wenn doch). Anschließend wird notepad mit dieser Datei geöffnet, und Du siehst das Ergebnis. Also auch das was wir wollen. Soweit mal das. Ich habe dann noch vor per vbscript, diese Datei zu durchsuchen und den ErrorStatus zu ermitteln, und wenn der none ist, dann automatisch denn Brennvorgang anzustossen. Dazu brauche ich aber eine Kommandozeilen-Programmer-Software. Benutze derzeit yaap, der kann aber nicht per Kommandozeile (Batch) aufegrufen werden. Es gibt aber glaube ich AVRDude, welche bei AVR-GCC dabei ist. Mit dem versuchichs mal. DAnn könnte man mit einem Klick Compilieren und wenn fehlerfrei automatisch dass Programm auf den AVR brennen. Auch das Extcoff könnte da mit rein. MAn hätte also mit einem Klick alles. Wäre doch cool. Oder? Was meinst Du? Aber genug jetzt. Nochmal Danke und Gruß jobuma
Ich noch mal im Betrag davor hab ich natürlich Quatsch geschrieben. Ich kann natürlich immer noch NICHT den 4433 auswählen sondern nur den ATMEGA128
>Der SImulator ist doch von der Harwaeunäbhängig. Ja, er ist Hardwareunabhängig. >im Workspace-Fenster (im Studio) nicht's drin stehen. Ist bei mir auch so. >Wenn Du also jetzt z.b. einen 4433 proggen wolltest. Was müsstest Du für einstellungen änder? Nachdem man die xxx.cof geöffnet hat, hat man die Möglichkeit unter debug -> select platform and device oder debug ->select avr simulator options verschiedene Einstellungen zu ändern, wie z.B. den MC Typ, Taktfrequenz. Das ist glaube ich alles. >.xml-Files der einzelnen Typen auf sich hat (im AVR Studio) die unter dem Verzeichnis 'PartDescriptionFiles'. Da kenne ich mich leider nicht aus. Deine 1. Lösung habe ich ausprobiert. Es läuft bestens. Ich habe noch das 'make extcoff' auch in die Batch-Datei eingetragen. Nur kann ich unter WINXP die Einstellung für das Batch-File, mit dem ich das DOS Fenster offen lassen könnte , nicht finden. >DAnn könnte man mit einem Klick Compilieren und wenn fehlerfrei >automatisch dass Programm auf den AVR brennen. Die Sache mit dem automatischen brennen halte ich nicht für sehr sinnvoll, denn meinereiner will nicht immer nach jedem erflogreichen kompilieren gleich den MC brennen. :-> Jetzt noch zu dem "nur ATMEGA128" ich glaube es hatte kürzlich auch jemand das selbe Problem. Schau mal im Forum bischen rum. Hast Du vielleicht noch die alte AVR-Freaks installiert? Wenn ja, dann die deinstallieren. Gruß Zoltan
hab gerade noch mal geschaut. Hab tatsächlich noch eine avrfreaks-version drauf. Und ich dachte die sei schon längst runter. Ich werde es dann noch mal versuchen. Dann scheint es bei XP nicht einzustellen zu sein. Alternativ eine neue Zeile in Dein Batch. Am besten dann nach dem make und nach dem extcoff. Dann müsste nach jedem ausführen die Textausgabe angehalten werden, und Du siehst was der entsrechende Befehl ins Fenster geschrieben hat. Oder Lösung 2. Die funktioniert bei mir auch. Was das automatische brennen anbelangt, hat Du recht ist nicht sehr sinnvoll bei jedem compilieren auch zu brennen. Aber mann könnte mit einem neuen Tools-Eintrag mit einem Klick aus dem Studio raus brennen. Aber wie auch immer. Gruß und Danke jobuma
Hi Zoltan, sorry hab ja das wichtigste vegessen. Ich meinte mit dem Befehl 'Pause' in DeinemBAtch kannst Du die weitere Abarbeitung des Batch's anhalten. Also ein 'pause' nach dem make all und ein 'pause' nach dem make extcoff. Bzw. experemtiere selber mal ein bisschen rum wie es für dich am besten wäre. Oder aber wie gesagt Lösung2. Gruß jobuma
Danke, es klappt mit 'pause'. Das Fenster bleibt offen. Läuft jetzt Deine Simulation mit dem 4433? Gruß Zoltan
na also, wunderbar. Oder. HAb die avrfreaks-version deinstalliert. Hat aber immer noch nicht funktioniert. Habe jetzt mal alles deinstalliert. Und installiere jetzt winavr und avr-extcoff nochmal. Anschließend installiere ich nochmal AVR Studio 4. Und hoffe das es dann klappt. Das werde ich mir aber voraussichtlich morgen vornehmen. Bis dahin werde ich mir jetzt ein bisschen Mut für diese schwierige Aufgabe antrinken ;-) Also schönen Samstag-Abend und vermutlich werde ich morgen wieder reinschauen. Gruß jobuma
Hi, @ Zoltan WINAVR Installationsbeschreibung sehr gut. Nur auf Seite 2 ist mir folgendes aufgefallen: Ziele: 27 (anstatt 33) MCU = ATMEGA8 usw. Gruß DIetmar
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.