Einen wunderschönen guten Abend wünsche ich, auf folgende Gegebenheit kann ich mir einfach keinen Reim machen, vieleicht weiß einer von euch ja woran es liegt? Wenn ich beim AtMega8 ein Programm mit einigen selbstgeschriebenen includes assembliere, funktioniert das wunderbar, wenn ich jetzt aber statt dem Mega8 den Mega16 oder auch Mega32 als Chip der Wahl angebe spuckt mir der Assemblierer einen Overlap Fehler aus : C:\Dokumente und Einstellungen\MASTER\RSTest\RSTest.asm(40): Including file 'C:\Dokumente und Einstellungen\MASTER\RSTest\ASCII_Text.asm' C:\Dokumente und Einstellungen\MASTER\RSTest\ASCII_Text.asm(9): error: Overlap in .cseg: addr=0x1a conflicts with 0x1a:0x1b Soweit so gut, nur woran kann das liegen XD =? Der Code läuft auf dem Mega 8 ja einwandfrei und wird auch ohne Probleme assembliert. Wäre wirklich Dankbar wenn jemand da Licht ins Dunkel bringen könnte ^^. PS: Benutze AVR Studio Version 4.13 Build 528 MfG Simon
Wenn Du den betroffenen Code nicht postest, kann man da nicht viel zu sagen. Klingt aber nach nem typischen Fehler: Die Interrupt-Vektoren sind bei allen AVRs mit mehr als 8 KiB Flash 2 Worte (32 Bit) lang, bei denen mit bis zu 8 KiB (z.B. ATMega8) nur ein Wort (16 Bit). Bei einem Umstieg muss also in jedem Fall die Vektortabelle angepasst werden und v.a. der Code, der nach der Vektortabelle kommt, wenn er mit einem .org eingeleitet wird!
Ah, klar XD vielen Dank Johannes genau das war es ... bei den Interrupt Vektoren eine ungültige addresse ^^ Da muss man erstmal drauf kommen :-P Ich danke für die schnelle und gute hilfe trotz fehlenden Codes :-P ;) MfG Simon
> Da muss man erstmal drauf kommen :-P
Wozu gibt es eigentlich Datenblätter?
...
LOL son dummen Kommentar gibts doch immer wieder und wie konstruktiv :D Wenn ich wüsst wo der Fehler liegt, könnte ich selbst im Datenblatt nachgucken und bräucht ich wohl kaum zu fragen oder!?
Simon wrote: > LOL son dummen Kommentar gibts doch immer wieder und wie konstruktiv :D > > Wenn ich wüsst wo der Fehler liegt, könnte ich selbst im Datenblatt > nachgucken und bräucht ich wohl kaum zu fragen oder!? Es ist doch aber allgemein bekannt, dass fast jeder AVR-Typ eine andere Interrupt-Vektortabelle hat. Es ist also bei Portierung auf einen anderen Typ sowiso die Interrupt-Vektortabelle im Datenblatt nachzuschlagen und anzupassen. Dabei sollten einem das Adressraster schon auffallen, denn die Vektortabelle des Datenblatts enthält ja auch die Adressen in numerischer Form. Unter diesem Aspekt halte ich meinen Beitrag sehr wohl für konstruktiv. ...
Ich auch ;-) Der Blick in´s Datenblatt ist bei mir immer das erste, wenn ein Code nicht will oder der Assembler mehr als üblich meckert.
Jo klar Leute, und Ihr versteht auch immer alles auf anhieb aus den Datenblättern und denkt immer an alles beim Umsteigen...
Nein, das sicher nicht, aber man lernt aus den Fehlern, die man selbst mal gemacht hat. Normalerweise...
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.