>Auch fällt auf, dass jeder Compiler die MCU SFRs anders bennent.
>Mal heißen die Register GPIO_IOSET, mal nur IOSET oder FIO0SET und
>FIOSET. Gibt's da nicht sowas wie einen Standard? Das ist doch der
>Sinn von C, dass man seinen Code leichter portieren können soll.
Nicht der Compiler benennt, es werden lediglich von den
Compilerherstellern oder bei GNU den "Toolchain-Zusammenpackern" (im
Fall von WinARM bin das ich) Definitionsdateien mitgeliefert, in denen
die SFR-Addressen manchmal etwas "individuell" bezeichnet werden. Das
hat nichts mit der Programmiersprache zu tun. Ansich ist es Sache der
Hersteller, entsprechende Definitionsdateien auf Grundlage der
Bezeichnungen des Datenblatts herauszugeben und damit einen de-facto
Standard zu schaffen, es ist ja nicht wirklich im Interesse der
"Kommerziellen". Dies wird auch von vielen Herstellern so gemacht
(z.B. f. STR7, AT91, ADuC7000), aber es haellt sich dennoch nicht jeder
daran (wie bereits von A.K. angemerkt). Bei Philips ist in diesem
Bereich noch ein wenig Nachholbedarf. Im Moment gibt es meines Wissens
nur "offizielle" Definitionen fuer LPC214x im "Sample Code Bundle"
(Addressen sind aber bei andere LPC2000 meist identisch so die Funktion
im Controller vorhanden). Oft werden fuer Philips ARM die Definitionen
von Keil genutzt (www.keil.com->Device-Database->Header Files). Es gibt
allerdings wie erkannt auch andere (newlib-lpc, GNUARM...). Man kann
aber beim Portieren allermeistens die Definitionsdatei fuer den
urspruenglichen Code nutzen und erspart sich damit Anpassungsarbeit.
Martin Thomas