Hallo, ich bin Anfänger und es geht um ein STM 32F407. Ich konfiguriere in CubeMX und übertrage den Code in System Workbench... Nun gehe ich praktisch nach Anleitung vor, ich lasse mir von CubeMx den Code für mein kleines LED-Test-Projekt generieren und schreibe in der Workbench meinen Code in die While(1)-Schleife der main.c-Datei im Ordner Src. Anschließend lasse ich über den 010-Button den Binärcode für das Board erstellen und dabei tritt unten schon folgende Meldung auf: " make: *** [Src/main.o] Error 1 Src/subdir.mk:27: recipe for target 'Src/main.o' failed " Beim Debuggen pflanzen sich die Fehlermeldungen dann entsprechend fort. Was mache ich falsch?^^ Vielen Dank im Voraus
Hallo Jandro schrieb: > " make: *** [Src/main.o] Error 1 > Src/subdir.mk:27: recipe for target 'Src/main.o' failed " Das ist ein Folgefehler. Der eigentliche Fehler ist weiter oben im log. da1l6
okay dann zweiter Versuch. Das erste, was rot unterlegt wird, ist das hier: c:\ac6\systemworkbench\plugins\fr.ac6.mcu.externaltools.arm-none.win32_1 .16.0.201807130628\tools\compiler\lib\gcc\arm-none-eabi\7.2.1\include\st dint.h:9:16: fatal error: stdint.h: No such file or directory
Scheint mit so als sei mit der Installation von SystemWorkBench irgendwas mau wenn er schon die Includes nicht findet. Gruß
es muss an mir liegen, denn der Fehler tritt auf zwei verschiedenen Rechnern auf (Hochschule und bei mir zu Hause)^^ Und an der Hochschule kann das Ding laufen, ich habe es mit eigenen Augen gesehen
Dann zeig mal den gesamten Build-Log und auch den Source Code, sowie die Stelle die angemeckert wurde, und prüfe ob die stdint.h wirklich nicht existiert. Prüfe außerdem ob mindestens mit -std=c99 kompiliert wird.
ich habe es jetzt leider gerade nicht zur Hand :( Womöglich hat es was mit dem Speicherort zu tun, denn als der Fehler in der Hochschule auftrat hat ein Mitarbeiter da alles gelöscht und neu angelegt und meinte nur, dass ich keine Doppelklicks auf die .elf-Datei machen darf, da das Programm so keinen Zugriff kriegt... er war aber nur sehr kurz angebunden... ich habe aber auch keine Doppelklicks mehr gemacht außer auf dei main-Datei, damit ich dort meinen Code einfügen kann
also muss ich generell noch etwas machen, bevor ich auf den 010-Button klicke? Der hat da irgenwelche Optionen im Run bzw. Debug-Menü eingestellt
Jandro schrieb: > und meinte nur, dass ich keine Doppelklicks auf die .elf-Datei > machen darf, da das Programm so keinen Zugriff kriegt Äh, was. Womit würde man die auch öffnen wollen, mit dem Hex-Editor? Bis zum Anlegen der .elf-Datei kommst du ja gar nicht. Selbst wenn, wäre die Fehlermeldung eine andere.
nein, die wird dann in der Workbench im C/C++ Bildschirm angezeigt.. aber egal. Die .elf-Datei wird aber trotz der Fehlermeldung erstellt!
Jandro schrieb: > Die .elf-Datei wird aber trotz der Fehlermeldung erstellt! Das kann nicht sein. Dann gehört die Fehlermeldung nicht zum Compiler-Lauf. Irgendwas passt da nicht zusammen.
Jandro schrieb: > c:\ac6\systemworkbench\plugins\fr.ac6.mcu.externaltools.arm-none.win32_1 .16.0.201807130628\tools\compiler\lib\gcc\arm-none-eabi\7.2.1\include\ Geh doch mal in deinen Explorer und schau unter dem Pfad nach, ob die "stdint.h" in dem Ordner liegt und ob du die Datei öffnen kannst. Wenn die Datei dort liegt, dann ist Sie zumindest in SW4STM32 schon mal richtig eingebunden. Wenn du Sie im Explorer mit Notpad etc. öffnen kannst, SW4STM32 aber keinen Zugriff hat, dann führe doch SW4STM32 mal mit Admin-Rechten aus... Guten Gelingen, Mathias
aber wenn ich mein Projekt von CubeMx in einem Ordner speichere und SystemWorkbench beim Importieren ohne Probleme darauf zugreifen kann, wie kann dann etwas fehlen? Ich verstehe das nicht -.- Ich blicke überhaupt nicht durch
Jandro schrieb: > wie kann dann etwas fehlen? Indem es bei System Workbench selber, außerhalb des Projekts, fehlt. Das ist aber etwas unwahrscheinlich. Vermutlich ist das Projekt falsch konfiguriert. Nur weil SW das anscheinend korrekt importiert, muss da noch lange nicht alles richtig eingestellt sein.
Nein, der Mitarbeiter von der Uni hat nur ganz wenige Klicks gemacht und es leif durch -.- Und ich kann es aber nicht nachvollziehen, was er geamcht hat...
Kann ja sein, aber solange du nicht die dir genannten Punkte überprüfst kann dir hier auch keiner helfen. Oder sollen wir erraten was der Mitarbeiter gemacht hat?
vielleicht mache ich ja grundlegend was falsch, muss ich nach dem Importieren und meinem Code in der Main-Datei noch etwas beachten und einstellen, bevor ich die .elf und .bin-Dateien erstellen lasse?
Dr. Sommer schrieb: > Prüfe außerdem ob mindestens mit -std=c99 kompiliert wird. Ich bin ein blutiger Anfänger und habe keine Ahnung, wovon du sprichst :D
Hast du der SystemWprkbench denn auch mitgeteilt, wo deine ganzen .h liegen? Unter Project->Properties. Da öffnet sich ein Fenster da klickst du auf c/c++ General und dann auf Path and Symbols. Da kannst du dann mitteilen, wo sie liegen. Damit hatte ich am Anfang jedenfalls ganz schön zu kämpfen.
Jandro schrieb: > Klicks gemacht Ich lese hier die ganze Zeit nur, dass Du Dich reichlich naiv und unbeholfen durch die Gegend klickst. Wie wäre es denn, wenn Du Dich stattdessen endlich einmal Zeile für Zeile durch das Build-Log arbeitest und versuchst, jeden (JEDEN!) einzelnen Schritt nachzuvollziehen. Spätestens dann, wenn Du bei Deinem Programm auf irgendeinen Fehler stoßen solltest, der möglicherweise mit der Kompilierung selbst zu tun hat, benötigst Du solche Kenntnisse.
J. T. schrieb: > Hast du der SystemWprkbench denn auch mitgeteilt, wo deine ganzen .h > liegen? Muss man nicht. Das weiß der Compiler von selbst. Jandro schrieb: > Ich bin ein blutiger Anfänger und habe keine Ahnung, wovon du sprichst > :D Von der Kommandozeilenoption -std=c99 welche an den Compiler übergeben wird und welche den Sprachstandard setzt.
Also in der Konfiguration habe ich ja nicht viel zu tun. Ich habe für mein kleines LED Projekt gerade mal 2 Pins als GPIO-Output konfiguriert, low und no pull up/down... und im Projektmanager habe ich für Toolchain/IDE SW4STM32 und "Generate under root" eingestellt... ich bin praktisch nach Anleitung vorgegangen.. in der Clock Configuration habe ich gar nichts angerührt... das war alles, was ich in CubeMx gemacht habe
Dr. Sommer schrieb: > J. T. schrieb: >> Hast du der SystemWprkbench denn auch mitgeteilt, wo deine ganzen .h >> liegen? > > Muss man nicht. Das weiß der Compiler von selbst. Aber nur bei den ganzen Standardgeschichten die bei C dabei sind. CubeMX schmeißt da dann noch den HAL-krams dazu. Alles weitere musst du, je nach Ablageort händisch angeben. Desweiteren hab ich es auch schon einige Male gehabt, dass er mir auch nicht kompilieren wollte, nachdem ich dann explizit angeben hab, wo die Files liegen, ging es dann.
Also hier ist der gesamte Durchlauf
Was steht am Ende der roten Zeile? Das ist auf dem Bild nicht zu sehen
ich habe es ja eigentlich schon geschrieben include\stdint.h:9:16: fatal error: stdint.h: No such file or directory
Jandro schrieb: > Also in der Konfiguration habe ich ja nicht viel zu tun. Da wird aber einiges automatisch angelegt. Bei Embedded-Projekten muss immer einiges konfiguriert werden. Da kann einiges falsch sein. J. T. schrieb: > Aber nur bei den ganzen Standardgeschichten die bei C dabei sind. Um die geht es ja (stdint.h). Jandro schrieb: > Also hier ist der gesamte Durchlauf Da sind 3 Zeilen abgeschnitten. Zeige es doch mal als Text. Wieso gibt es eigentlich seit ein paar Jahren den Trend, Programme und Fehlermeldungen als Screenshot zu zeigen?
Wie sieht das denn bei dir in den includes aus? Wie man da hinkommt, hab ich n paar Beiträge weiter oben beschrieben. Die "gelben" Ordner sind von Anfang an mit eingebunden bei mir, und die "lila" Ordner sind von mir hinzugefügt. Du solltest eigentlich mindestens den Inc Ordner haben, da müssten die ganzen Sachen wie stdint.h und stdio.h usw weiter drin sein.
J. T. schrieb: > Du solltest eigentlich mindestens den Inc Ordner haben, da müssten die > ganzen Sachen wie stdint.h und stdio.h usw weiter drin sein. Nein, die müssten in der Compiler-Installation selbst sein. Den Pfad muss man nirgendwo angeben, das macht der Compiler von selbst.
12:26:24 **** Incremental Build of configuration Debug for project Blink_LED **** make all Building file: ../startup/startup_stm32f407xx.s Invoking: MCU GCC Assembler C:\Users\**\Desktop\Testprojekte\Blink_LED\Debug arm-none-eabi-as -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -I"C:/Users/**/Desktop/Testprojekte/Blink_LED" -g -o "startup/startup_stm32f407xx.o" "../startup/startup_stm32f407xx.s" Finished building: ../startup/startup_stm32f407xx.s Building file: ../Src/main.c Invoking: MCU GCC Compiler C:\Users\**\Desktop\Testprojekte\Blink_LED\Debug arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 '-D__weak=__attribute__((weak))' '-D__packed=__attribute__((_packed_))' -DUSE_HAL_DRIVER -DSTM32F407xx -I"C:/Users/**/Desktop/Testprojekte/Blink_LED/Inc" -I"C:/Users/**/Desktop/Testprojekte/Blink_LED/Drivers/STM32F4xx_HAL_Driv er/Inc" -I"C:/Users/**/Desktop/Testprojekte/Blink_LED/Drivers/STM32F4xx_HAL_Driv er/Inc/Legacy" -I"C:/Users/**/Desktop/Testprojekte/Blink_LED/Drivers/CMSIS/Device/ST/ST M32F4xx/Include" -I"C:/Users/**/Desktop/Testprojekte/Blink_LED/Drivers/CMSIS/Include" -Og -g3 -Wall -fmessage-length=0 -ffunction-sections -c -fmessage-length=0 -MMD -MP -MF"Src/main.d" -MT"Src/main.o" -o "Src/main.o" "../Src/main.c" In file included from C:/Users/**/Desktop/Testprojekte/Blink_LED/Drivers/CMSIS/Include/core_cm 4.h:44:0, from C:/Users/**Desktop/Testprojekte/Blink_LED/Drivers/CMSIS/Device/ST/STM32F 4xx/Include/stm32f407xx.h:183, from C:/Users/**/Desktop/Testprojekte/Blink_LED/Drivers/CMSIS/Device/ST/STM32 F4xx/Include/stm32f4xx.h:149, from C:/Users/**/Desktop/Testprojekte/Blink_LED/Drivers/STM32F4xx_HAL_Driver/ Inc/stm32f4xx_hal_def.h:46, from C:/Users/**/Desktop/Testprojekte/Blink_LED/Drivers/STM32F4xx_HAL_Driver/ Inc/stm32f4xx_hal_rcc.h:45, from C:/Users/**/Desktop/Testprojekte/Blink_LED/Inc/stm32f4xx_hal_conf.h:244, from C:/Users/**/Desktop/Testprojekte/Blink_LED/Drivers/STM32F4xx_HAL_Driver/ Inc/stm32f4xx_hal.h:46, from C:/Users/**/Desktop/Testprojekte/Blink_LED/Inc/main.h:51, from ../Src/main.c:42: c:\ac6\systemworkbench\plugins\fr.ac6.mcu.externaltools.arm-none.win32_1 .16.0.201807130628\tools\compiler\lib\gcc\arm-none-eabi\7.2.1\include\st dint.h:9:16: fatal error: stdint.h: No such file or directory # include_next <stdint.h> ^~~~~~~~~~ compilation terminated. Src/subdir.mk:27: recipe for target 'Src/main.o' failed make: *** [Src/main.o] Error 1 12:26:26 Build Finished (took 2s.649ms)
Wahrscheinlich ist der Compiler unter einem ganz anderen Pfad installiert als der, für den er selbst generiert wurde. Dann erwartet er trotzdem, dass sich die zugehörigen Bibliotheken sowie die Standardbibliotheken an dem ursprünglichen Pfad befinden. Ggf. muss man die entsprechenden Pfade für Header und Bibliotheken explizit übergeben. Beim GCC lassen sich die Bibliothekspfade mittels "gcc -print-search-dirs" anzeigen. Nein, es gibt keinen Button mit dieser Bezeichnung, auf den man einfach klicken kann. Hier ein Teil des Hilfetextes von GCC 4.8:
1 | -dumpspecs Alle eingebauten Spezifikationszeichenketten anzeigen |
2 | -dumpversion Compilerversion anzeigen |
3 | -dumpmachine Zielprozessor des Compilers anzeigen |
4 | -print-search-dirs Verzeichnisse im Suchpfad des Compilers anzeigen |
5 | -print-libgcc-file-name Name der Begleitbibliothek des Compilers anzeigen |
6 | -print-file-name=<lib> Vollen Pfad zur Bibliothek <lib> anzeigen |
7 | -print-prog-name=<prog> Vollen Pfad zur Compilerkomponente <prog> anzeigen |
8 | -print-multiarch Normalisiertes GNU-Tripel für das Ziel anzeigen, |
9 | als Komponente im Bibliothekspfad verwendet |
10 | -print-multi-directory Wurzelverzeichnis für Versionen von libgcc anzeigen |
11 | -print-multi-lib Abbildung zwischen Kommandozeilenoptionen und |
12 | mehreren Suchverzeichnissen für Bibliotheken anzeigen |
13 | -print-multi-os-directory Relativen Pfad zu Betriebssystembibliotheken |
14 | anzeigen |
15 | -print-sysroot Verzeichnis der Ziel-Bibliotheken anzeigen |
16 | -print-sysroot-headers-suffix Den für Headersuche verwendeten sysroot-Suffix anzeigen |
Ggf. sind also auch noch einige andere eingestellten Pfade zu kontrollieren.
Ich würde vor allem erst mal die abhängig generierten Dateien löschen. Andernfalls kannst Du Dich natürlich auch durch die Datumsangaben der Dateien hangeln. Nach Datum sortieren... Es ist nämlich immer wieder toll, wenn die Zieldatei existiert obwohl der Erstellungsprozess schiefgelaufen ist. Üblicherweise löschen die Make-Prozesse keine Dateien, sondern ersetzen sie nur dann, wenn es was Neues gibt.
Such doch mal nach allen "stdint.h" in C:\ac6 (Windows-Suche) . Ggf. einfach mal System Workbench neu installieren.
wie gesagt kam das selbe am Rechner der Uni + Hier auf meinem privaten Rechner zu Hause^^.. das ist einfach verrückt... ich habe übrigens mal nur importiert ohne einen eigenen Code in der main-Datei einzufügen.. es bleibt bei den selben Fehlermeldungen... Der Mitarbeiter hat gestern irgendetwas in den Run-Configurations eingestellt und dann ging es plätzlich ohne Probleme..
Jandro schrieb: > fatal error: stdint.h: No such file or directory Suche mal auf dem PC nach weiteren "stdint.h" unterhalb vom Ordner "c:\ac6\systemworkbench\plugins\fr.ac6.mcu.externaltools.arm-none.win32_ 1 .16.0.201807130628\tools" Die oben angegebene Datei ist ein stub, der auf eine andere Datei verweisen soll - die leider auch "stdint.h" heisst (aber in einem anderen Verzeichnis steht). Ich habe hier auch einen arm-gcc 7.2.1, den benutzt NXP im aktuellen MCUXpresso.
Ich vermute, du hast das Projekt zunächst mit der falschen Einstellung für die Toolchain in CubeMX generiert, dann den Fehler bemerkt, umgestellt und nochmal generiert. Das geht in die Hose. Also nochmal durchstarten - alle Einstellungen in CubeMX kontrollieren, das bisherige Projekt-Verz. vollst. löschen und neu generieren.
ich habe von Anfang an Toolchain auf STM gestellt, weil ich es nach Anleitung gemacht habe... den Ordner habe ich nun bereits 5 mal gelöscht und neu generiert. Egal was ich mache, ohne weitere Enstellungen in der Bench kommt immer wieder die gleiche Fehlermeldung, wenn ich die Binärdatei erstellen will
Jandro schrieb: > ich habe von Anfang an Toolchain auf STM gestellt Es gibt keine "STM-Toolchain"! Entweder SW4STM32 oder TrueStudio. Irgend etwas hast du eben nicht richtig eingestellt, da sowohl die Workbench wie auch TrueStudio bei korrekten Einstellungen out-of-the-box läuft.
Suche mal nach irgendeiner stdint.h auf deiner Festplatte. Dann gehst in die Pfadeinstellungen und gibst diese stdint.h dort dann mal explizit an. Auf add klicken, dann bei allen drei Kästchen das Häckchen machen, auf Workspace klicken, den Pfad angeben, ok klicken, nochmal versuchen zu kompilieren.
J. T. schrieb: > Suche mal nach irgendeiner stdint.h auf deiner Festplatte. Dann gehst in > die Pfadeinstellungen und gibst diese stdint.h dort dann mal explizit > an. > Auf add klicken, dann bei allen drei Kästchen das Häckchen machen, auf > Workspace klicken, den Pfad angeben, ok klicken, nochmal versuchen zu > kompilieren. Das ist auch nur rumdoktern an den Symptomen.... Wird mit hoher Wahrscheinlichkeit auch nicht funktionieren. Der Fehler ist bereits viel früher gemacht worden.
Nochmal: Die Pfade zu Standard-C-Headern wie stdint.h muss man nicht in den Projekt-oder Compilereinstellungen angeben. Die findet der Compiler selbst. Wenn er das nicht tut, ist wahrscheinlich die Compiler-Installation kaputt. Einfach mal den Compiler neuinstallieren und sicherstellen dass man nicht mehrere GCC's und mehrere stdint.h auf dem Rechner hat.
also auf dem Rechner ist unter dem angegebenen Pfad eine stdint.h. und eine stdint-gcc.h. -Datei Habe die stdint.h.-Datei mit Visual Studio geöffnet, da steht folgendes: #ifndef _GCC_WRAP_STDINT_H #if _STDC_HOSTED_ # if defined __cplusplus && __cplusplus >= 201103L # undef __STDC_LIMIT_MACROS # define __STDC_LIMIT_MACROS # undef __STDC_CONSTANT_MACROS # define __STDC_CONSTANT_MACROS # endif # include_next <stdint.h> #else # include "stdint-gcc.h" #endif #define _GCC_WRAP_STDINT_H #endif
Es liegt garantiert nicht an der Toolchain und der Installation! Sowohl SW4STM32 wie auch TrueStudio bringen ihre eigene Toolchain mit, und installieren die auch korrekt. Dabei ist es auch egal, ob auf dem PC weitere Toolchains für die selbe Architektur bereits installiert sind.
Harry L. schrieb: > Es liegt garantiert nicht an der Toolchain und der Installation! Und woran dann sonst? Es wird ein Element der Toolchain nicht gefunden! Vielleicht ist bei der Installation etwas schief gelaufen. So etwas wie -nostdinc sehe ich auch nicht. Mal alle stdint.h auf dem Rechner suchen.
Dr. Sommer schrieb: > Und woran dann sonst? Falsche Konfiguration bereits im CubeMX. Dr. Sommer schrieb: > Mal alle stdint.h auf dem Rechner suchen. Bringt gar nix. Das ist nur eine Folge der falschen Einstellungen. Dr. Sommer schrieb: > Vielleicht ist bei der Installation etwas schief gelaufen. Möglich, aber dennoch eher unwahrscheinlich.
ich werde hier nur noch weiter verwirrt, bringt mir nichts
Jandro schrieb: > ich werde hier nur noch weiter verwirrt, bringt mir nichts ...weil du nicht systematisch vorgehst.
Harry L. schrieb: > Falsche Konfiguration bereits im CubeMX. Die relevante Ausgabe von CubeMX beschränkt sich hier auf die generierte Kommandozeile. Die sieht aber gut aus. Durch Fehlkonfiguration von Peripherie & Co kann man da nichts falsch machen. Das würde sich nur durch Fehlverhalten beim Ausführen äußern, aber nicht beim kompilieren.
das würde ich gerne, aber mir fehlt das Wissen. Nichts von dem was ich in meinem E-Technik-Studium gelernt habe, kann ich hier anwenden, ich arbeite zum ersten Mal mit einem Microcontroller. Der Arduino konnte die Anforderungen leider nicht erfüllen, mit dem habe ich mich schon gut angefreundet... ich weiß nicht womit ich hier anfangen soll
Jandro schrieb: > ich weiß nicht womit ich hier anfangen soll Windowstaste + F drücken, nach stdint.h suchen, Ergebnis zeigen. Sagen ob du noch andere GCC-Installationen auf dem Rechner hast.
Dr. Sommer schrieb: > Harry L. schrieb: >> Falsche Konfiguration bereits im CubeMX. > > Die relevante Ausgabe von CubeMX beschränkt sich hier auf die generierte > Kommandozeile. Die sieht aber gut aus. Durch Fehlkonfiguration von > Peripherie & Co kann man da nichts falsch machen. Das würde sich nur > durch Fehlverhalten beim Ausführen äußern, aber nicht beim kompilieren. Eher in den Grundeistellungen zur Code-Generierung. Böse Falle dabei: Wenn man hier etwas ändert, ist es eine gute Idee, den bisher generierten Code vor dem nächsten Generieren zunächst vollst. zu löschen. Wenn die Einstellungen korrekt sind, genügt ein Doppelklick im Explorer auf .cproject um das Projekt zu öffnen, und das Compilieren (Strg-B) läuft fehlerfrei ohne jede weitere Einstellung in SW4STM32 oder TrueStudio. Wenn das nicht so läuft, hat man es bereits im CubeMX vermurkst und jede weitere Fehlersuche im Projekt selbst ist sinnlos.
:
Bearbeitet durch User
Harry L. schrieb: > Eher in den Grundeistellungen zur Code-Generierung. Der generierte Code beeinflusst nicht die Suchpfade des Compilers.
wenn ich im Suchfeld stdint.h eingebe, werden mir 282 h.-Dateien angezeigt, die aber einen anderen Namen haben...
Dr. Sommer schrieb: > Harry L. schrieb: >> Eher in den Grundeistellungen zur Code-Generierung. > > Der generierte Code beeinflusst nicht die Suchpfade des Compilers. Der Code selbst nicht, aber die Einstellungen im Project-File,und der Code selbst und die Directory-Struktur unterscheidet sich teilweise auch. Kannst du mir ruhig glauben! Ich hatte das ähnlich gedacht wie du, und bin am Anfang in die selbe Falle getappt.
:
Bearbeitet durch User
Gib mal "name:stdint.h" ins Suchfeld ein.
Harry L. schrieb: > Der Code selbst nicht, aber die Einstellungen im Project-File,und der > Code selbst und die Directory-Struktur unterscheidet sich teilweise > auch. Die Einstellungen beeinflussen aber nur die Kommandozeile, und die beeinflusst den Suchpfad. Die Kommandozeile sieht aber ok aus. Es gibt keinen weiteren geheimen Kanal wie die Einstellungen den Compiler beeinflussen können.
da findet er gar nichts, obwohl ich eine Datei mit dem Namen selbst geöffnet habe...-.- Ich habe keine Lust mehr
Jandro schrieb: > das würde ich gerne, aber mir fehlt das Wissen. Nichts von dem was ich > in meinem E-Technik-Studium gelernt habe, kann ich hier anwenden, ich > arbeite zum ersten Mal mit einem Microcontroller. Dann musst Du Dir eben selbst die Grundlagen erarbeiten, so wie es hier fast alle Fachkundigen selbst getan haben. Irgendwo "draufzuklicken" vermittelt nicht das notwendige Wissen. > Der Arduino konnte die > Anforderungen leider nicht erfüllen, mit dem habe ich mich schon gut > angefreundet... Damit hättest Du dann ein einfaches Hobby-Niveau erreicht, aber nicht das, was man von einem Ingenieur einer entsprechenden Disziplin erwarten kann. Ich habe Dir bereits oben schon in aller Deutlichkeit geschrieben, wie beim GCC, der ja Deiner Toolchain zugrundeliegt, die entsprechenden vorkompilierten Pfadeinstellungen herauszufinden sind. Die Tatsache, das so etwas nicht durch einfaches "Draufklicken" geht, bedeutet nicht, dass es nicht geht, sondern Du selbst einen Weg finden musst, diese Information auf der Kommandozeile dem GCC zu entlocken. > ich weiß nicht womit ich hier anfangen soll Frag Mutti, während sie Dir die Schuhe zubindet.
Jandro schrieb: > da findet er gar nichts, obwohl ich eine Datei mit dem Namen selbst > geöffnet habe...-.- Ich habe keine Lust mehr Dann brich Dein Studium an und gehe Ponys streicheln. Wenn Deine Frustrationsgrenze so niedrig liegt, bist Du völlig fehl am Platze für eine anspruchsvolle technische Aufgabe.
Ich hab dir mal ein Beispielprojekt gezipped: https://cloud.it-livetalk.de/index.php/s/FyiM6f5AWtAkwsw Wenn das fehlerfrei compiliert, weist du, daß dein SW4STM32 korrekt installiert wurde. Öffnen durch Doppelklick im Explorer auf .cproject.
Jandro schrieb: > also auf dem Rechner ist unter dem angegebenen Pfad eine stdint.h Ist das die einzige stdint.h auf Deinem PC? Dann hast Du leider vergessen die LibC mit zu installieren. Sollte irgendwas mit "newlib" oder "redlib" heissen. Deren stdint.h sollte dann allderdings in einem anderen Ordner zu finden sein.
:
Bearbeitet durch User
Hört auf, euch an der stdint.h aufzureiben!!! Das ist ein Symptom und nicht die Ursache der Probleme. Das führt so zu nichts.
ich habe mit Sicherheit keine niedrige Frustrationsgrenze, ich habe mich in meinem Studium richtig reingehängt. Meine Stärken liegen allerdings eher in Bereich Mathematik und Hardware. Hier allerdings frage ich mich gerade ernsthaft, ob es sinnvoll ist, so viel neues Wissen anzueignen, wo man noch nicht mal weiß, wie weit man genau in die Materie (und das hier ist wirklich ein komplettes komplexes und abgeschlossenes eigenes Universum) gehen muss, um die angeforderten Aufgaben zu erledigen und ob das überhaupt was bringt...
Jandro schrieb: > Hier allerdings frage ich mich > gerade ernsthaft, ob es sinnvoll ist, so viel neues Wissen anzueignen, > wo man noch nicht mal weiß, wie weit man genau in die Materie (und das > hier ist wirklich ein komplettes komplexes und abgeschlossenes eigenes > Universum) gehen muss, um die angeforderten Aufgaben zu erledigen und ob > das überhaupt was bringt... Dann lass es doch jemand anderen machen wenn Du denkst daß das nicht zu Deinen Aufgaben gehört.
Jandro schrieb: > ich habe mit Sicherheit keine niedrige Frustrationsgrenze, ich habe mich > in meinem Studium richtig reingehängt. Meine Stärken liegen allerdings > eher in Bereich Mathematik und Hardware. Hier allerdings frage ich mich > gerade ernsthaft, ob es sinnvoll ist, so viel neues Wissen anzueignen, > wo man noch nicht mal weiß, wie weit man genau in die Materie (und das > hier ist wirklich ein komplettes komplexes und abgeschlossenes eigenes > Universum) gehen muss, um die angeforderten Aufgaben zu erledigen und ob > das überhaupt was bringt... * falsches Studienfach! * falsche Einstellung! Mach lieber ne klassische Ausbildung! Studieren bedeutet, sich sein Wissen zu erarbeiten.
Definition Ingenieur (2019) -> bezeichnet eine Person, die eine Aufgabe unter Zuhilfenahme von Internetanleitungen in angemessener Zeit +25% teilweise löst. Für einen Hobbyisten würde ich sagen, hänge einfach deine .ioc CubeMX Projektdatei an, dann sehen wir uns die mal an.
die Ausbildung habe ich bereits abgeschlossen und meine ganzen Scheine habe ich in Regelstudienzeit und eigentlich auch mit einem recht souveränen Notenbild geholt... nun bekomme ich in dieser Projektarbeit aber dennoch erstmals eine Krise.. und zwar richtig.
Das Passwort wäre noch ganz nett für das Testprojekt auf der Cloud
Jandro schrieb: > nun bekomme ich in dieser Projektarbeit > aber dennoch erstmals eine Krise.. und zwar richtig. Das wundert mich nicht. Du hast bisher keinen einzigen Tip, den du hier bekommen hast umgesetzt. Statt dessen nutzt du das hier, um dich auszukotzen. Das Beispielprojekt von mir hast du auch nicht ausprobiert - sonst wärst du nämlich bereits einen Schritt weiter, und hättest den Fehler eindeutig auf SW4STM32 oder deine CubeMX-Config eingrenzen können. Systematisches Vorgehen geht anders... Ich bin an dem Punkt raus....sinnlos.
Ich habe kein Windows, deshalb die Frage: hast du AC6 und auch CubeMX in die vorgeschlagenen Verzeichnisse installiert? Andernfalls könnte es zu Pfadproblemen kommen.
Jandro schrieb: > Das Passwort wäre noch ganz nett für das Testprojekt auf der Cloud Oops...sorry, hatte ich übersehen. Jetzt geht das.
und warum soll das E-Technik-Studium bei meinen Stärken Mathematik und Hardware denn das falsche Studienfach sein? Ich studiere doch keine Informatik, wobei mir natürlich klar ist, dass die Software heute einen höheren Stellenwert einnimmt... dennoch sind die Elektroings ja primär immer noch für die Hardware zuständig, oder nicht?
Generation IDE. Lässt die Fachkräfte alter Schule wie mächtige Zauberer mit übernatürlichen Fähigkeiten erscheinen die mit einer flüchtigen Handbewegung Blitz und Donner kontrollieren. Mir solls recht sein.
also, ich habe jetzt versucht dein Beispielprojekt zu komoilieren. Auch dort kommt es zu der gleichen Fehlermeldung. Also liegt es nicht an der Konfiguration in CubeMX. Also wohl doch irgendwo im Dschungel der Workbench, durch die ich mich erst mal richtig durchkämpfen muss. Ich weißbisher noch zu wenig über die ganzen Vorgänge, die darin stattfinden
ja, ich habe an der Angabe der Installationsverzeichnisse nichts geändert und sie sind auch beide dort installiert
Jandro schrieb: > und warum soll das E-Technik-Studium bei meinen Stärken Mathematik und > Hardware denn das falsche Studienfach sein? Ich studiere doch keine > Informatik, wobei mir natürlich klar ist, dass die Software heute einen > höheren Stellenwert einnimmt... dennoch sind die Elektroings ja primär > immer noch für die Hardware zuständig, oder nicht? Ein Großteil aller heutigen elektronischen Schaltungen enthält mindestens einen Microcontroller. Und zumindest die Grundfunktionen sollte JEDER Hardwareentwicklung programmieren können, um die Hardware überhaupt in Betrieb nehmen zu können. Wenn Du im Berufsleben bei jeder Kleinigkeit rufst: "Mimimi, da muss mir jemand helfen!", dann wirst Du völlig zu recht ausgezählt und entsorgt. So einfach ist das. Du scheiterst auf Grund Deiner Unselbstständigkeit aber nicht erst an der Programmierung, sondern bei viel, viel grundlegenderen Themen. Und da helfen Dir Deine gute Studiumsnoten gar nichts. Aber offenbar mangelt es Dir auch am Textverständnis. Wo sind denn nun die Suchpfadinformationen zu Deinem GCC?
In früheren Versionen kam es zu Problemen wenn ac6 im Projektnamen vorkam, weiss nicht ob das noch so ist. Steht im geschwärzten Teil ac6?
Jandro schrieb: > Ich weißbisher noch zu wenig über > die ganzen Vorgänge, die darin stattfinden Dann wird es jetzt Zeit alle Termine für die nächsten paar Wochen abzusagen und mal ein C-Tutorial von Anfang bis Ende durchzuarbeiten, eins von der Sorte bei denen man am Anfang Compiler und/oder Linker noch von Hand an der Kommandozeile aufruft und sich mal damit vertraut macht was für Vorgänge beim Übersetzen eines C-Programms stattzufinden haben und wann und in welcher Reihenfolge dies geschieht und was das für das Verständnis der Sprache selbst, ihrer Struktur und ihren Eigenarten für Auswirkungen hat. IDE kommt erst ganz zum Schluß, dann wenn man weiß welche Arbeitsschritte die IDE zu leisten hat und warum die stattfinden. Aber ich fürchte es ist bereits zu spät und der eingeschlagene Kurs soll fortgesetzt werden, auch wenn keiner weiß wie man das Schiff steuert. Eisberg voraus!
:
Bearbeitet durch User
Neben ac6 sind auch Leerzeichen im Projektpfad ein beliebtes Problem.
Jandro schrieb: > arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=hard > -mfpu=fpv4-sp-d16 '-D__weak=__attribute__((weak))' > '-D__packed=__attribute__((packed))' -DUSE_HAL_DRIVER -DSTM32F407xx > -I"C:/Users/**/Desktop/Testprojekte/Blink_LED/Inc" > -I"C:/Users/**/Desktop/Testprojekte/Blink_LED/Drivers/STM32F4xx_HAL_Driv > er/Inc" > -I"C:/Users/**/Desktop/Testprojekte/Blink_LED/Drivers/STM32F4xx_HAL_Driv > er/Inc/Legacy" > -I"C:/Users/**/Desktop/Testprojekte/Blink_LED/Drivers/CMSIS/Device/ST/ST > M32F4xx/Include" > -I"C:/Users/**/Desktop/Testprojekte/Blink_LED/Drivers/CMSIS/Include" > -Og -g3 -Wall -fmessage-length=0 -ffunction-sections -c > -fmessage-length=0 -MMD -MP -MF"Src/main.d" -MT"Src/main.o" -o > "Src/main.o" "../Src/main.c" Such die Projekteinstellungen durch, suche nach C-Standard, Stelle dort auf C99. Im (zitierten) Compiler-Aufruf muss dann -std=c99 auftauchen.
Hier in diesem Forum wird mir verkauft, dass jeder Ingenieur "von Werk aus" einen Microcontroller programmieren muss. Wenn dem so ist, warum wurden dann die Controller geschweige denn deren Programmierung im Laufe meines ganzen Studiums (und ich habe bereits alle Prüfungen absolviert) noch nie ansatzweise thematisiert? Ich habe im 2. Semester Grundkenntnisse in C++ erworben, des weiteren kenne ich mich mittlerweile sehr gut mit MatLab und Simulink aus, was ich besonders für regelungstechnische Anwendungen verwendet habe. Zu meinem Schwerpunkt gehört aber nicht nur die Regelungs-sondern auch die Messtechnik, somit wollte ich zumindest ein vorzeigbares Projekt in meinem Studium haben, das sich auch auf dieses Gebiet bezieht. Und da bin ich nun hier und brauche diese Programmierung sekundär für meine Sensorauswertung, den (eigentlich größeren) physikalischen Teil des Projektes habe ich bereits erledigt. Um so mehr frustet mich das ganze gerade sehr... ich habe leider gar nicht die Zeit, mich zu sehr mit den Grundlagen hinter der IDE zu beschäftigen...
Hier in diesem Forum wird mir verkauft, dass jeder Ingenieur "von Werk aus" einen Microcontroller programmieren können muss. Wenn dem so ist, warum wurden dann die Controller geschweige denn deren Programmierung im Laufe meines ganzen Studiums (und ich habe bereits alle Prüfungen absolviert) noch nie ansatzweise thematisiert? Ich habe im 2. Semester Grundkenntnisse in C++ erworben, des weiteren kenne ich mich mittlerweile sehr gut mit MatLab und Simulink aus, was ich besonders für regelungstechnische Anwendungen verwendet habe. Zu meinem Schwerpunkt gehört aber nicht nur die Regelungs-sondern auch die Messtechnik, somit wollte ich zumindest ein vorzeigbares Projekt in meinem Studium haben, das sich auch auf dieses Gebiet bezieht. Und da bin ich nun hier und brauche diese Programmierung sekundär für meine Sensorauswertung, den (eigentlich größeren) physikalischen Teil des Projektes habe ich bereits erledigt. Um so mehr frustet mich das ganze gerade sehr... ich habe leider gar nicht die Zeit, mich zu sehr mit den Grundlagen hinter der IDE zu beschäftigen...
Schön viel Text. Hast du inzwischen die Pfade kontrolliert? Der einfachste Fall: -lege direkt einen Ordner c:\workspace an -wähle diesen in AC6 als workspace aus -erstelle ein Minimal Projekt mit AC6 -compiliere dieses -berichte
@ Bernd N. Gute Idee! Irgend ein Glücksklick wird schon passen. ;) Macht mal, ich bin weg.
ich habe jetzt alles in einen Ordner workspace auf c gelegt und es geht immer noch nicht....
Wofür steht MHV? [pre] - AVR GCC ATmel (MHV windows toolchain detection) [/pre https://www.embitz.org/feature-list/]
EmBitz kann man wohl als tot ansehen.
>> EmBitz kann man wohl als tot ansehen.
Für das was er machen will funktioniert es. Die IDE ist einfach und
funktioniert out of the box.
Lass dich nicht ärgern, jeder fängt mal an.. Normalerweise sollte das auch out of the box laufen. Also entweder fehlt dir ein Teil der Installation (z.B. newlib..) oder der gcc ist nicht korrekt auf deine Umgebung angepasst
> Wofür steht MHV?
MHV == MakeHackVoid
Bernd N. schrieb: > Für das was er machen will funktioniert es. Die IDE ist einfach und > funktioniert out of the box. Yeah! Und gegenüber den lahmen Java-Tools ist das Ding affengeil schnell. Nur beim CubeMX und HAL fangen für den Anfänger die Probleme gleich wieder an. Wäre aber ein Argument nicht mit HAL sondern mit SPL anzufangen.
Jandro schrieb: > also auf dem Rechner ist unter dem angegebenen Pfad eine stdint.h. und > eine stdint-gcc.h. -Datei > Habe die stdint.h.-Datei mit Visual Studio geöffnet Dass heisst, die Datei c:\ac6\systemworkbench\plugins\fr.ac6.mcu.externaltools.arm-none.win32_1 .16.0.201807130628\tools\compiler\lib\gcc\arm-none-eabi\7.2.1\include\st dint.h existiert und kann geöffnet werden. In der reklamierten Zeile steht: #include_next <stdint.h> Und diese Datei findet er nicht. Die Frage sollte daher lauten, welche Datei sucht er dort eigentlich? Das steht in der Fehlermeldung leider nicht konkret drin (der Pfad fehlt). Aber nach "include_next <stdint.h>" kann man googeln, und dann findet man zum Beispiel diesen Beitrag, der sehr ähnlich aussieht: https://stackoverflow.com/questions/23973971/no-stdint-h-file-on-debian Die Lösung dort war: "I got past this problem by installing libnewlib-arm-none-eabi: sudo apt-get install libnewlib-arm-none-eabi". Auch andere ähnliche Problemberichte enden stets damit, die newlib Library zu installieren. Das hat der Jim in Beitrag "Re: Erstes Programmieren von STM 32, irgendwas mache ich falsch." bereits angesprochen. Ich denke, du solltest in diese Richtung weiter forschen. Du könntest auch versuchen, allen Benutzern Leserechte auf das Verzeichnis c:\ac6 incl. Unterverzeichnissen zu geben.
Danke, ich habe es installiert, aber das Problem besteht weiterhin. Wie soll es auch anders sein
Jandro schrieb: > Danke, ich habe es installiert, aber das Problem besteht weiterhin. Wie > soll es auch anders sein Tja, lebe damit: Dir ist es nicht gegeben, Programmierer zu werden. Einen Programmierer, der es nicht einmal schafft, ein IDE zum Laufen zu bringen, den braucht echt niemand.
Jandro schrieb: > Danke, ich habe es installiert, aber das Problem besteht weiterhin. Wie > soll es auch anders sein Ich würde vorschlagen, dass du mal ganz genau beschreibst, was du wie installiert hat. Zeige uns auch alle deine Umgebungsvariablen. Und lade hier ein minimales Projekt hoch, mit dem dann das Problem nachvollziehbar ist.
Ich bin E-Techniker und kein Programmierer
da fragt man hier in einem Forum um Hilfe für ein ERST-Projekt und wird auf übelste Weise runtergemacht. Es ist mir klar, dass das für euch einfach ist und vielleicht verdient ihr damit eure Brötchen, aber für mich ist das das erste Mal und ihr könnt nicht von mir verlangen, dass ich das alles von Anfang an drauf habe
Du solltest Dir ein dickeres Fell zulegen. Niemand macht dich übel herunter. Anstatt Dich auf solche Gefühle zu konzentrieren, kümmere dich lieber auf deine Aufgabe und beantworte meinen vorherigen Beitrag. Ich bin durchaus bereit, extra für Dich eine frische Windows Installation zu machen um Dir zu helfen. Aber damit das Sinn ergibt, brauche ich Infos von Dir.
Also ich generiere für den Test mittlerweile nur noch über CubeMX einen Code, der einen GPIO_Output konfiguriert, ich füge noch nicht mal eigenen Benutzercode hinzu. Das Projekt wird von CubeMX mit Toolchain "SW4STM32" angelegt und beim Importieren wird das Projekt auch sofort erkannt. Nun mache ich in der Workbench nichts anderes, als für übertragene Projekt die Binärdatei erstellen zu lassen..dabei ändere ich nichts an den Einstellungen in der Workbench.
Jandro schrieb: > Ich bin E-Techniker und kein Programmierer sorry das finde ich etwas billig, ich glaube die meisten User im wordclock Thread sind keine Programmierer Beitrag "WordClock mit WS2812" https://www.mikrocontroller.net/articles/WordClock_mit_WS2812 und trotzdem schaffen es offensichtlich etliche, auch Nichtstudierte. vielleicht kann Frank. M. Moderator oder jemand aus dem Thread dir helfen für die ersten Schritte mit dem STM32?
naja aber es wird ja so getan, als ob ich das bei meiner Qualifikation zwingend können muss, aber dem ist nicht so. Wie gesagt wurde es nicht ansatzweise gelehrt, nur grundlegende Programmierkenntnisse.. aber es ist ja jetzt auch völlig egal. Ich muss das jetzt irgendwie draufbekommen und fürchte, es wird ein hartes Wochenende ;)
https://www.youtube.com/watch?v=u_TVAudWabI&t=66s Evtl hilft dir das weiter, es geht zwar nicht direkt um deine Hardware, sondern um das F7-Discoboard, aber bevor ich mir das angesehen hab, hatte ich auch immer ewige Probleme mit irgendwelchen includes und hinundher-Verweisen. Der macht da einige Einstellungen in der Workbench, und nachdem ich die auch gemacht hatte, ging es dann plötzlich. Ich war auch schon am Verzweifeln ;-) Und nach und nach kristallisiert sich langsam so etwas wie eine Ahnung von Sinn heraus, was man mit den ganzen Einstellungen so macht.
vielen Danl für deine Antwort. Das werde ich mir auf jeden Fall ansehen
Sorry das ist das falsche Video, da macht er mit Keil rum. Ich schau mal, ob ich noch das Video für die Workbench finde...
https://www.youtube.com/watch?v=Mkrrt_EgjHs So gefunden. Das hier ist es. Der hat sogar irgendwelche hilfreichen Files zum Download verlinkt. Davon hab ich dann aber am Ende nur die .txt die er auch im Video einblendet benutzt. Und wie gesagt es ist nicht direkt für deine Hardware, aber ich hoffe dass es dir weiterhilft.
"Ich bin E-Techniker und kein Programmierer!" Dann programmiere Doch nicht! Wenn ich kein Pilot bin, setzte ich mich auch nicht hinter das Steuer eines Flugzeugs. Will ich es doch, dann muss ich mich mal auf den Hosenboden setzen und die Thematik von Grund auf aufarbeiten. Dein Lernprozess geht über das Studium hinaus, das ganze Leben lang oder denkt die Generation von heute das nach dem Studium nichts mehr kommt und Sie die Größten in Ihrem Fachbereich sind? "Nichts von dem was ich in meinem E-Technik-Studium gelernt habe, kann ich hier anwenden, ich arbeite zum ersten Mal mit einem Microcontroller. " Welche Uni/FH war das denn? Nur damit man hier mal vor einem Studium an dieser Lokalität warnen kann! Ich habe noch keine Uni/FH gesehen, wo im E-Technikstudium nicht mindestens einmal eine Signalverarbeitung auf einem DSP oder Microcontroller durchgekaut wurde. In Theorie und Praxis! Du hast doch oben erwähnt das das Problem bereits einmal durch einen Hiwi(?) o.ä. bereits gelöst wurde. Was hindert Dich daran bezüglich des Problems dort nochmal vorzusprechen und sich Notizen zu Problemlösung zu machen? Mit welcher IDE bist Du vertraut? Du hast doch geschrieben das du mit der Arduino-Welt klargekommen bist. Welche Werkzeuge hast Du da benutzt? STM32 gibt es auch in der Arduino-Welt. Reichen die Boards nicht für die gestellte Aufgabe aus? Andernfalls, was zwingt Dich die AC6 einzusetzen? Gibt es nicht die Möglichkeit auf eine andere IDE zu wechseln die Dir vielleicht "sympathischer" ist. Ich will Dich hier nicht angreifen, sondern Dir helfen. Möglicherweise gibt es für Dich andere Wege zum Ziel. Vielleicht finden wir diese.
Jandro schrieb: > warum wurden dann die Controller geschweige denn deren Programmierung im > Laufe meines ganzen Studiums (und ich habe bereits alle Prüfungen > absolviert) noch nie ansatzweise thematisiert? Weil ein Studium keine Schule ist! Dem Inschenör ist nichts zu schwör, weil er gelernt hat, sich selbständig in neue Problembereiche einzuarbeiten. Embedded sind die SW-Entwickler erheblichenteils E-Techniker, die schwerpunktmäßig keine Programmierung im Studium hatten. Du wirst Dich nach dem Studium noch ganz schön umgucken, denn Regelungstechnik geht in der Realität nicht mit Matlab, sondern mit Mikrocontrollern. In Software, weil man das viel flexibler anpassen kann.
Danke für die aufmunternden Worte, ich stelle hier Fragen zu einem für mich komplett neuem Gebiet und bekomme hier Prognosen gestellt, dass aus mir nichts wird... ich habe dieses Forum hier empfohlen bekommen. Ich fürchte, ich werde es nicht tun können
Wenn die Arduino IDE (ich hatte bereits bei der Recherche kurz darüber gelesen) wirklich geeignet ist, wäre das wirklich super. Ich brauche für meine Anwendung die "Encoder"-Funktion eines Timers des Boards. Und zwar müssen Inkremental-Signale eines Sensors hochgezählt und ausgewertet werden. Das wären maximal 120.000 Signale pro Sekunde, die erfasst werden müssen.
Bernd N. schrieb: > Die IDE ist einfach und funktioniert out of the box. truestudio auch. Jandro schrieb: > Ich > fürchte, ich werde es nicht tun können Son Quatsch. Du musst doch nur die richtige stdint.h finden und ins richtige Verzeichnis kopieren.
Jandro schrieb: > Also ich generiere für den Test mittlerweile nur noch über CubeMX > einen > Code, der einen GPIO_Output konfiguriert, ich füge noch nicht mal > eigenen Benutzercode hinzu. > > Das Projekt wird von CubeMX mit Toolchain "SW4STM32" angelegt und beim > Importieren wird das Projekt auch sofort erkannt. > Nun mache ich in der Workbench nichts anderes, als für übertragene > Projekt die Binärdatei erstellen zu lassen..dabei ändere ich nichts an > den Einstellungen in der Workbench. Ich habe den Thread jetzt nicht vollständig gelesen. Ich bin auch kein Programmierer, aber mich wundert das nicht, dass das nicht funktioniert, wenn du als Anfänger gleich Eclipse verwendest... Da hatte ich schon anfangs nur das Problem rein C zu programmieren. Mit den Einstellungen und dem Kram gleich anfangs als Anfänger. Naja.. Das ist ein IDE und Benutzerproblem und nicht STM32. Ich wette, wenn du Keil uVision 5 herunterlädst, die Datei im CubeMx entsprechend auf KeilV5 umstellst, funktioniert deine LED auf Anhieb. Das schwöre ich dir. Das bekommt auch meine Oma hin. Und sonst würde ich einfach mal wieder zu dem Mitarbeiter gehen anstatt hier wochenlang zu diskutieren. Und vergiss beim nächsten Mal nicht einen Kugelschreiben mitzunehmen. Wenn man sich Dinge schon nicht merken kann, notiert man es sich wenigstens. Vor allem im Studim.
c-hater schrieb: > Jandro schrieb: > >> Danke, ich habe es installiert, aber das Problem besteht weiterhin. Wie >> soll es auch anders sein > > Tja, lebe damit: Dir ist es nicht gegeben, Programmierer zu werden. > Einen Programmierer, der es nicht einmal schafft, ein IDE zum Laufen zu > bringen, den braucht echt niemand. hahaha :D du bist hart
Stefanus F. schrieb: > Ich bin durchaus bereit, extra für Dich eine frische Windows > Installation zu machen um Dir zu helfen. Aber damit das Sinn ergibt, > brauche ich Infos von Dir. Darauf hast du (jandro) mit einem Screenshot geantwortet. Ist das dein Ernst? Soll ich jetzt nur auf Basis des Screenshots eine komplette Windows Installation samt IDE und deinem Quelltext vornehmen, um dein Problem nachzuvollziehen? Dann mache ich garantiert mindestens 50 Sachen anders als du und dann wird es bei mir funktionieren. Bei mir funktioniert das Zusammenspiel zwischen CubeMX und der System Workbench tadellos ohne manuelles Eingreifen. Ich kann Dir also mit Sicherheit bestätigen, dass die verwendete Software prinzipiell out-of-the-box funktioniert. Nur bei Dir nicht. Irgend etwas machst du anders und falsch. Ich brauche Links zu sämtlichen Downloads mit exakt den Versionen, die du verwendet hast. Und ich brauche eine Auflistung jedes einzelnen Mausklicks bzw. Befehls. Meine Frage nach deinen Umgebungsvariablen hast du ausserdem ignoriert. Dein Gejammer über mangelnde Hilfsbereitschaft ist unangemessen. Wir wollen Dir helfen, doch das hängt von Deiner Mitarbeit ab. Mit dem groben Tonfall hier musst du klar kommen, das wird sich in absehbarer Zeit nicht ändern Was die Berufswahl angeht: Programmierer lernen ihr ganzes Leben lang weiter. Es gibt ständig neue Bauteile und Arbeitsmittel. Es spielt keine Rolle, wie viel du dazu im Studium gelernt hast - im Beruf wirst du mit 99% Wahrscheinlichkeit sowieso mit anderen Mitteln arbeiten müssen, als du im Studium gelernt hast. Also, hör auf zu jammern und beantworte meine Fragen, damit Dir geholfen werden kann. Oder suche Dir eine andere Ausbildung, von der du nach Abschluss den Rest des Lebens zehren kannst. Zum Beispiel Friseur oder Schreiner.
Bevor du mit SystemWorkbench verzweifelst und aufgibst, benutze lieber TrueStudio. Die IDE ist ausgereifter und funktioniert meiner Erfahrung nach OutOfTheBox. Waren mal selbstständig und wurden dann knapp vor einem Jahr von ST aufgekauft. Ist also bestens mit dem ST Ökosystem verzahnt. https://atollic.com/truestudio/
Christopher C. schrieb: > Bevor du mit SystemWorkbench verzweifelst und aufgibst, benutze lieber > TrueStudio. Die IDE ist ausgereifter und funktioniert meiner Erfahrung > nach OutOfTheBox. Die IDE ist in beiden Fällen die gleiche. Beide funkti0onieren OutOfTheBox. Für mich bietet die System Workbench den Vorteil, Projekte ohne "Firmware" (=HAL) anlegen zu können.
Also ich benutze nun tatsächlich Atollic und damit klappt alles reibungslos, ich weiß nicht was genau los war. Aber wenigstens kann ich jetzt meine Aufgaben ohne Schwierigkeiten erledigen. Stefanus F. schrieb: > Ich bin durchaus bereit, extra für Dich eine frische Windows > Installation zu machen um Dir zu helfen. Ich möchte nicht, dass sich jemand so viel Mühe geben muss. Aber vielen Dank für das Angebot. Nun hat es scih aber wie es aussieht erledigt
Jandro schrieb: > Also ich benutze nun tatsächlich Atollic und damit klappt alles > reibungslos, ich weiß nicht was genau los war. Aber wenigstens kann ich > jetzt meine Aufgaben ohne Schwierigkeiten erledigen. Ich habe mir spasseshalber mal die Workbench installiert, und versucht, ein nacktes Projekt zu compilieren: Fehlermeldung... Liegt also nicht (nur) an dir. Seitdem STM Atollic uebernommen hat, wirde die Workbench wohl nur nocht von Leuten benutzt, die das Ding schon verwendet (und angepasst) haben. Fuer Anfaenger ist das Truestudio wohl eher erste Wayhl.
Nop schrieb: > Embedded sind die SW-Entwickler erheblichenteils > E-Techniker, die schwerpunktmäßig keine Programmierung im Studium > hatten. Oder die "umgekehrte" Richtung: Informatiker, die nicht schwerpunktmäßig E-Technik hatten. ;o) µC-Programmierung ist nunmal an der Grenze zweier Fachgebiete angesiedelt. Aber: bei jedem der beiden Studiengänge kann man genug mitnehmen, um sich genau auf dieser Grenzlinie mit überschaubarem Aufwand in den angrenzenden Bereich einzuarbeiten. Man muss es bloss wollen und man darf nicht stinkendfaul sein. Das ist eigentlich schon alles. Natürlich muss man darüber hinaus bereit sein, lebenslang selbstständig weiter zu lernen. Das ist, was jeder Ingenieur als wesentliches Rüstzeug aus dem Studium mitgenommen haben sollte... Blöd für Faule und Lernverweiger. Wenn man keinen Bock auf Lernen hat, sollte man lieber BWL oder sowas machen. Nur da kann man auch dann relativ viel Geld verdienen, wenn man von nix eine Ahnung hat und nur Scheisse baut.
> Ich habe mir spasseshalber mal die Workbench installiert, und versucht, > ein nacktes Projekt zu compilieren: Fehlermeldung... Das geht ja auch nicht. Du musst schon mindestens eine main.c schreiben. Und dann geht das auch.
c-hater schrieb: > Man muss es bloss wollen und man darf nicht stinkendfaul sein. Das ist > eigentlich schon alles. Ich hab in meiner Abschlußarbeit ein größeres Projekt gehabt, das letztlich in Assembler auf einem Evalboard zu implementieren war. Daß Assembler in keiner Vorlesung drangewesen war (nur C) und ich das vorher noch nicht gemacht hatte, ist mir als besonderes Hindernis nichtmal aufgefallen. Ich hielt es für völlig normal, daß man sich selbständig einarbeitet.
Wobei mein Beispiel mit "int" blöd war, ich hätte einen Typ aus der stdint.h nehmen sollen, z.B. uint32_t. Geht damit auch.
c-hater schrieb: > Natürlich muss man darüber hinaus bereit sein, lebenslang > selbstständig weiter zu lernen. Das ist, was jeder Ingenieur als > wesentliches Rüstzeug aus dem Studium mitgenommen haben sollte... Also ich bin in jedem Fall dafür bereit mich in meinem Beruf weiterzubilden. Mein Studium habe ich (vielleicht abgesehen von den letzten Wochen vor den Klausurenphasen) mit Spaß durchgezogen. Hier in diesem Fall muss ich eben einen Kompromiss zwischen Umfang von neuem Wissen und der für das Projekt vorgesehenen Zeit finden. Es ist nicht so, dass ich hier unebegrenzt Zeit habe um mir das komplette Grundwissen von Mikrocontrollern anzueignen. Von daher muss ich abwägen ob es wirklich sinnvoll ist all das zu machen, was hier von einigen Usern als notwendig empfunden wird... das ist hier ein kleines Projekt für die Uni und kein Lebenswerk ;)
Beitrag #5738642 wurde von einem Moderator gelöscht.
Für ein kleines Projekt ohne grossartige Einarbeitung eignet sich Arduino deutlich besser. Dann musst du aber ein anderes Board verwenden, dass "original" von Arduino unterstützt wird. Denn die 3rd Party Cores (wie STM32Duino) haben reichlich Potential für unangenehme Überraschungen.
Jandro schrieb: > Von daher muss ich abwägen > ob es wirklich sinnvoll ist all das zu machen, was hier von einigen > Usern als notwendig empfunden wird... Mit welcher Kompetenz willst du das Abwägen? Du hast doch ganz offensichtlich absolut keine Ahnung. > das ist hier ein kleines Projekt > für die Uni und kein Lebenswerk ;) Du lernst nicht für das kleine Uni-Projekt, sondern für dich selber. Das genau ist die Erkenntnis, die dir noch fehlt, um wirklich erwachsen zu werden.
Mit einem Arduino Nano habe ich das Projekt tatsächlich angefangen, aber leider kam er für die Aufgabe von seiner Abtastfrequenz und der Programmlaufzeit an seine Grenzen... es wäre leider keine zuverlässige Sensorauswertung geworden ;)
Also wenn ein Arduino Nano wirklich überfordert ist, dann ist das kein kleines Projekt mehr, sondern eine Aufgabe für Profis oder Leute die Profi werden wollen. Der Arduino Nano ist fast so Leistungsfähig wie die Dektop-Computer, mit denen ich gross geworden bin.
Naja es ist ein Zähler. Ein Drehsensor liefert pro Umdrehung 4000 Signalechsel, die zu erfassen sind... dabei muss das ganze für 30 Umdrehungen pro Sekunde ausgelegt werden. Wir haben es am Oszilloskop mit einem gesetzten HIGH-Output während des Schleifenablaufs überprüft. Das triviale Nutzerprogramm war einfach langsamer als 2 aufeinanderfolgende Flanken des Signals (zumindest ab einer gewissen Drehgeschwindigkeit).
Die Input Capture Einheit des Timers sollte das problemlos schaffen. Zugegebenermaßen ist die entsprechende Einheit beim STM32 leistungsfähiger. Bei beiden ist aber die Rechenleistung des Prozessors egal, das ist nur Sache der Peripherie.
@ Jandor Vielleicht wäre es sinnvoll, wenn Du Dir andere Maßstäbe zu dem Thema anschaust. Ich stelle mal in den Raum, - und das entspricht meiner Beobachtung -, dass ein Hardwerker im Embedded-Bereich grob zu wissen hat, wie ein Compiler, ein Linker und eine IDE arbeitet und auch sonstige Software-Werkzeuge, wie Tabellenkalkulation etcpp. Wo Installationsverzeichnisse sind und was darin enthalten ist. Entsprechende Dokumente über Compiler und IDE muss er lesen und verstehen können. Die Kommandozeile sollte er bedienen können. Dateien suchen, Dateipfade überprüfen können. Da der PC ein Basiswerkzeug ist, sollte er auch dessen Grundfunktionen verstehen und verwenden können. Das läuft darauf hinaus, zumindest für Prototypen Minimal-Programme erstellen zu können um etwa einfache Funktionstest durchzuführen. Das ist vom Umfang her etwas deutlich anderes als Software zu entwickeln . DAS mag man vielleicht "Lebenswerk" nennen. Aber, wenn Du mir den Vergleich gestatten willst, Du weigerst Dich, einen PC zu bedienen, weil Du Hardware entwickelst. Das wird kein Auftraggeber oder Arbeitgeber auf die Dauer hinnehmen und Dir einen PC-Bediener zur Seite stellen um eine Datei zu suchen.
Jandro schrieb: > Ein Drehsensor liefert pro Umdrehung 4000 > Signalechsel, die zu erfassen sind... dabei muss das ganze für 30 > Umdrehungen pro Sekunde ausgelegt werden. Also 60 kHz. > Das triviale Nutzerprogramm war einfach > langsamer als 2 aufeinanderfolgende Flanken des Signals Falscher Lösungsansatz, das macht man mit einem Counter. Abgesehen davon würde ein Arduino Nano das auch mit der Polling Methode locker flockig schaffen:
1 | uint32_t counter=0; |
2 | |
3 | #define READ_SENSOR (PORTB & (1<<PB0))
|
4 | |
5 | for (;;) // forever |
6 | {
|
7 | while (!READ_SENSOR) {}; |
8 | counter++; |
9 | while (READ_SENSOR) {}; |
10 | }
|
Damit komme ich auf mehr als 1 MHz. Du musst etwas grob falsch gemacht haben.
ich muss noch dazu sagen, dass ich beim Arduino noch eine "Encoder"-Library mit eingebunden habe. Der Drehsensor liefert nämlich 2 Quadratur-Signale, die entsprechend zusammen ausgewertet werden müssen. Das STM-Board bietet diese "Encoder"- Funktion bereits für seine Timer unter "combined channels"
c-hater schrieb: > Jandro schrieb: > > Von daher muss ich abwägen ob es wirklich sinnvoll ist all das zu > machen, was hier von einigen Usern als notwendig empfunden wird... > > Mit welcher Kompetenz willst du das Abwägen? Du hast doch ganz > offensichtlich absolut keine Ahnung. > > das ist hier ein kleines Projekt für die Uni und kein Lebenswerk ;) > > Du lernst nicht für das kleine Uni-Projekt, sondern für dich selber. Das > genau ist die Erkenntnis, die dir noch fehlt, um wirklich erwachsen zu > werden. Du hast so recht, aber wem erzählst du das? er kapierts eh nicht... und hat für alles eine Entschuldigung..
Jandro schrieb: > ich muss noch dazu sagen, dass ich beim Arduino noch eine > "Encoder"-Library mit eingebunden habe Damit fängt das Problem schon an. Solche Trivialitäten programmiert man vernünftigerweise selbst. Vermutlich hast du gar nicht versucht, herauszufinden, woran es genau scheitert, sondern einfach auf ein Pferd mit viel mehr Power gesetzt, richtig? Beim STM32 wird Dir das gleiche Problem früher oder später erneut begegnen, das ist so sicher wie das "Amen" in der Kirche.
Jandro schrieb: > nicht so, dass ich hier unebegrenzt Zeit habe um mir das komplette > Grundwissen von Mikrocontrollern anzueignen. Von einem Entwickler für embedded-SW würde man sogar erwarten, daß er den Controller ohne CubeMX und ohne HAL programmieren kann, also nach Datenblatt. Daß Du hier über die vereinfachende Abkürzung mit CubeMX und HAL rangehst, IST bereits im Hinblick darauf, daß das nicht Dein Kerngebiet ist. Woran Du gestrauchelt bist, hat außerdem gar nichts mit Mikrocontrollern zu tun, sondern damit, daß Du schon mit Dateipfaden auf einem PC überfordert warst. Guck Dir Dein Eingangsposting doch mal an - was muß ich wo klicken? Wenn Du diese Mentalität nicht sehr schnell ablegst, wirst Du nach dem Studium keine Probezeit überstehen.
> #define READ_SENSOR (PORTB & (1<<PB0))
Tschuldigung, es muss PINB heissen.
Das liegt nicht in meiner Hand, der Boardwechsel und auch die Messung wurde vom Betreuer des Projektes veranlasst. Ich MUSS nun damit arbeiten. Und das ist jetzt auch der Punkt, an dem ich hier Schluss mache. Das ursprüngliche Problem dieses Threads hat sich ja mittlerweile erledigt
Jandro schrieb: > Das liegt nicht in meiner Hand, der Boardwechsel und auch die Messung > wurde vom Betreuer des Projektes veranlasst. Ich MUSS nun damit > arbeiten. Macht nichts, passt zum täglichen Leben eines Entwicklers. Man muss fast immer mit dem arbeiten, was einem vorgesetzt wird.
Stefanus F. schrieb: > Solche Trivialitäten programmiert man vernünftigerweise selbst. Konntest du sowas als Anfaenger schon beurteilen byw. bewerten? Fuer Leute, die schon Erfahrung haben, ist es trivial. Jemand, der gerade in das Thema einsteig und womoeglich noch externe "Berater" hat, ist das nicht so einfach.
Abgesehen davon - wenn Du Arduino nimmst, dann ist das als Referenzprojekt problematisch. Du sagst damit nämlich auch aus, daß Du von der SW-Seite nicht einmal Grundkenntnisse hast und Dich auch nicht dafür interessierst. Wenn es das ist, was Du einem künftigen Arbeitgeber sagen willst, ist das natürlich OK.
STK500-Besitzer schrieb: > Konntest du sowas als Anfaenger schon beurteilen byw. bewerten? Nein, natürlich nicht. Deswegen weise ich den Anfänger darauf hin.
ist wirklich okay jetzt, es gibt bei uns an der Uni ein Fachgebiet für intelligente eingebettete Systeme, die Studenten dort schlagen einen anderen Weg als wir MSR-ler ein (Mess-Steuer-Regelungstechnik). Die Möglichkeiten in meinem Schwerpunkt (und es sind einige) habe ich schon alle aufgezeigt bekommen... Im Übrigen kenne ich keinen Ingenieur im Freundeskreis, dessen Arbeitgeber sich für seine Projektarbeit im Studium interessiert hat. Wissenschaftlich gesehen ist das sowieso kalter Kaffee
Jandro schrieb: > Im Übrigen kenne ich keinen Ingenieur im Freundeskreis, dessen > Arbeitgeber sich für seine Projektarbeit im Studium interessiert hat. Ich hab meinen ersten Job genau wegen des Assemblerprojektes aus dem Studium bekommen - die Firma brauchte da Verstärkung, wollte sich aber finanziell keinen weiteren alten Hasen leisten. Ein Frischling mit Assemblerkenntnissen war für die Firma ein Volltreffer. Ach ja - ET, nicht Informatik.
Jandro schrieb: > Das liegt nicht in meiner Hand, der Boardwechsel und auch die Messung > wurde vom Betreuer des Projektes veranlasst. Meiner Erfahrung nach: Weil du gesagt hast, es ginge nicht weil zu langsam.
Jandro schrieb: > als wir MSR-ler ein (Mess-Steuer-Regelungstechnik). Die > Möglichkeiten in meinem Schwerpunkt (und es sind einige) habe ich schon > alle aufgezeigt bekommen... Scheuklappen? MSR ist relativ abstrakt. Hast schon schon mal einen digitalen Regler aufgebaut&programmiert? > Im Übrigen kenne ich keinen Ingenieur im Freundeskreis, dessen > Arbeitgeber sich für seine Projektarbeit im Studium interessiert hat. > Wissenschaftlich gesehen ist das sowieso kalter Kaffee Demnach hast einen sehr kleinen Freundeskreis bzw. wenig Ingenieure dabei. Studium kann fast jeder, interessant wird man fuer Arbeitgebern, wenn auch mal ueber den Tellerrand geguckt hat. Und begeistert von solchen Studienarbeiten erzaehlen kann. Wenn man sonst noch nichts (ausse gute Noten) vorweisen kann.
unglaublich, was für ein Desinteresse...
STK500-Besitzer schrieb: > Wenn man sonst noch nichts (ausse gute Noten) vorweisen kann. Gute Noten sind ja nicht schlecht (d'oh), aber sie sagen ja nur aus, daß man bekannte Grundlagen auf künstlich gestellte Situationen relativ theoretisch anwenden kann. Sie sagen wenig über die Kompetenz zur Problemlösung aus, was aber genau das ist, was in der Industrie gefragt ist. Früher(tm) war es ja noch üblich, daß man sich mal in die Uni-Bibliothek gewagt hat, um eigenständig für Probleme außerhalb von Schema F zu recherchieren. Das dürfte wohl größtenteils dem Bologna-Prozeß zum Opfer gefallen sein.
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.