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
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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?
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!
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
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
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.
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.
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.
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.
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.
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 ;)
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_tcounter=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.
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.
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.