Hallo Leute! Ich bin kein Neuling mehr wenn es um Programmieren in C und Mikrocontroller geht. Allerdings gilt das nicht für die Verbindung von beidem: Ich habe bis jetzt nur C-Programme geschrieben, die auf dem PC liefen. Und als ich das letzte Mal mit einem Mikrocontroller gearbeitet habe, habe ich in MATLAB/Simulink Modelle erstellt, aus denen ich mir dann C-Code generieren lassen habe. Ich habe nur recht wenig Code selbst ergänzt. In meinem kommenden Projekt werde ich mit dem Board NUCLEO-F767ZI arbeiten (STM32). Den grundlegenden C-Code für die Pin-Belegung werde ich mithilfe des Tools CubeMX von STM erzeugen lassen, den Rest werde ich aber wohl selbst programmieren müssen. Daher meine Frage: Kennt ihr gute Tutorials für STM32F7xx bzw. Code-Beispiele für simple, grundlegende Konfigurationen? Bei meiner letzten Suche im Internet (und hier im Forum) habe ich nur ein paar YouTube-Videos gefunden. Ansonsten waren die meisten Tutorials auf die anderen MCU-Familien (< F7) ausgerichtet. Oder sind die Tutorials für z.B. STM32F4xx auch brauchbar? Das Programming Manual, das ich vom Hersteller STM gefunden habe, bezieht sich leider nur auf die Assembler-Befehle, bringt mir also im Hinblick auf C nicht viel... Wisst ihr irgendwas oder habt ein paar Tipps? Ich bin für jede Hilfe dankbar!
Das Board ist mbed enabled, https://os.mbed.com/platforms/ST-Nucleo-F767ZI/ Ein Beispiel in den Online Compiler laden, kompilieren, das bin file speichern. Das Board per USB Kabel anschliessen und das bin file auf den USB Massenspeicher kopieren, fertig, läuft.
STM32 => Kapitel Tutorials für diverse Tool-Kombinationen Die STM32F4 und -F7 sind sich sehr ähnlich. Die grundlegende Arbeitsweise mit IDE, Compiler, Startupcode, Linkerscript, Bibliotheken, Debugger / Debug-Adapter ist bei allen Cortex-M, und somit allen STM32Fxx, gleich. Letztendlich unterscheidet sich nur die Wahl der korrekten Varianten der genannten Dinge, ein paar Compileroptionen und eben der konkrete Code für die Peripherie-Ansteuerung.
Vielen Dank für den Hinweis! Eigentlich wollte ich fürs Programmieren die System Workbench für STM32 (SW4STM32) benutzen. Das ist eine IDE von STM auf Basis von Eclipse. Kann ich auch einfach den Quellcode aus den Internet-Beispielen da rein kopieren anstatt diesen Online-Compiler zu benutzen? Oder benötigt die Nutzung des mbed OS noch irgendwelche zusätzlichen Libraries, die die System Workbench nicht hat?
Der Online Compiler wäre etwas für einen 'Schnellstart' um etwas blinken zu sehen, editieren ist für wachsende Projekte natürlich etwas mühsamer und debuggen geht auch nicht. Man kann die Projekte aber auch exportieren, SW4STM32 wird auch unterstützt. Es geht auch komplett ohne den Online Compiler mit dem mbed-cli (command line interface). Für Windows gibt es dafür eine einfache Installation die auch eine passende gnu toolchain mitinstalliert. Dann wird ein Beispiel per 'git clone' geholt und kann entweder mit 'mbed compile' übersetzt werden oder mit 'mbed export' auch ein Projekt für die IDE erstellt werden. Intern benutzt mbed für die STM32 auch die HAL die Cube benutzt. Für Hardware Komponenten die mbed nicht unterstüzt kann man also Code mit Cube erzeugen lassen und in zusätzliche Klassen für mbed packen. Im mbed-os5 ist ein RTOS mit drin, das kann man mit so einer fetten MCU auch gut nutzen. Siehe auch: Beitrag "mbed - oder es muss nicht immer Arduino sein"
Dr. Sommer schrieb: > STM32 => Kapitel Tutorials für diverse Tool-Kombinationen > > Die STM32F4 und -F7 sind sich sehr ähnlich. Die grundlegende > Arbeitsweise mit IDE, Compiler, Startupcode, Linkerscript, Bibliotheken, > Debugger / Debug-Adapter ist bei allen Cortex-M, und somit allen > STM32Fxx, gleich. Letztendlich unterscheidet sich nur die Wahl der > korrekten Varianten der genannten Dinge, ein paar Compileroptionen und > eben der konkrete Code für die Peripherie-Ansteuerung. Danke, dann werde ich mir diese Tutorials auch mal zu Herzen nehmen. Johannes S. schrieb: Für Windows gibt es dafür eine > einfache Installation die auch eine passende gnu toolchain > mitinstalliert. Dann wird ein Beispiel per 'git clone' geholt und kann > entweder mit 'mbed compile' übersetzt werden oder mit 'mbed export' auch > ein Projekt für die IDE erstellt werden. D.h. ich bräuchte mindestens einmal Admin-Rechte, um die mbed-cli und die Toolchain auf Windows zu installieren?
mbed-cli möchte auch einen USB Treiber installieren, der ist aber nicht unbedingt nötig. Für die anderen Komponenten wie Python, Bibliotheken für Python, Compiler sind Admin Rechte normalerweise nicht nötig. Aber bei Windows ist es ja meistens besser etwas mit Admin Rechten zu installieren, eine Garantie dafür das es ohne geht kann ich jetzt nicht geben. Versuch macht kluch. Die SW4STM32 IDE will aber auch Treiber für den STLink installieren, wenn die nicht schon vorhanden ist wäre das ein Abwasch. Das mbed-cli ist offene Software unter Apache 2.0 Lizenz und liegt auf github: https://github.com/ARMmbed/mbed-cli falls die admins nörgeln.
Also die Kombination folgender Tools lässt sich problemlos ohne Admin-Rechte installieren: * Eclipse * GNU-MCU-Eclipse-Plugin * GCC-ARM-Embedded * Build-Tools (sh.exe, make.exe) * STM32CubeFx Bibliotheken Lediglich der Treiber für den Programmer, z.B. JLink, muss als Admin installiert werden. Wenn es einen Programmer gibt der über WinUSB funktioniert ließe sich das wohl auch umgehen. Diverse Arten von Bootloader gingen auch ohne Admin-Rechte, aber ohne Debugging ist das Arbeiten doch sehr mühsam.
Ja genau, das Problem ist eher, dass die IT-Abteilung immer ganz genau informiert werden will was installiert werden soll. Ist der JLink jener genannte USB-Treiber, den mbed-cli installieren will?
Hier ist die Liste was das mbed-cli installiert: https://os.mbed.com/docs/v5.7/tools/installing-with-the-windows-installer.html Der 'serial driver' ist für die automatische Erkennung der Boards, das ist aber nicht nötig. Man kennt sein Target ja und stellt das einmal ein 'mbed target NUCLEO_F767ZI'.
Nur mit dem mbed Zeug alleine kann man aber nicht debuggen. Ich würde produktiv nie ohne Debugger arbeiten, und die brauchen m.W. immer Treiber. Da die aber von hinreichend seriösen Firmen wie ST (Debugger "ST-Link") oder Segger (Debugger "J-Link") stammen und von allen möglichen Firmen kommerziell genutzt werden, sollte die IT sich da nicht allzu sträuben...
Ich hab vorhin überlesen dass du ein Nucleo nutzt. Da ist ja ein ST-Link Debugger drauf, daher wirst du den vermutlich nutzen wollen. Dafür brauchst du den ST-Link-Treiber: http://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-utilities/stsw-link009.html
Und den bringt die IDE Installation schon mit. Man kann die mbed-cli Komponenten auch selber einzeln installieren, aber sowas mag der gemeine Windows User ja eher nicht. Und weil mbed Multi Kulti ist kann man auch auf Linux oder MacOS arbeiten. Und wenn der GCC nicht gut genug ist kann man IAR oder Keil (=ARM) verwenden. Da es ja scheinbar um eine größere Bude geht: für git und hg müssen die Konfigs angepasst werden wenn der Internetzugang über einen Proxy läuft.
Johannes S. schrieb: > Man kann die mbed-cli Komponenten auch selber einzeln installieren, aber > sowas mag der gemeine Windows User ja eher nicht. So könnte man aber besser kontrollieren, was Admin-Rechte hat und was nicht - man kann dafür sorgen dass ausschließlich der Treiber von ST so installiert wird, und der Rest mit User-Rechten. Johannes S. schrieb: > Und wenn der GCC > nicht gut genug ist kann man IAR oder Keil (=ARM) verwenden. Der GCC ist schon sehr gut, und kann auch aktuelle Sprachstandards. Ist nur etwas fummeliger zu bedienen.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.