- Labornetzteil AliExpress         
Ergebnis 1 bis 10 von 20

Thema: STM32 programieren mit platformio und mbed

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    10.04.2005
    Ort
    Bad Aibling
    Beiträge
    212
    Versucht habe ich jetzt mal in der platformio.ini die nötigen Makros zu definieren
    Code:
    build_flags = -DPIO_FRAMEWORK_MBED_RTOS_PRESENT -DMBED_CONF_LWIP_IPV4_ENABLED -DMBED_CONF_LWIP_IP_VER_PREF=4
    Dann kommt es nicht mehr zu der oben genannten Fehlermeldung. Leider geht es deshalb immer noch nicht. Er möchte dann im Beispiel Programm die Werte für SSID und Passwort gesetzt haben. Das habe ich mal so versucht.
    Code:
    -DMBED_CONF_APP_WIFI_SSID="ssid" -DMBED_CONF_APP_WIFI_PASSWORD="passwort"
    Da bin ich mir aber nicht sicher das diese -D Optionen für den GCC so funktionieren.

    Fehlermeldungen:
    Code:
    src/NoTimeForRevolution.cpp: In function 'int main()':
    <command-line>:0:25: error: 'ssid' was not declared in this scope
    src/NoTimeForRevolution.cpp:149:39: note: in expansion of macro 'MBED_CONF_APP_WIFI_SSID'
    printf("\nConnecting to %s...\n", MBED_CONF_APP_WIFI_SSID);
    ^~~~~~~~~~~~~~~~~~~~~~~
    <command-line>:0:29: error: 'passwort' was not declared in this scope
    src/NoTimeForRevolution.cpp:150:54: note: in expansion of macro 'MBED_CONF_APP_WIFI_PASSWORD'
    int ret = wifi->connect(MBED_CONF_APP_WIFI_SSID, MBED_CONF_APP_WIFI_PASSWORD, NSAPI_SECURITY_WPA_WPA2);
    ssid und passwort sind Platzhalter für meine echten Werte.

    Kennt ihr vielleicht irgendeine Alternative die leichter zu benutzen ist als das mbed auf diesem oben genannten STM32 Platinchen?

  2. #2
    HaWe
    Gast
    Zitat Zitat von alexander_ro Beitrag anzeigen
    Kennt ihr vielleicht irgendeine Alternative die leichter zu benutzen ist als das mbed auf diesem oben genannten STM32 Platinchen?
    wenn er Arduino-kompatibel ist: Arduino IDE.

    Wenn nicht: es ist ja auch "nur" ein ARM Cortex M4...
    dann alternativ ein anderer STM 32, für den es Arduino board cores gibt
    NUCLEO-F334R8 soll angeblich mit Arduino funktionieren, bin mir aber nicht sicher,
    evt auch andere möglich wie https://www.amazon.de/STM32F4-DISCOV.../dp/B00NYBD9NW

    Oder Adafruit M4, die funktionieren sicher mit der Arduino IDE:
    ein Adafruit Feather M4
    oder ein Adafruit Itsybitsy M4
    oder ein Adafruit Metro M4

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    10.04.2005
    Ort
    Bad Aibling
    Beiträge
    212
    Das war jetzt wohl nicht so ganz eindeutig was ich oben geschrieben hatte. Ich meinte mehr eine Alternative für das mbed die Hardware wollte ich eigentlich weiter benutzen. Stimmt schon das es nur ein Cortex-M4 ist aber wenn man immer alles an Software von Grund auf neu schreiben muss ist es Mühsam voran zu kommen. Arduino kompatibel ist er glaube ich nicht. Zumindest bekam ich von platformio die Fehlermeldung das er es nicht ist. Das war bei dem Versuch eine zwar für STM32 aber Arduino WLAN Bibliothek zu benutzen.

  4. #4
    HaWe
    Gast
    Zitat Zitat von alexander_ro Beitrag anzeigen
    Das war jetzt wohl nicht so ganz eindeutig was ich oben geschrieben hatte. Ich meinte mehr eine Alternative für das mbed die Hardware wollte ich eigentlich weiter benutzen. Stimmt schon das es nur ein Cortex-M4 ist aber wenn man immer alles an Software von Grund auf neu schreiben muss ist es Mühsam voran zu kommen. Arduino kompatibel ist er glaube ich nicht. Zumindest bekam ich von platformio die Fehlermeldung das er es nicht ist. Das war bei dem Versuch eine zwar für STM32 aber Arduino WLAN Bibliothek zu benutzen.
    da habe ich deine "Alternativen-Suche" tatsächlich etwas zu weitgreifend verstanden
    Was deine Versuche mit einer Arduino-Lib angeht (WLAN):
    Das ist nicht das Entscheidende, denn die funktionieren von sich aus nicht unbedingt aus dem Stand mit anderen Frameworks (wegen Serial(), Wire() u.a. Basis-Libs) - sondern ob du einen core findest, den du über den Arduino-Boardmanager laden kannst. M4 cores gibt es ja etliche, nicht nur zu Adafruit M4, sondern auch Teensy mit M4 u.v.a., von daher halte ich es für nicht ausgeschlossen, welche für deinen STM32L4 zu finden und zu laden.
    Aber ohne mich jetzt darauf versteifen zu wollen:
    wenn es sich heraus stellt, dass es weder cores für den STM32L4 gibt noch dass du mit deinem mbed Framework u.ä. weiterkommst, dann wäre IMO ein Wechsel zu einem anderen M4 Board kein Weltuntergang wegen der nötigen 20 EUR (oder weniger) Investition für kompatible Adafruits oder Teensys oder STM32s.
    Das Arduino IDE/API ist aber ja auch auf C++11 aufgebaut, von daher wirst du auch nicht so viel Code neu schreiben müssen, und es ist zukunftssicher, da die Libs und Codes auch künftig für andere, noch neuere und noch leistungsfähigere Boards passen werden.
    Aber wie auch immer: viel Erfolg bei deiner Suche und für deine entsprechende Entscheidung!

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    10.04.2005
    Ort
    Bad Aibling
    Beiträge
    212
    Also was Du mit dem Core meinst kann ich mir zwar etwa vorstellen. Genau weiß ich das aber nicht. Ich würde mal vermuten das sind dann die Definitionen mit den Registern, Portnamen und vielleicht Memorymapping oder so ähnlich. Vielleicht auch ein paar Grundlegende Programmteile.

    Ich finde das ganze egal ob nun mit Arduino oder mbed sehr unübersichtlich es gibt alle möglichen Programmmodule die dann wieder nur mit bestimmten anderen zusammen funktionieren. Aber es wird nicht wirklich angegeben welche das genau sind und es gibt auch oft mehrere die den gleichen Namen haben. Auch bei Header Files habe ich oft das Problem das es nicht gefunden wird. Eine Suche zeigt dann es gibt 5 verschiedene Programmbibliotheken mit dem Filenamen ... welcher ist dann der richtige?

    Das Platinchen habe ich im Rahmen dieser "Elektor Board Games" bekommen deshalb muss ich das da verwenden. Es heißt ja eigentlich das man da auch Support dazu bekommt aber bei der genannten Mailadresse und bei der Elektor bekommt man keine Antwort auf Fragen ... aber bis Ende des Monats soll man fertig sein ... die Platine ist vor einer Woche bei mir angekommen.

    Das Beispiel oben geht nach dem was ich gefunden habe nicht mit diesem Platinchen. Das liegt daran das die von ST gemachte Unterstützung scheinbar für das verwendete WLAN Module die (was auch immer) WiFiInterface nicht implementiert. Nach längerem suchen habe ich ein Beispiel für einen WebServer gefunden: https://os.mbed.com/teams/ST/code/DISCO_L475VG_IOT01-wifi_http_server/

    Irgendwie fehlt beiden Projekten ... Arduino und mbed ... eine Instanz die die Entwicklung koordiniert und dafür sorgt das die Dinge kompatibel sind. Würde man den Linux Kernel genauso Planlos entwickeln gäbe es einen Kernel der zwar viele schöne Teile hat aber nichts passt wirklich zum anderen.

  6. #6
    HaWe
    Gast
    ja, mit cores hast du Recht, es ist all das, was unter packages\company\hardware\cpu\version\cores\ zu finden ist, eigentlich meinte ich aber sogar auch alles übrige in den speziellen cpu packages, mit Dateien zu Bootloaders, drivers, cpu-spez. libraries, tools, variants...
    Wenn es dich interessiert, installiere mal Arduino IDE und dann ein ARM-Zusatz-package, dann siehst du, was alles dabei ist.

    Wenn du bei deiner cpu-Platine bleiben musst und da keine Wahl hast, hat sich ntl alles zu anderen M4s erledigt.

    was du aber mit "Instanz die die Entwicklung koordiniert und dafür sorgt das die Dinge kompatibel sind" meinst, verstehe ich nicht:
    Die übergreifende Kompatibilität aller Boards und cpus (AVR, ARM, ESP, Intel) innerhalb des hierarchischen Arduino APIs stellt die Arduino IDE her, auf der Basis von "Processing", das vorher bereits entwickelt wurde (Ben Fry,Casey Reas) und des Java-basierten "Wiring" Konzepts, das von Hernando Barragán / AG von Massimo Banzi entwickelt und zur eigentlichen Grundlage von "Arduino" wurde - aber das führt hier zu weit.
    Immerhin sorgen alle Arduino Entwickler dafür, dass die neueren Erweiterungen immer rückwärts-kompatibel zu allen anderen cpu-Plattformen bleiben, was auch manchmal etwas hinderlich, und teilweise auch recht bizarr und lähmend gegen grundlegende Verbesserungen ist (z.B. dass die Funktion für pwm-write auf digitalen Pins "analogWrite" heißt) .
    Oder welche "kompatiblen Dinge" meintest du?

    Wie auch immer, wenn du mit deinem STM32L4 bleiben musst und die Arduino IDE benutzen willst, dann kannst du nur hoffen, ein passendes package samt cores dafür zu finden, das sich per Boardmanager einbinden und installieren lässt.

    Arduino nimmt einem jedenfalls sehr schön alle hässlichen low-level-Details ab, man muss sich nicht um fuses, Monster-IDEs oder -Frameworks, makefile, Pfadverwaltung, linker u.v.a. kümmern: wäre es anders, hätte ich nie mit diesen cpus jemals angefangen, und so kann man sich von Anfang an um seine Projekte kümmern, ohne sich mit der Hardware herumkloppen zu müssen (so wie du in deinem TOP-Post zu mbed und platformio beispielsweise).
    Arduino hat dazu gewissermaßen ebenso ein internes und externes Regelwerk wie Linux mit seinem kernel und seinem devtree, nur kann man das nicht recht vergleichen, weil ja ein multiuser-multithreading-multitasking-OS dahinter steckt.
    Bei MCUs für Arduino und avrstudio gibt es aber ja noch nicht mal ein File System und daher auch kein C/C++ nach Posix Definitionen mit einem Datentyp FILE* und z.B. einer stdio.h Lib mit fopen und fclose usw.
    Geändert von HaWe (17.10.2018 um 08:49 Uhr) Grund: typo

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    10.04.2005
    Ort
    Bad Aibling
    Beiträge
    212
    Zitat Zitat von HaWe Beitrag anzeigen
    was du aber mit "Instanz die die Entwicklung koordiniert und dafür sorgt das die Dinge kompatibel sind" meinst, verstehe ich nicht:
    Beim Linux Kernel gibt es immer Betreuer für ein Subsystem das die Entwicklung koordiniert und dafür sorgt das z.B. Schnittstellen zum Netzwerk (WLAN, I2C, SPI, USB, Display) oder Speicherverwaltung definiert und eingehalten werden. Bei Arduino und mbed gibt es zahlreiche nicht kompatible Bibliotheken die immer wieder das gleiche tun auf andere Art meist schwer zu erkennen welche man braucht. In einem älterem Thread hier habe ich schon mal für den Arduino Due was gesucht für parallel Verarbeitung und Timer. Da war das ganze Arduino Zeug aber auch nur Mäßig hilfreich. So lange man nur das machen will was Presse und Buchautoren in dem Endlosen Gelaber für Einsteiger verbreitet ist alles gut. Sicher das ist wichtig aber man sollte nicht vergessen das die ganze Technik erst Nützlich wird wenn man mehr tut als am Terminal "Hello World" ausgeben und eine LED blinkt. Es gibt nicht nur Einsteiger aber vermutlich kann man mit denen leichter Geschäfte machen weil ihnen noch das wissen fehlt Müll von gutem zu trennen.

    C/C++ Code ist ja an sich bereits recht Plattform unabhängig. Man darf nicht die stdc++ mit C++ verwechseln. In der Standardbibliothek gibt es selbstverständlich Dinge die nicht auf beliebig kleiner CPU oder MCU laufen können. Die ARM Cortex M4 sind ja untereinander sehr ähnlich nur die darum gebaute Hardware unterscheidet sich stärker. Was dann für die Entwicklung für verschiedene Vertreter ihrer Klasse eine deutlich Vereinfachung ist. Nur kann ich das noch nicht erkennen das man das auch in der Praxis über blink und serial hinaus anwendet. Ein bisschen Low Level nehmen einem die schon ab aber nur solange man dem Mainstream folgt. Eigene Vorstellungen sind in der Welt noch nicht erwünscht.

Ähnliche Themen

  1. Mbed Mikrocontroller Bibliotheken Header
    Von peterfb im Forum ARM - 32-bit-Mikrocontroller-Architektur
    Antworten: 11
    Letzter Beitrag: 11.03.2018, 11:21
  2. Arduino Due: FreeRTOS installieren und mit Platformio übersetzen
    Von alexander_ro im Forum Arduino -Plattform
    Antworten: 34
    Letzter Beitrag: 12.11.2017, 11:36
  3. arduino atmega2560 & atom & platformio & ubuntu
    Von inka im Forum Arduino -Plattform
    Antworten: 0
    Letzter Beitrag: 13.08.2017, 09:26
  4. Antworten: 1
    Letzter Beitrag: 12.06.2015, 14:50
  5. dynamixel rx-24F mit mbed ansteuern
    Von sh4rky im Forum Motoren
    Antworten: 0
    Letzter Beitrag: 05.06.2012, 11:02

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen