Hallo Leute, bevor ich anfange auf meinem Butterfly zu programmieren wollte ich wissen wie ich das Teil wieder in seinen Ursprungszustand versetzen kann. Bei Atmel kann man sich ein Hex-File downloaden welches den Bootloader und das Programm enthält. Reicht es per JTAG das Hexfile in den Flash zu schreiben? Noch eine Frage, wenn JTAG aktiviert ist, funktioniert dann noch ISP? JTAG scheint bei mir zu funktionieren, ISP jedoch nicht. Gruß, Jürgen
Hallo, ich habe mir mal die AVRGCC-Übersetzung von Martin Thomas heruntergeladen. http://www.siwawi.arubi.uni-kl.de/avr_projects/ ich habe das Projekt entpackt und in AVRStudio ein neues AVRGCC-Projekt angelegt. Sourcefile ist die main.c. Wenn ich nun das Projekt kompiliere, bekomme ich lauter Fehlermeldungen: main.o:(.progmem.data+0x258): undefined reference to... kann mir jemand sagen was ich vergessen habe?
Jürgen K. schrieb: >... > ich habe das Projekt entpackt und in AVRStudio ein neues AVRGCC-Projekt > angelegt. >... Im den zip-Paketen meines avr-gcc/avr-libc-Ports des Atmel-Beispielcodes sind Projektdateien für AVRStudio dabei. Also kein neues Projekt anlegen, sondern in Project->Open Project die mitgelieferte .aps-Datei auswählen, dann Build->Rebuild All. >... >bevor ich anfange auf meinem Butterfly zu programmieren wollte ich >wissen wie ich das Teil wieder in seinen Ursprungszustand versetzen >kann. >... Sofern man nicht an den FUSE-Bits herumspielt, kann nicht viel passieren. Wichtig ist, die Clock-Einstellungen nicht zu verändern (soll immer internal R/C bleiben). Zwar kann man diese auch wieder in den Auslieferungszustand bringen, das kann aber ungünstigstenfalls recht knifflig werden (parallel-programming, um users-manual beschrieben). Meist (bei mir bisher immer) reicht es aber, einen Takt an XTAL1 zu legen und FUSE-bits wieder richtig einzustellen. >... >Noch eine Frage, wenn JTAG aktiviert ist, funktioniert dann noch ISP? Ja, sollte. JTAG und serISP sind beim ATmega169(p)v auf dem BF im Auslieferungszustand aktiviert. Hatte damit bisher noch keine Probleme, habe JTAG aber nur sehr selten benutzt (die 4 Pins dafür haben oft andere Aufgaben). >JTAG scheint bei mir zu funktionieren, ISP jedoch nicht. >... Da fehlt eine genauere Fehlerbeschreibung, um das etwas nachvollziehen zu können. Mit welcher Hardware getestet? Anschluss? Genaue Abfolge der Tests?
Danke Martin, hab ich doch glatt übersehen, dass es schon ein Projektfile gibt. Funktioniert auch bei mir. Allerdings würde mich trotzdem interessieren was ich machen muss um ein eigenes Projet zu erstellen. Die Datei main.c hinzuzufügen scheint nicht zu reichen, da muss ich wohl noch etwas mehr tun. Weshalb ich frage ist der Bootloader, wenn ich per JTAG oder ISP ein Programm hochlade, was passiert mit dem Bootloader? Wo liegt er und überschreibt man ihn dabei? Ich habe noch nie etwas mit einem Bootloader gemacht. Zum Programmieren nutze ich den Dragon, ich habe den Anschluss vom Butterfly 1:1 mit dem Dragon verbunden. Anschließend habe ich versucht die Signatur des µCs auszulesen, ging leider nicht. (Typische ISP-Fehlermeldung) Die Stiftleiste schaut nach oben raus (Displayseite) Mit JTAG ist es dagegen kein Problem, die Signatur konnte ich auslesen. Gruß, Jürgen
Jürgen K. schrieb: >... > Allerdings würde mich trotzdem interessieren > was ich machen muss um ein eigenes Projet zu erstellen. Die Datei main.c > hinzuzufügen scheint nicht zu reichen, da muss ich wohl noch etwas mehr > tun. Es müssen alle .c-Dateien im AVRStudio Projekt (source-files) enthalten sein, aus denen man in der eigenen Anwendung Funktionen aufrufen will. Die Einstellungen für Compiler- und Linker-Optionen im AVRStudio gcc-Plugin einfach erstmal so übernehmen, wie im gcc-Port der Beispielanwendung. > Weshalb ich frage ist der Bootloader, wenn ich per JTAG oder ISP ein > Programm hochlade, was passiert mit dem Bootloader? Vor Programmierung des Flash-Speichers wird dieser in Standardeinstellung komplett gelöscht. Man kann "chip erase" zwar deaktivieren, das bringt aber nur Ärger bei den Speicherbereiche, die man verändern will. Also aktiviert lassen. > Wo liegt er Am "oberen" Ende des Speichers. Vgl. Fuse settings und ATmega169 Datenblatt. > und überschreibt man ihn dabei? ja, BL wird wegen chip erase mit 0xff "überschrieben". > Ich habe noch nie etwas mit einem Bootloader gemacht. Auf den atmel.com-Seiten zum Butterfly gibt es eine hex-Datei zum Download. In dieser ist die die Beispielanwendung inkl. Bootloader enthalten. Wenn man den Inhalt der hex-Datei wieder per ISP od. JTAG in den ATmega überträgt ist der Bootloader auch wieder im Flash-Speicher. Quellcode des Bootloaders sollte in einer AVR AppNote zu finden sein. Alternativ gibt es auf meiner Seite auch einen gcc-Port des Bootloaders inkl. hex-Datei (ohne die Anwendung). > Zum Programmieren nutze ich den Dragon, ich habe den Anschluss vom > Butterfly 1:1 mit dem Dragon verbunden. Anschließend habe ich versucht > die Signatur des µCs auszulesen, ging leider nicht. (Typische > ISP-Fehlermeldung) und auch auf die "typische" Ursache geprüft, also ISP Frequenz nicht zu hoch eingestellt? Mit 250kHz oder geringerem Takt ausprobiert? > Die Stiftleiste schaut nach oben raus (Displayseite) > Mit JTAG ist es dagegen kein Problem, die Signatur konnte ich auslesen. Ist doch o.k. Solange man die 4 JTAG Pins für nichts anders gebrauchen mag, kann man ja über JTAG Kontakt aufnehmen.
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.