"nutzt keiner den sdcc 80c552?"
In der Tat habe ich den 80C552 noch nie benutzt.
Atmel hat ja 1993 den weltweit ersten preiswerten µC mit internem Flash
rausgebracht (AT89C51) und seitdem benutze ich nur noch Flash, weils so
schön schnell und bequem ist. Und inzwischen hat ja auch jeder andere
8051-Hersteller Flash im Angebot (Cygnal, Maxim, Philips, ...).
Soweit ich weiß ist der 80C552 nur auf irgendwelchen uralten
Schulentwicklungsboards drauf und da wird ja erstmal rudimentäres
Assembler gemacht.
Kann also durchaus sein, daß im SDCC h-File des 552 Fehler sind.
Da hilft dann nur das Datenblatt in die Hand zu nehmen und alle
Definitionen, die man benutzen will, zu überprüfen, ob sie richtig
heißen und die richtige Bit- bzw. Byteadresse haben.
Der 80C552 hat ja gegenüber dem Standard 80C52 ne Menge Abweichungen
(z.B. total kastrierter Timer T2), deshalb ist er mit Vorsicht zu
genießen.
Wenn man den I2C-Bus haben will, ist z.B. der P89C668 viel besser.
Vom Keil C51 gibt es auch eine offizielle Entwicklungsversion die auf
2kB begrenzt ist. Aber es soll auch 4kB bzw. 8kB Versionen geben bzw.
welche die auch an 0x0000 linken können. Die sind jedoch in den
Starterpaketen der 8051-Hersteller versteckt.
Einfach mal im Web suchen oder im Downloadbereich der Hersteller
(s.o.).
Peter