Keil memory overlap

Gast #1708515
Lesenswert?

Hallo ich bearbeite gerade einen 8051(EZ-USB) mit Keil IDE.

Mein Code range ist  0x80 - 0x1FF
Mein xData range ist ab 0x2000

Bis her lief alles glat. Heute habe ich ein neues C-File hinzugefügt für 
eine Funktion.  Dabei nutze ich eine struct aus dem XData.
beim Kompilieren kommt nun die Warnung

CODE SPACE MEMORY OVERLAP
FROM 0003H
TO   0005H

auch wenn ich das File wieder rausschmeise kommt die Warnung noch. Wie 
kann ich sie beheben? Bin ziemlicher Einsteiger.

Gruß Marco
Gast #1708531
Lesenswert?

aaah stimmt.

hatte ja
#pragma NOIV auskommentiert.

nur warum darf man die Interruptvektoren nicht generieren?

und warum wird dieser Adressbereich für Code genommen wenn ich expliziet 
sage ab 0x80 ?

gruß Marco
Gast #1708542
Lesenswert?

Die Cypress FX1/2 haben ein "AutoInterrupt"(oder so ähnlich) Feature. Du 
hast für die USB-Interrupts mehrere Funktionen, die sich wie ISRs 
verhalten. Nur musst du dem Keil mit #pragma NOIV mitteilen, dass er 
daraus keine ISR generieren soll.
Beim 8051 ist es nun mal so, dass die ISRs an bestimmten Stellen liegen. 
Und da legt der Keil die ISrs nun mal hin.
Gast #1708607
Lesenswert?

Danke dir erstmal. Der Code range reicht erstmal, da der 8051 nicht 
wirklich viel zu tun hat. bei Bedarf passe ich das noch an. Der Offset 
war beim Firmwaregrundgerüst von Cypress so angegeben.Ich habe mir noch 
nicht wirklich Gedanken drüber gemacht, da der EZ-USb momentan nur als 
Testgerät dient.

Gruß Marco

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