Forum: Mikrocontroller und Digitale Elektronik Controller-Kennung auslesen


von Korny (Gast)


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

von Olaf (Gast)


Lesenswert?

Ueberleg noch mal ganz angestrengt was wohl Precompiler und Compiler
bedeutet!
Ohne jedesmal neu zu compilieren geht das nicht.

Olaf

von g-ast (Gast)


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).

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.