Forum: Mikrocontroller und Digitale Elektronik ICCAVR Fehler


von Germo (Gast)


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

von müllo (Gast)


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

von Germo (Gast)


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 ...

von Hilel (Gast)


Lesenswert?

Kannst Du den Quellcode hier reinstellen. Dann kann man es besser
beurteilen.

von Germo (Gast)


Angehängte Dateien:

Lesenswert?

klar - hier mal der generierte code

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

von Jens (Gast)


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.

von Germo (Gast)


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 ...

von Jens (Gast)


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.

von urlauber (Gast)


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.

von Germo (Gast)


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

von ,,,, (Gast)


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.

von urlauber (Gast)


Lesenswert?

Nur zur Info: Mein ICCAVR ist eine Vollversion mit USB-Dongle

von Germo (Gast)


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

von urlauber (Gast)


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...

von Germo (Gast)


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.

von ,,,, (Gast)


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.

von Germo (Gast)


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

von ,,,, (Gast)


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.

von Germo (Gast)


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 =)

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.