Forum: Mikrocontroller und Digitale Elektronik Probleme beim Build eines STM32Cube-Projekts mit PlatformIO


von Pius (pius1)



Lesenswert?

Hallo,

ich arbeite derzeit an einem Projekt, bei dem ich die 
STM32Cube-Plattform in Verbindung mit PlatformIO verwende. Mein Ziel ist 
es, ein STM32-Mikrocontroller-Projekt zu erstellen. Leider treten beim 
Build-Prozess des Codes einige Schwierigkeiten auf, insbesondere im 
Zusammenhang mit Datentypen wie uint16_t und uint32_t.

Der Compiler meldet, dass diese Datentypen unbekannt sind und führt zu 
einer Vielzahl von Fehlern. Ich habe sicherheitsshalber die 
erforderlichen Header-Dateien wie stdint.h eingebunden, aber das Problem 
bleibt bestehen.

platformio.ini
1
platform = ststm32
2
framework = stm32cube
3
board = genericSTM32L412KB

Vielen Dank im Voraus!

: Bearbeitet durch User
von Harry L. (mysth)


Lesenswert?

#include <stdint.h>

von Pius (pius1)


Lesenswert?

Ich habe *#include <stdint.h>* schon im main.c drin. Deshalb finde ich 
es auch besonders

von J. S. (jojos)


Lesenswert?

So ein generic Board sehe ich nicht in der STM32 Liste, probiere mal
board = nucleo_l412kb

von Εrnst B. (ernst)


Lesenswert?

Pius schrieb:
> Ich habe *#include <stdint.h>* schon im main.c drin. Deshalb finde ich
> es auch besonders

hast du es auch vor den anderen Includes, insb. den HAL-Includes die 
den Fehler werfen?
Ist natürlich trotzdem Unschön, dass die nicht selber alles Nötige 
reinziehen, aber zumindest ein Workaround.

: Bearbeitet durch User
von Pius (pius1)


Lesenswert?

Ah, danke für den Tipp. Ich habe jetzt das Nucleo Board zum testen 
probiert. Jetzt gibt es keine Fehler mehr beim build. Ich habe für 
meinen Chip versucht selber ein .json File zu erstellen. Anscheinend 
hatte ich dort Fehler drin.

: Bearbeitet durch User
von J. S. (jojos)


Lesenswert?

Der HAL Code holt das stdint.h selber über das device, hier stm32l4xx.h. 
Das muss aber vom buildsystem zusammengebaut werden, deshalb vermute ich 
das eine Einstellung in der Pio config fehlt, z.B. wenn das 
genericSTM32L412 selbst gebaut wurde.

von Pius (pius1)


Lesenswert?

Ich möchte jetzt das .json File vom nucleo_l412kb abändern. Muss ich 
jetzt bei openocd_target und openocd_board etwas ändern?
1
{
2
  "build": {
3
    "cpu": "cortex-m4",
4
    "extra_flags": "-DSTM32L412xx",
5
    "f_cpu": "80000000L",
6
    "mcu": "stm32l412kbu6",
7
    "product_line": "STM32L412xx",
8
    "variant": "STM32L4xx/L412K(8-B)(T-U)_L422KB(T-U)"
9
  },
10
  "debug": {
11
    "default_tools": [
12
      "stlink"
13
    ],
14
    "jlink_device": "STM32L412KB",
15
    "onboard_tools": [
16
      "stlink"
17
    ],
18
    "openocd_board": "st_nucleo_l4",
19
    "openocd_target": "stm32l4x",
20
    "svd_path": "STM32L412.svd"
21
  },
22
  "frameworks": [
23
    "arduino",
24
    "cmsis",
25
    "stm32cube"
26
  ],
27
  "name": "ST Nucleo L412KB",
28
  "upload": {
29
    "maximum_ram_size": 40960,
30
    "maximum_size": 131072,
31
    "protocol": "stlink",
32
    "protocols": [
33
      "jlink",
34
      "cmsis-dap",
35
      "stlink",
36
      "blackmagic"
37
    ]
38
  },
39
  "url": "https://www.st.com/en/evaluation-tools/nucleo-l412kb.html",
40
  "vendor": "ST"
41
}

von J. S. (jojos)


Lesenswert?

wahrscheinlich nicht, die gelten ja für die ganze L4 Serie.

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.