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
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
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 ...
klar - hier mal der generierte code bis auf die letzte zeile is alles vom application builder erstellt.
> 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.
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 ...
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.
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.
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
@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.
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
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...
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.
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.
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
"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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.