Forum: Mikrocontroller und Digitale Elektronik Fehler bei Assemblierung beim umstieg vom Mega8 auf Mega16


von Simon (Gast)


Lesenswert?

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

von Johannes M. (johnny-m)


Lesenswert?

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!

von fubu1000 (Gast)


Lesenswert?

code????

von Simon (Gast)


Lesenswert?

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

von Hannes L. (hannes)


Lesenswert?

> Da muss man erstmal drauf kommen :-P

Wozu gibt es eigentlich Datenblätter?

...

von Simon (Gast)


Lesenswert?

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!?

von Hannes L. (hannes)


Lesenswert?

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.

...

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

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.

von Bernd T. (bastelmensch)


Lesenswert?

Jo klar Leute, und Ihr versteht auch immer alles auf anhieb aus den 
Datenblättern und denkt immer an alles beim Umsteigen...

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

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
Noch kein Account? Hier anmelden.