Forum: Mikrocontroller und Digitale Elektronik Targets per Makros unterscheiden (STM32)


von Frank Z. (hardwarecop)


Lesenswert?

Guten Tag,

ich habe eine Anwendung, die sowohl auf nem STM32F042K6, als auch auf 
nem STM32F042F6 laufen wird. Mithilfe des
1
#ifdef STM32F042x6

kann ja überprüft werden, ob es sich um eines der beiden CPUs handelt. 
Wie unterscheidet man zur Kompilierzeit genau, um welche CPU es geht? 
Einfache Frage - ich hoffe die Lösung dazu ist auch einfach :)) Blättere 
gerade die gesamte HAL durch und finde keine feineren 
Unterscheidungs-defines.

Danke im Voraus und liebe Grüße.

: Bearbeitet durch User
von K. H. (hegy)


Lesenswert?

Frank Z. schrieb:
> Wie unterscheidet man zur Kompilierzeit genau, um welche CPU es geht?

Wahrscheinlich garnicht, weil beide Die's (Halbleiterchip) gleich sind 
nur der eine (F) ist an 20 Pins angeschlossen und der andere (K) an 28 
Pins.
--> Datasheet STM32F042x6, Seite 113

von pegel (Gast)


Lesenswert?

Da Du HAL nutzt und der Unterschied in der Pin Zahl liegt, wäre es nicht 
einfacher, je ein CubeMX Projekt zu erstellen und deine Funktionen dann 
als links in beiden Projekten zu nutzen?

von Bauform B. (bauformb)


Lesenswert?

Frank Z. schrieb:
> Wie unterscheidet man zur Kompilierzeit genau, um welche CPU es geht?

Muss man das? Sind die 32K Flash so voll? Sonst könnte man es auch zur 
Laufzeit unterscheiden. Ganz einfach wäre es, wenn bei dem LQFP-32 ein 
GPIO nicht gebraucht wird, der beim TSSOP-20 nicht gebondet ist, z.B. 
PA8. Den legt man auf GND und schaltet den Pull-Up ein. Oder man fragt 
einen externen Baustein ab, den es nur auf der "großen" Platine gibt.

von tom (Gast)


Lesenswert?

Frank Z. schrieb:
> Wie unterscheidet man zur Kompilierzeit genau, um welche CPU es geht

Je nachdem welche build-Umgebung Du nimmst kannst Du irgendwo dann mit 
der -D Option makros=#defines zusätzlich in den buid/compile lauf für 
den C-Preprozessor "einfüttern".

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.