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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Frank Z. (hardwarecop)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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".

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.