www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ICCAVR Fehler


Autor: Germo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

ich hab da ein kleines Problem. Ich bin Anfänger was Mikrocontroller
angeht. Habe mir für den Einstieg ICCAVR besorgt (die demoversion), da
das Programm schon diverse initialisierungen des µc vornimmt.

Nun habe ich den Timer1 Programmiert (µc: atmega8535) so dass er alle
3sec nen overflow interrupt hat.

der Compiler spuckt aber nun beim compilieren folgenden Fehler aus:

!W H:\µc\PROJEK~4\timer12.c(82):[warning] source code specifies an
infinite loop
    iccavr -o timer12 -g -Wl-W -bfunc_lit:0x4.0x2000 -dram_end:0x25f
-bdata:0x60.0x25f -dhwstk_size:16 -fihx_coff -S2 @timer12.lk
!E timer12.o(99): Code address 0x10 already contains a value
!E timer12.o(99): Code address 0x11 already contains a value

die endlos-schleife is beabsichtigt ... aber ich weiß nicht wie man die
beiden Fehler umgehen soll. Die tauchen ja erst in der objekt datei auf
und sind insofern keine direkten programmierfehler.
Hat evtl irgendjemand mal etwas ähnliches gehabt und weiß woran das
liegen könnte? ich weiß nämlich nicht wie ich das beeinflussen kann

danke schonmal im vorraus

Autor: müllo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast Du dort den richtigen Controller in ICC eingestellt?  Notfalls mal
versuchen, das hex-File mittels AVR-Studio oder WinAVR auf den
Controller flashen. (Eventuell auch einmal den Quelltext anhängen)

Gruß müllo

Autor: Germo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Controller sollte in dem Fall ja erstmal egal sein - da würde er ja erst
beim schreiben meckern

aber beim mega8535 hab ich in der liste halt den 'M8535' gewählt mit
internen 8MHz und die include datei 'iom8535v.h' genommen

stellt er ja automatisch ein ... wenn ich nur die ports initialisiere
kommt der fehler auch nicht. Der kommt nur wenn ich einen der timer
dazu aktiviere (sei es der timer0 oder der 16 bit timer1)

ich schreib in dem original quellcode aus dem application builder auch
nur noch 'void main (){}' um zu obs evtl an meinem quellcode liegt
aber selbst da kommt der Fehler:

!E timer12.o(99): Code address 0x11 already contains a value

Hab ich bei den Einstellungen für den timer was übersehen? Dort stell
ich eigentlich nur ein das der timer 0 aktiviert wird mit einem
prescaler von 1024 und einer Zeit von 100ms (er errechnet mir das ich
den Wert mit nem Fehler von 0,2% erreiche) und natürlich aktiviere ich
noch den overflow interrupt.

Im Quellcode selbst scheint der Fehler ja auch nicht zu liegen da er ja
über die xyz.o datei nörgelt ...

Autor: Hilel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kannst Du den Quellcode hier reinstellen. Dann kann man es besser
beurteilen.

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

Bewertung
0 lesenswert
nicht lesenswert
klar - hier mal der generierte code

bis auf die letzte zeile is alles vom application builder erstellt.

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Nun habe ich den Timer1 Programmiert (µc: atmega8535) so dass er
> alle 3sec nen overflow interrupt hat.

Nö! Du hast den application builder benutzt, der dir fertige Routinen
geliefert hat. Nur solltest du die auch mal in main() aufrufen, denn
von alleine wird init_devices() nicht ausgeführt.

Das aber nur am Rande, denn ich denke, dass das nicht der Grund für den
Fehler ist.

Autor: Germo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
der quellcode den ich hier gepostet hab is auch schon lang nich mehr der
erste sondern ein kurz generierter quellcode der den gleichen fehler
ausspuckt ... und ich hätte selbst die main funktion weggelassen würde
der compiler da nicht meckern sigh ich weiß schon wie ich mit c
programmiere, hab schon ein paar kleine progrämmchen programmiert, was
der grund dafür is das ich c als programmiersprache für µc gewählt hab
und nicht assembler - aber das steht hier ja nich zur debatte ...

wollt den ursprung der fehlermeldung wissen und keine konstruktive
kritik hören ...

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Entschuldigung, dann mach dein Scheiß doch selbst.

> E timer12.o(99): Code address 0x10 already contains a value

Ist doch wohl eindeutig, oder? Streng halt mal dein "Hirn" an.

Autor: urlauber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beruhig Dich mal...das sichert Dir auch Antworten

Dein Code so wie er ist geht mit meinem ICCAVR

C:\icc\bin\imakew -f xtest.mak
    iccavr -c -IC:\icc\include\ -e  -l -g -Mavr_enhanced_small -Wa-W
 D:\Develop\software\diverses\xtest.c
    iccavr -o xtest -LC:\icc\lib\ -g -Wl-W -bfunc_lit:0x22.0x2000
-dram_end:0x25f -bdata:0x60.0x25f -dhwstk_size:16 -beeprom:1.512
-fihx_coff -S2 @xtest.lk
Device 1% full.
Done.

Autor: Germo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke - das zeigt schonmal das mit meinem compiler nich alles in ordnung
scheint - ich werde den mal kurz deinstallieren und neu drüber bügeln -
vlt hilft es ja was

Autor: ,,,, (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Germo

Du hast nicht zufällig einen Crack aus dem Internet installiert, um die
Beschränkungen des Compilers aufzuheben? Herr Milton von Imagecraft hat
mir das nämlich mal erzählt, jedenfalls kommt mir die Fehlermeldung
sehr bekannt vor. Ich kann da heute Nachmittag nochmal fragen.

Autor: urlauber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nur zur Info: Mein ICCAVR ist eine Vollversion mit USB-Dongle

Autor: Germo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ne, kein crack
nur die v7 demo mit dem 45 tage limit bzw anschließende beschränkung
auf 4k flash oder so - steht aber auch beim programm oben in der
leiste. erneutes installieren brachte auch keinerlei änderung - der
fehler besteht weiterhin

Autor: urlauber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
habe gerade auf 7.03 aktualisiert - funktioniert auch. Mit und ohne
Dongle. Hatte vorher noch die Version 6.0x drauf weil ich seit über
einem Jahr nur den WinAVR nutze.
Es muss also bei Dir liegen...

Autor: Germo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmm ... seltsam ...

vlt werd ich auch mal auf einen anderen compiler zurück greifen - die
sind dann leider nicht ganz so komfortabel aber damit sollte es ja auch
gehen.

Autor: ,,,, (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, aber lass die Finger weg vom GCC. Der ist Kindergarten, der erzeugte
Code ist langsam und groß (trotz Optimierungen). Außerdem ist der
Compiler sehr buggy und wird auch schlecht gepflegt. Zwar kommen immer
wieder neue Versionen raus, aber alte Fehler werden grundsätzlich nicht
behoben. Compiler sollten wirklich nur Profis entwickeln, sowas ist kein
Hobby für zwischendurch.

Autor: Germo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
könnt ihr mir einen tauglichen freeware c-compiler für die avr µc
empfehlen? habe gerade noch die empfehlung für codevision bekommen,
aber das is auch nur eine demo version und natürlich non-commercial

und assembler mag zwar für den eingefleischten µc kenner am besten
geeignet sein aber da ich mehr ahnung von c habe wollte ich da auch
schon bleiben. ist für mich persönlich ein wenig logischer strukturiert
und auch komfortabler als asm

Autor: ,,,, (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"gut" und "freeware" ist leider ein Widerspruch in sich. Versuche
doch, ICCAVR v6 zu bekommen, dieser Compiler ist sehr gut. Ich habe
schon oft gehört, dass es mit V7 Probleme gibt. Allerdings kannst dich
ja auch mal direkt an Imagecraft wenden. Die reagieren sehr schnell und
hilfsbereit.

Autor: Germo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab die V7 Demo Version nun auch mal auf einem anderen Rechner
probiert mit demselben Ergebnis. Auch da trat der Fehler auf. Die V6
Demo konnte ich gar nicht erst starten. Ich hab nun mal eine mail mit
den Fehlerberichten an ImageCraft geschickt. Bin mal gespannt ob die
darauf eine antwort wissen =)

trotzdem danke für eure Hilfe =)

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.