Forum: Compiler & IDEs Was brauche ich alles für ATTiny2313 und C


von Ram99 (Gast)


Lesenswert?

Hallo
Ich möchte via ISP einen ATTiny2313 mit C programmieren. Ich habe mir 
bisher das Ponyprog2000 installiert um ein erzeugtest *.hex File via ISP 
in den Controller zu schieben.

Als Compiler und C-Quellcode Eingabe habe ich mir das WinAVR-Paket ( 
WinAVR-20060421-install.exe) installiert.
Darin enthalten ist: AVR Insight; MFile und Programmers Notepad.
Mit dem Programmers Notepad habe ich auch schon einen Quelltext erzeugt 
aber weiß nun nicht weiter.
Auf http://winavr.sourceforge.net/helpme.html ist eine Anleitung wie man 
das
Programmers Notepad einstellt. Auf Seite 10 soll man das make.exe Tool 
einbinden aber ich bin mir nicht sicher ob ich das richtig mache. Ich 
habe es so eingestellt wie in der Anleitung aber wie geht es weiter? 
Müssen die neuen Eingaben irgendwo erscheinen ?
Ich habe dann den Beispielquelltext eingegeben und habe die Übungsfehler 
entfernt. Ich kann dann auch mit dem Befehl: Tools-Make All den 
Quelltext überprüfen.
Wie aber erzeuge ich jetzt ein HEX File das ich übertragen kann. 
Benötige ich noch AVR-Studio oder ? Alles was in der Anleitung ab Seite 
15 kommt verstehe ich überhaupt nicht mehr. Ich weiß auch nicht wo oder 
wie ich den Befehl "Make Coff" oder "Make Extcoff" ausführe.

Bitte um Hilfe. Was muss ich einstellen damit ich mein Maschinencode zum 
übertragen bekomme.

Gruß
   Ram99

von Ram99 (Gast)


Lesenswert?

Ich bekomme jetzt diese Meldung wenn ich auf "make all" gehe:

-------- begin --------
avr-gcc (GCC) 3.4.6
Copyright (C) 2006 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.

make.exe: *** No rule to make target `OBJ/main.o', needed by 
`test1.elf'.  Stop.

> Process Exit Code: 2
> Time Taken: 00:00





Wenn ich auf "make programm" gehe kommt:

> "make.exe" program
make.exe: *** No rule to make target `OBJ/main.o', needed by 
`test1.elf'.  Stop.

> Process Exit Code: 2
> Time Taken: 00:00


Bitte helft mir

Ram99

von Michael G. (let)


Lesenswert?

Dein Makefile ist passt nicht zum Projekt. Ich schätze
deine .c Datei heißt nicht main.c.

In dem Makefile sind irgendwo alle Sourcen (.c) gelistet die zu dem
Projekt gehören. Da steht vermutlich 'main.c'. Ändere diesen Eintrag
ab und dann sollte es gehen.

Ansonsten würde ich vorschlagen das du die *.c Dateien und das
Makefile als .zip Archiv postest. Das 'Quelltext überprüfen'
mit 'make all' ist mir nicht ganz klar. Denn wenn das geht sollte
dabei ein hex-file herauskommen.

Ein ganz anderer Ansatz wäre für alles AVRstudio (SP3) zu verwenden.
Das unterstützt nämlich den gcc der WinAVR Installation und du
brauchst kein Makefile schreiben/ändern.
Einfach unter 'Project->New project' den 'AVR GCC' auswählen
und einen Projektname eingeben. Als Ordner kannst du deinen Testordner
angeben. Die 'Create initial file' und 'Create folder' Geschichte
solltest du dann aber abwählen.
Mit der rechten Maustaste kannst du dann jeweils links bei
'Source files' und 'Header files' die vorhandenen Dateien hinzufügen.
Anschließend einmal F7 drücken und fertig.

Wenn du Probleme hast das hex-File in den AVR zu bekommen,
solltest du angeben welchen Programmieradapter du verwendest.


 - Michael


von Ram99 (Gast)


Lesenswert?

Danke für deine Hilfe. Probiere ich später gleich aus.

Findest du das es mit AVRStudio einfacher wird oder ? Das mit dem 
Makefile verstehe ich eh nicht richtig aber habe bisher auch nur 
Erfahrung mit dem Keil μVision/51 Compiler.
Ist es dann auch noch möglich mit dem AVRStudio und GCC in C zu 
programmieren. Habe ein bisschen im Netz gesucht und immer nur Infos 
über Assembler und AVRStudio gefunden.

Kann ich auch AVRStudio 4.12 mit SP4 benutzen oder soll ich nach dem SP3 
suchen ? Was hat es den mit dem 'Create initial file' auf sich. Das 
passiert wenn ich das anwähle ?

Gruß
    Ram99



von johnny.m (Gast)


Lesenswert?

> Das mit dem Makefile verstehe ich eh nicht richtig
Dann ist es mit AVRStudio sicher einfacher. AVRStudio erstellt das 
Makefile jeweils automatisch, es sei denn, man sagt ihm, es soll ein 
externes Makefile verwenden. Das bedeutet einerseits, dass man die 
Optionen über AVRStudio einfach eingeben kann (Drop-Down-Listen, man 
muss sich nicht um die richtige Schreibung kümmern), andererseits ist es 
weniger flexibel, weil man auf einige Optionen (die man als Anfänger 
i.d.R. aber eher weniger benötigt) nicht so direkt zugreifen kann. 
Daneben hat AVRStudio den Vorteil, dass man eine komplette IDE mit 
Simulator usw. hat und nicht zwischen unterschiedlichen Programmen 
hin-und-herschalten muss. Ich habe zwar schon mal gehört, dass AVRStudio 
fehlerhafte Makefiles erstellt hat, habe das Problem aber selber noch 
nicht gehabt. Aber auch die automatische Makefile-Erstellung erfordert 
einige Einstellungen in AVRStudio (Controllertyp, Frequenz...). Ganz von 
selbst geht das da auch nicht.

von Ram99 (Gast)


Lesenswert?

Ist es auch möglich in C zu programmieren mit dem AVRStudio ?
Kann ich auch AVRStudio 4.12 mit SP4 benutzen oder soll ich nach dem SP3
suchen ? Was hat es den mit dem 'Create initial file' auf sich. Das
passiert wenn ich das anwähle ?

Danke für eure Hilfe :)

Gruß
    Ram99

von let (Gast)


Lesenswert?

> Aber auch die automatische Makefile-Erstellung erfordert
> einige Einstellungen in AVRStudio (Controllertyp, Frequenz...).

Genau, daran habe ich nicht gedacht: Unter den Configuration
settings muß der Controller und seine Frequenz eingestellt
werden. Die Optimierungsstufe steht standardmäßig auf -O0.
Da solltest du -Os auswählen. Der Rest müßte dann aber passen.

Das AVRstudio erkennt die gcc Installation und kann dann
neben der Assemblerprogrammierung auch für C verwendet
werden.

Gibt es schon SP4 ? Dann drauf damit ;).
Mit 'create initial file' wird automatisch eine leere Datei
angelegt und dem Projekt hinzugefügt.

 - Michael

von Ram99 (Gast)


Lesenswert?

Also, mit dem Programmer Notepad und GCC habe ich es jetzt hinbekommen. 
Der Fehler war wie "let" es oben beschrieben hat.

Ich habe mir jetzt AVRStudio 4.12 SP4 installiert und ein neues Projekt 
erstellt.
1.)Als Projekt Typ habe ich en AVR GCC ausgewählt.
2.)Als Projekt Name habe ich "Test" ausgewählt und habe keine Hacken bei
   "Create Initial file" und "Create folder" angewählt.
3.)Als Debug platform habe ich "AVR Simulator" und als Device 
"ATtiny2313"
   ausgewählt.
4.)Danach bin ich um mein Quelltext einzugeben in der Spalte "AVR GCC" 
auf
   "Source File -> Create New Source file und habe Test.c gewählt.
5.)Nun habe ich meinen C Code eingegeben und bin danach auf "Projekt 
Options"
   und habe den ATtiny2313 mit 4 MHz und Optimization "0s" ausgewählt. 
Den
   Rest habe ich nicht verändert.
6.)Wenn ich nun kompiliere funktioniert alles ohne Probleme. Nur bei
   Message bekomme ich einen roten Punkt mit der Angabe: "Object file 
does
   not exist". Unten ist ein Auszug.

Loaded plugin STK500
Loaded plugin AVR GCC
Loaded partfile: C:\Programme\Atmel\AVR 
Tools\PartDescriptionFiles\ATtiny2313.xml
gcc plug-in: Created and added C:\Dokumente und 
Einstellungen\Ram99\Desktop\Downloads\test.c to the project
gcc plug-in: Output directory C:\Dokumente und 
Einstellungen\Ram99\Desktop\Downloads\default\ does not exist
gcc plug-in: Created directory C:\Dokumente und 
Einstellungen\Ram99\Desktop\Downloads\default\

Object file does not exist:

AVR Simulator: Please wait while configuring simulator...
AVR Simulator: ATtiny2313 Configured OK
Loaded objectfile: C:\Dokumente und 
Einstellungen\Ram99\Desktop\Downloads\default\Test.elf
Loaded objectfile: C:\Dokumente und 
Einstellungen\Ram99\Desktop\Downloads\default\Test.elf


In Ponyprog kann ich dann die erzeugte *.hex einlesen. Zum übertrageb 
bin ich noch nicht gekommen da ich mir esrt ein ISP Programmer aufbauen 
muss.
Habe ich sonst alles richtig gemacht oder muss man noch irgendwo anderst 
was einstellen damit das File dann auch später im Controller arbeitet?

Gruß

Ram99

von Karl heinz B. (kbucheg)


Lesenswert?

"C:\Dokumente und Einstellungen\Ram99\Desktop\Downloads\test.c"

Leg das mal irgendwo hin, wo keine Leerzeichen im Pfadnamen
auftauchen. Entwicklungswerkzeuge reagieren manchmal auf
solche Dinge allergisch.

von Ram99 (Gast)


Lesenswert?

@ Karl heinz Buchegger

Hej, du hattest Recht. Ich habe den Pfad geändert und seitdem läuft es 
ohne Probleme. Danke für den Tipp.

@all
Großes Lob an die Mitglieder hier. Kommt nicht oft vor das man so 
schnell gute Hilfe in einem Forum bekommt. Jetzt muss nur noch meine 
Anmeldung funktionieren (warte schon 24h auf Passwort) dann bin ich auch 
Mitglied :)

Ram99

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.