ICCAVR Fehler

Gast #260376
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
Gast #260378
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 ...
Gast #260381
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.
Gast #260382
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 ...
Gast #260384
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.
Gast #260386
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.
Gast #260388
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
Gast #260391
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.
Gast #260392
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
Gast #260393
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.
Gast #260394
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren