mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik C-Source compilieren


Autor: Blobb (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe die Schaltung (von Thomas Pfeifer) zur Temperaturregelung
meines Laminators nachgebaut. Nun mein Problem:

Die Software muß kalibriert werden. Da ich kein C "spreche" stehe ich 
vor diversen Fehlermeldungen (siehe Anhang). Zum Compilieren der 
Software verwende ich AVR-Studio 4.12 Build 472, in Kombination mit 
WinAVR 20070122.   Um es gleich vorweg zu nehmen: ...ich benötige keinen 
Lehrgang in C-Programmierung, sondern lediglich eine Hilfe um das File 
zu compilieren.



Hier der Link zu Thomas´ Software:

http://thomaspfeifer.net/

Vielen Dank
Blobb

Autor: ozo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das erste warning kommt weil sich der pfad zu delay.h geändert hat, er 
ssagt dir ja sogar, wiw der neue heisst.
Die Signatur von fdevopen hat sich wohl geändert, in der Doku von der 
avr-libc steht sie jetzt als:

FILE* fdevopen   ( int(*)(char, FILE *)   put,
      int(*)(FILE *)  get
           )

Die 0 muss weg...

Autor: pschober (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sieht so aus, als ob das Programm unter einer älteren Version von WinAVR 
geschrieben wurde.
Am einfachsten dürfte es wohl sein, den Autor nach der Version zu 
fragen, und diese zu installieren.

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"AVR-Studio 4.12 Build 472, in Kombination mit
WinAVR 20070122.  "

Zumindest nach offiziellen Angaben von Atmel benötigt das aktuelle 
WinAVR mindestens die Studio-Version 4.13. Das Problem mit dem 
geänderten fdevopen löst das aber auch nicht.

Ich würde es mal mit der letzten 2006-WinAVR-Version probieren.

Oliver

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag zum fdevopen-Problem:

Beitrag "too many arguments to function `fdevopen'"

Oliver

Autor: Blobb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe jetzt versucht mit einer älteren Version von WinAVR 
(20050214)zu compilieren. Folgendes Ergebnis:


> "make.exe" all
avr-gcc -g -Wall -Os -mmcu=atmega8    -c -o Laminator.o Laminator.c
Laminator.c: In function `main':
Laminator.c:87: warning: 'pwm' might be used uninitialized in this 
function
avr-gcc -g -Wall -Os -mmcu=atmega8  -Wl,-Map,Laminator.map -o 
Laminator.elf Laminator.o
avr-objdump -h -S Laminator.elf > Laminator.lst
avr-objcopy -j .text -j .data -O ihex Laminator.elf Laminator.hex
avr-objcopy -j .text -j .data -O binary Laminator.elf Laminator.bin
avr-objcopy -j .text -j .data -O srec Laminator.elf Laminator.srec
avr-objcopy -j .eeprom --change-section-lma .eeprom=0 -O ihex 
Laminator.elf Laminator_eeprom.hex
avr-objcopy -j .eeprom --change-section-lma .eeprom=0 -O binary 
Laminator.elf Laminator_eeprom.bin
avr-objcopy -j .eeprom --change-section-lma .eeprom=0 -O srec 
Laminator.elf Laminator_eeprom.srec

> Process Exit Code: 0




Hierbei stört mich folgende Zeile:
Laminator.c:87: warning: 'pwm' might be used uninitialized in this 
function


Kann mir einer von Euch helfen ? Es geht mir lediglich darum das File zu 
compilieren, es in den AVR zu brennen, damit die Temparaturregelung 
korrekt arbeitet. Was mache ich eigentlich mit dem "makefile" ? Benötige 
ich das zum fehlerfreien compilieren ?

Gruß,

Autor: Snake (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
warnings zu ignorieren ist zwar nicht schön, aber ansonsten war dein 
make doch erfolgreich. brenn einfach mal und schau, obs funktioniert. 
(exit code 0 => kein fehler)

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Was mache ich eigentlich mit dem "makefile" ? Benötige
ich das zum fehlerfreien compilieren ?"

Nix. Du hast schon fertig compiliert. Das hex-file findest du im Ordner 
"default".

"warning: 'pwm' might be used uninitialized in this
function" sagt genau das, was da steht. Der Compiler ist der Meinung, 
daß es eventuell möglich ist, daß die Variable pwm uninitialisiert 
benutzt werden kann. Das liegt nicht am Compiler, sondern am Sourcecode. 
Erfahrungsgemäß liegt der gcc mit der Warnung aber nicht immer richtig. 
Also kannst du dich jetzt beim Autor beschweren, oder das Problem selber 
lösen, oder es einfach so lassen. Fehlerfreie Software gibt es sowieso 
nicht :-)

Oliver

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.