Controller-Kennung auslesen

Gast #2197490
Lesenswert?

Hallo,

ich möchte gern, dass bestimmte Precompileranweisungen für bestimmte µC 
ausgeführt werden. Der Code soll dabei nicht für jeden µC extra 
compiliert werden müssen, sondern ich möchte, dass der Mikrocontroller 
beim booten selbst erkennt, welchen Code aus den Precompileranweisungen 
er einbinden muss.

Ich habe mir das so vorgestellt:
1
#if (MCU == atmega8)
2
  #define ...
3
  #define ...
4

5
#elif (MCU == atmega32)
6
  #define ...
7
  #define ...
8

9
...
10
#endif

Wobei MCU die Kennung des Mikrocontrollers darstellt. Diese kann man ja 
mit z.B. dem AVR-Progtool auslesen - aber wie macht man das in C?

LG
Korny
Gast #2197498
Lesenswert?

Ai Ai Ai, mal wieder tiefes Unverständnis der Toolchain...

Kurz: Diese #irgendwas sind für den Präprozessor, der VOR dem Compiler 
über den Quellcode geht und im großen und ganzen nur Textersetzung macht 
und andere Dateien einfügt. Danach sind all diese #... VERSCHWUNDEN und 
der Compiler macht weiter. Füg mal -save-temps zur Kommandozeile vom GCC 
hinzu und guck ins s-File.

Was du vorhast ist vollkommen unmöglich. Ich meine es gibt eine 
Möglichkeit mittels Assembler den Typ eines AVR zu lesen (kann mich aber 
irren), besser ist es aber für jeden Typ ein eigenes Hexfile zu erzeugen 
(bzw. das ist die einzige Möglichkeit). Mit gut konfigurierter IDE bzw. 
Makefile ist das kein großer Akt.

PS: Ein AVR bootet nicht (nicht wie ein PC).

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