Forum: Compiler & IDEs AVR Studio Fehler


von Steffen O. (derelektroniker) Benutzerseite


Lesenswert?

Hallo,
ich arbeite nun schon seit einiger Zeit mit AVR Studio 4.13.
Ich habe es irgendwie schon einmal geschafft eine .hex- Datei zu 
bekommen, aber nun schaffe ich das nicht mehr.
Ich mache immer neues Projekt, und dann AVR GCC (ich habe den GCC 
Compiler installiert), trage den Programmnamen ein, und dann stelle ich 
noch bei AVRSimulator Tiny12 ein (für den Tiny soll das Programm sein).
Nun tippe ich mein C- Programm in das Programmfenster in der Mitte ein, 
und klicke auf Compile. Da kommen dann unten im Nachrichtenfenster zwei 
grüne Punkte, und folgender Text:

------------------------------------------------------------------------ 
---
avr-gcc.exe  -mmcu=attiny12 -Wall -gdwarf-2 -O0 -MD -MP -MT Ledeinb.o 
-MF dep/Ledeinb.o.d  -c  ../Ledeinb.c

process_begin: CreateProcess(NULL, avr-gcc.exe -mmcu=attiny12 -Wall 
-gdwarf-2 -O0 -MD -MP -MT Ledeinb.o -MF dep/Ledeinb.o.d -c ../Ledeinb.c, 
...) failed.

make (e=2): Das System kann die angegebene Datei nicht finden.

make: *** [Ledeinb.o] Error 2

Build succeeded with 0 Warnings...
------------------------------------------------------------------------ 
---

Da kommt ja eigentlich schon, dass irgendein Fehler aufgetreten ist, 
aber am Ende zeigt er an, das der Build ohne Warnungen verlaufen ist.
Nun klicke ich auf Build, und dann kommt im Nachrichtenfenster folgende 
Fehlermeldung: (und vor der letzten Zeile ist ein roter Punkt)

------------------------------------------------------------------------ 
---
Loaded plugin STK500

Loaded plugin AVR GCC

Loaded partfile: 
D:\Programme\AVR_Studio\PartDescriptionFiles\ATtiny12.xml

gcc plug-in: Error: Object file not found on expected location 
C:\Dokumente und Einstellungen\Steffen Oesterwind\Eigene 
Dateien\default\Ledeinb.elf
------------------------------------------------------------------------ 
--

Was mache ich hier falsch???
Übrigends mein Programmcode:

------------------------------------------------------------------------ 
---
#include <avr/io.h>

int main()
{
  DDRD = ( 1 << PD3 );

  PORTD = ( 1 << PD3 );

  while( 1 );
}
------------------------------------------------------------------------ 
---

Wisst ihr, was ich falschmache, oder welche Einstellung noch nicht 
angepasst ist????

Würde mich über eine schnelle Rückmeldung freuen!!!!
Gruß, Steffen

von holger (Gast)


Lesenswert?

Aus iotn12.h :

#ifndef _ASSEMBLER_
#  warning "MCU not supported by the C compiler"
#endif

Der ATTiny12 kann bei WINAVR nur in ASM programmiert werden.

von Steffen O. (derelektroniker) Benutzerseite


Lesenswert?

Hallo,
wenn ich jetzt z.B. den ATmega 8 bei AVR Simulator einstelle, dann kommt 
die gleiche Fehlermeldung.
Wenn ich den Tiny mit diesem Compiler nur in Assembler programmieren 
kann, welcher kostenlose Compiler unterstützt den Tiny in C???
Gruß, Steffen

von Thomas W. (thomasw)


Lesenswert?

Hast du auch im Makefile auf den mega8 umgeschaltet?

Auf dem Tiny12 läuft überhaupt kein C, egal welchen Compiler du 
verwendest, da er kein SRAM hat.

von STK500-Besitzer (Gast)


Lesenswert?

>welcher kostenlose Compiler unterstützt den Tiny in C???

Keiner. Das liegt aber daran, dass C RAM braucht, das im Tiny12 nicht 
vrohanden ist. Der hat nur 32 Register...
Es käme vermutlich nur ein anderer Controller infrage (Tiny13?, Tiny25, 
Tiny45, Tiny85). Bei den genannten Controllern bin ich mir bicht sicher.
Die habe ich nur vorgeschlagen, weil sie die gleiche Anzahl an IOs 
haben, wie der Tiny12.

von Steffen O. (derelektroniker) Benutzerseite


Lesenswert?

Hallo,

@ Thomas W. : Wie stellt man das Makefile um???

@ STK-500 Besitzer: Dann habe ich ein mittelgroßes Problem, da ich nun 
drei Tinys bei Reichelt bestellt habe, und nur ein paar C- Befehle kann.

Ich weiß, das Gebettel ist nicht so toll, aber könnte jemand von euch 
mir ein Assembler- Programm schreiben, welches nach einem 0- Signal 
(wird durch Taster gegen Masse erzeugt) 5 andere Pins nacheinander auf 1 
schaltet. Jeder Pin soll immer wieder ausgeschaltet werden, bevor der 
nächste auf 1 geht, also wie ein Lauflicht.....
Das ganze soll nach Tastendruck nur einmal Durchlaufen.
Wenn ihr Zeit und Lust hättet, währe es sehr nett, wenn ihr mir das 
Programm schreiben könntet.
Ich habe nämlich ein Projekt mit den Tinys geplant, und auch das Zeugs 
darum schon alles auf sie abgestimmt, un wenn das jetzt nicht klappt, 
währe es schade.
Vielen Dank schon einmal im Voraus.
Gruß, Steffen

von Karl H. (kbuchegg)


Lesenswert?

Na ja, so schwer ist das nun auch wieder nicht.
Wenn du dich ranhältst, kriegst du das heute noch leicht hin.
Den Anfang dazu findest du hier

http://www.mikrocontroller.net/articles/AVR-Tutorial

von Thomas W. (thomasw)


Lesenswert?

Umstellen funktioniert über Project->Configuration Options

von Steffen O. (derelektroniker) Benutzerseite


Lesenswert?

Hallo,
ich habe gerade eine ziemlich provisorische Anordnung mit meinem 
Steckbrett und dem Assemblercode vom Tutorial (der erste mit nur einer 
Portansteuerung) gemacht.
Nun wollte ich die .hex- Datei auf meinen Controller mit PonyProg 
flashen (ich verwende den ersten ISP von der Seite: 
http://rumil.de/hardware/avrisp.html).
Da kam aber immer nur Port nicht verfügbar.
Ich habe aber meinen ISP -wie ich das sehe- richtig gebaut, und auch mit 
Spannung (5Volt)versorgt. Dennoch klappt es nicht :-(.
An was kann das liegen????
Vielen Dank schon einmal im Voraus.
Gruß, Steffen

von Steffen O. (derelektroniker) Benutzerseite


Lesenswert?

Hallo,
ich habe einen blöden Fehler gemacht, und zwar ist bei mir die 
Standarteinstellung in PonyProg auf Serielle Schnittstelle geschaltet 
gewesen. Also kurz auf Parallel umgeschalten, und nun kommt nicht mehr 
dass der Port nicht verfügbar sei, sonderen dass ein "Device" nicht 
erkannt wurde, oder sogar ganz fehlt. Wie ich das sehe habe ich alles 
korrekt aufgebaut. Der Tiny braucht zum Programmieren nur seine 
Spannungsversorgung, und muss dann am ISP angeschlossen werden, oder???
Brauche ich noch irgendeinen Quarz oder so was????
Vielen Dank schon im Voraus.
Gruß, Steffen

von Steffen O. (derelektroniker) Benutzerseite


Lesenswert?

Hallo,
nun habe ich es doch noch geschafft!
Mein PonyProg zeigt zwar noch an, dass das "Device" unbekannt, oder 
nicht angeschlossen ist, wenn ich dann aber auf Ignore klicke, flasht er 
das Programm doch noch auf den Mega8.
Nun will ich ein paar kleine C- Programme mit  AVR Studio 4.13 
schreiben.
allerdings zeigt er mir immernoch die oben geschriebene Fehlermeldung 
an.
Habt ihr irgendwelchen Tips für mich, was ich noch versuchen könnte???
Vielen Dank schon einmal im Voraus!!!
Gruß, Steffen

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Steffen O. wrote:

> Nun will ich ein paar kleine C- Programme mit  AVR Studio 4.13
> schreiben.

Dann nimm einen Controller, für den das unterstützt wird.  Kostet ja
nur 'n Appel und 'n Ei.

Falls du durchaus einen ATtiny12 in C programmieren willst, kannst du
dir Bruce Lightners Methode ansehen:

http://www.nongnu.org/avr-libc/user-manual/FAQ.html#faq_tinyavr_c

von Oliver (Gast)


Lesenswert?

Hast du ein komplett neues Projekt für den Mega8 angelegt?
Sind die WinAVR-Verzeichnisse im Pfad?
Wird das richtige make aufgerufen? (Falls es mehrere auf deinem PC gibt)

Wenn du make im default-Ordner unter dem Projektordner (da sollte sich 
ein makefile befinden) in einem cmd-Fenster ("Dos-Box") aufrufst, welche 
Fehlermeldung kommt dann?

Oliver

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Diese Fehlermeldung meinst du?

> process_begin: CreateProcess(NULL, avr-gcc.exe -mmcu=attiny12 -Wall
> -gdwarf-2 -O0 -MD -MP -MT Ledeinb.o -MF dep/Ledeinb.o.d -c ../Ledeinb.c,
> ...) failed.

Sowas habe ich in Berichten über WinAVR und Vista gesehen. Wenn das bei 
dir möhlich ist, dann helfen vielleicht die Patches von Madwizard. Links 
gibt es im Artikel WinAVR

von Steffen O. (derelektroniker) Benutzerseite


Lesenswert?

Hallo,
ich meine folgende Fehlermeldung, denn nach der gehts nicht mehr weiter.
Steffen O. wrote:
> gcc plug-in: Error: Object file not found on expected location
> C:\Dokumente und Einstellungen\Steffen Oesterwind\Eigene
> Dateien\default\Ledeinb.elf
>
@ Stefan: Die Fehlermeldung, die du aufgeführt hast, ist sicher auch ein 
Grung dafür, dass es nicht funktioniert.
Ich hab im Forum schon gesucht, aber nirgends steht eine Schritt für 
Schritt- Anleitung, wie man das Problem lösen kann.
Habt ihr eine, oder wisst ihr, wo es eine gibt??
Vielen Dank schon einmal im Voraus.
Gruß, Steffen

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Steffen O. wrote:

>> gcc plug-in: Error: Object file not found on expected location
>> C:\Dokumente und Einstellungen\Steffen Oesterwind\Eigene
               ^   ^                     ^                 ^
>> Dateien\default\Ledeinb.elf

Die Leerzeichen (und Sonderzeichen) im Pfad sind übel. Probiere ohen 
auszukommen, indem du deine Projekte woanders anlegst.

von FBI (Gast)


Lesenswert?

Hi,

die Meldung "gcc plug-in: Error: Object file not found on expected 
location" ist nur ein Folgefehler. Der eigentliche Fehler ist der andere 
mit "CreateProcess ... failed". Meistens stimmt die PATH Variable dann 
nicht.

CU

von Steffen O. (derelektroniker) Benutzerseite


Lesenswert?

Hallo,
FBI wrote:
> Meistens stimmt die PATH Variable dann
> nicht.

Wie kann ich die dann wieder hinbiegen, dass es passt???

@ Stefan:
Ich kann die Leerstellen im Pfadnamen nicht rausnehmen, da Dokumente und 
Einstellungen und Steffen Oesterwind Systemordner sind, und deswegen 
kann ich da die Namen nicht verändern.
Ich bekomme keinen Ordner komplett ohne Leerstellen hin, da die Ordner 
IMMER in Dokumente und Einstellungen und Steffen Oesterwind sind.
Vielen Dank schon einmal im Voraus.
Gruß, Steffen

von Johannes M. (johnny-m)


Lesenswert?

Bei aktuellen Versionen der Programme sollten Leerstellen im Pfad auch 
kein Problem mehr darstellen. Das war früher mal so (wobei "früher" 
zugegebenermaßen noch nicht allzu lange her ist...).

von Steffen O. (derelektroniker) Benutzerseite


Lesenswert?

Hallo,
nun habe ich es geschafft: Ich kann jetzt OHNE Probleme eine .hex- Datei 
erzeugen!!!
Ich hab mich durch etliche Tutorials und Beiträge gewühlt, immermal 
wieder was eingestellt, und nun klappt es!
Mein ISP (http://rumil.de/hardware/avrisp.html - Der erste auf der 
Seite) klappt auch, d.h. ich kann auf einen Mega8 Sachen schreiben, und 
diese auch wieder auslesen.
Eine, bzw. zwei Sachen klappen jedoch nicht: Ich kann keine Lockbits und 
so was setzen, und ich kann den Mega nicht mehr löschen.
D.h. ich habe nun in meiner Dummheit immer wieder neue Programme und so 
draufgeflasht, und jetzt läuft keins von denen :-(.
An was kann es liegen, dass ich den Mega nicht mehr löschen kann, oder 
keine Lockbits setzten kann???
Gibt es da irgendwelche typischen Fehler???
Vielen Dank schon einmal im Voraus.
Gruß, Steffen

von Steffen O. (derelektroniker) Benutzerseite


Lesenswert?

Hallo,
hat niemand schon Erfahrung mit solch einem Fehler???
Ich bin echt dankbar für jede Antwort, da ich nicht mehr weiter weiss.
Vielen Dank schon einmal im Voraus.
Gruß, Steffen

von holger (Gast)


Lesenswert?

>Gibt es da irgendwelche typischen Fehler???

Ja, gibt es:

1) Reset Pin zum IO-Pin gefused.
2) Takt auf extern Clock gefused, aber kein Takt angeschlossen.
3) Takt auf extern crystal gefused, aber kein Quarz angeschlossen.
4) ISP Frequenz zu hoch im Verhältnis zum Takt.

In allen diesen Fällen bekommst du keine Verbindung
zum AVR mehr. Die Frage ist: WAS hast du gemacht ?

Bei 1) hilft dir nur noch ein HV tauglicher Prommer.
Bei 2) und 3) schliesst man halt das fehlende an.
Bei 4) stellt man eine kleinere ISP Frequenz ein.

von Steffen O. (derelektroniker) Benutzerseite


Lesenswert?

Hallo,
an den Fuses habe ich noch nicht rumgespielt -geht ja gar nicht-.
Wie kann man bei PonyProg eine kleinere ISP- Frequenz einstellen???
Wie gesagt, auf den Mega8 schreiben und lesen kann ich, nur nichts 
löschen, oder die Fuses umändern...........
Gruß, Steffen

von holger (Gast)


Lesenswert?

>an den Fuses habe ich noch nicht rumgespielt -geht ja gar nicht-.

Jetzt vieleicht nicht mehr ?

>Wie gesagt, auf den Mega8 schreiben und lesen kann ich, nur nichts
>löschen, oder die Fuses umändern...........

Wenn du nicht mehr löschen oder die Fuses ändern kannst,
dann kannst du auch nicht mehr lesen und schreiben. Nichts
sinnvolles jedenfalls. Gibts beim Pony einen Verify Knopf ?
Also erst schreiben und dann vergleichen ob das geschriebene
auch wirklich programmiert wurde ?

von Steffen O. (derelektroniker) Benutzerseite


Lesenswert?

Hallo,
PonyProg prüft automatisch, nachdem das Programm auf den Controller 
geflasht wurde, ob es mit dem Original identisch ist.
Bei mir geht das Flashen, bzw. Lesen auch nicht auf Anhieb, sondern da 
kommt eine Fehlermeldung: Kein Device angeschlossen, oder Device 
unbekannt.
Wenn ich dann auf Ignore klicke, schreibt/ließt er dann trotzdem, und 
dann kommt auch immer, dass es geklappt hat.
Also wenn ich etwas auf den Controller geflasht habe, und anschliessend 
auf Lesen klicke, zeigt er mir das geschriebene wieder an.
Das einzigste was nicht funktioniert, ist wie gesagt das Löschen, und 
das setzten/ einlesen von Fuses. Ich habe nun den oben genannten ISP- 
Adapter ausprobiert, und noch einen mit einem Parallelstecker, und 4 
Widerständen, bei beiden das selbe Problem. Ich habe auch schon einen 2. 
Mega8 probiert, schon wieder das selbe Problem.
Daher denke ich, es liegt am PC, bzw. an PonyProg.
Weiss hier irgendjemand noch Tips, die ich einmal versuchen könnte???
Gruß, Steffen

von holger (Gast)


Lesenswert?

>Bei mir geht das Flashen, bzw. Lesen auch nicht auf Anhieb, sondern da
>kommt eine Fehlermeldung: Kein Device angeschlossen, oder Device
>unbekannt.

Irgendwie habe ich geahnt das du sowas antworten würdest ;)

>Wenn ich dann auf Ignore klicke, schreibt/ließt er dann trotzdem, und
>dann kommt auch immer, dass es geklappt hat.

Ignore ist ne gute Idee. Der schreibt dann auf Teufel komm raus
was rein. Er liest auch irgendwas. Nur nichts sinvolles !

von Steffen O. (derelektroniker) Benutzerseite


Lesenswert?

Hallo,
was würdest du mir jetzt raten zu tun???
Soll ich einen fertigen ISP kaufen, oder einen anderen nachbauen???
Also die Programme die bis jetzt geflasht wurden haben immer nicht 
funktioniert.
Gibts es irgendwelche Tutorials zu der Sache???
Der ISP, den ich nachgebaut hatte, wurde auch in anderen Threads und so 
immer erwähnt, und daher dachte ich, der sei ordentlich!
Ich würde mal mit 99% Sicherheit sagen, dass ich den ISP richtig 
aufgebaut habe, also ich denke nicht, dass es am Adapter liegt.
Ich könnte mir noch vorstellen, dass die Minimalbeschaltung des Mega8 
(VCC, ADCC an 5 Vol, GND, und alle ISP Pins an den Programmer 
angeschlossen, den RESET Pin noch mit einem 10k Ohm Widerstand an 5 
Volt) nicht ausreicht, oder der ISP irgendwie den RESET Pin nicht auf 
Masse ziehen kann.
Ich habe während des Lesens und Flashens schon am RESET Pin die Spannung 
gemessen, und da lagen immer 5 Volt an!
Ich bin solangsam echt mit meinem Latein am Ende ;-).
Gruß, Steffen

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
Noch kein Account? Hier anmelden.