Hallo,
habe mit Keil ein kleines Testprogramm für einen 8051er geschrieben mit
UART usw. und es funktioniert auch alles so wie es soll. Jetzt will ich
das Programm nach IAR Workbench portieren um damit weiterarbeiten zu
können (ist Vorgabe: ich muss das benutzen) und bekomme damit kleine
Teile auch einfach zum laufen. Wenn ich aber das ganze Projekt
kompiliieren will erscheint die folgende Fehlermeldung:
1 | Error[e16]: Segment IDATA_I (size: 0x1be align: 0) is too long for segment definition. At least 0xdf more bytes needed. The problem occurred while
|
... und blabla
Habe hier im Forum schon gelesen, dass IDATA ein Teil des Stack ist.
Offensichtlich ist dessen Größe mit aktuell 0x40 bei mit falsch
eingestellt. Wie kriege ich raus, wie groß ich das stellen darf? Was
passiert wenn ich es zu groß stelle? Was ich schon rausgefunden hab ist
das mein controller max. 256byte Stack haben kann.
Wäre es nicht am einfachsten einfach zu schauen, wie es davor in Keil
eingestellt war? Da hat es ja funktioniert. Leider steht bei den
"Target-Optionen" bei Keil nix drin... nur "Use Memory Layout from
Target Dialog", alle anderen Felder sind leer. Kann man das vielleicht
aus der STARTUP.A51 irgendwie auslesen?
Für den Keil-Linker weiß ich, dass folgende Parameter richtig sind:
...\BL51.EXE RS(256) PL(68) PW(78)
für den Keil Compiler:
..\C51\DB OE
Kann mir jemand damit helfen???
Viele Grüße
Frank