Hallo, kann man CubeMx von ST als graphische Benutzeroberfläche
bezeichnen, oder wie wäre die korrekte deutsche Entsprechung.
"CubeMx ist eine graphische Benutzeroberfläche von ST, in der die
Konfiguration der Mikrocontrolller erfolgt. Abschließend lässt sich
durch das Tool ein kompilierbarer C-Code generieren, der alle
Konfigurationen erhält."
Kann man das so schreiben?
ich würde es vielleicht noch etwas erweitern:
> in der die Konfiguration der Schnittstellen eines Mikrocontrollers erfolgt
und achte auf deinen Typo in Mikrocontroller
marcel schrieb:> CubeMx ist eine graphische Benutzeroberfläche von ST
Typische Ingenieurs-Ausdrucksweise ? CubeMX hat eine grafische
Oberfläche, aber es ist keine Oberfläche. Ein Auto ist ja auch nicht
identisch zum Armaturenbrett. Besser " CubeMX ist eine grafische
Anwendung " oder "eine Anwendung mit grafischer Oberfläche ".
Und lass dieses Unwort "Tool" weg. Irgendwie ist alles immer ein Tool.
"Abschließend" ist in diesem Kontext auch komisch, da du ja kaum
erläuterst, was vor dem Abschluss kommt...
STM32CubeMX ist eine grafische Anwendung von ST für den PC zur
interaktiven Konfiguration von Hardware und Software der Mikrocontroller
und Anwendungsprozessoren der STM32-Familie. Insbesondere wird die
Zuordnung von Pins zu Peripherie-Modulen und die Einstellung des
Systemtakts übersichtlich dargestellt. Die Anwendung kann C-Code
erzeugen, welcher die gewünschte Konfiguration auf dem Prozessor
einstellt. Der erzeugte Code basiert dabei auf dem Hardware Abstraction
Layer (HAL) der entsprechenden STM32Cube-Bibliothek und stellt ein
Grundgerüst für eigene Anwendungen dar.
UweBonnes schrieb:> Und die HAL dann als Code Obfuskator?
Jedenfalls ist die HAL keine richtige HAL.
Wirklich vereinfachen tut sie auch nur wenig, wenn man bei jedem Problem
erstmal hinterfragen muss, ob es eventuell ein Bug in der HAL ist und
zusätzlich zu 1500 Seiten Referenzhandbuch noch 2000 weitere Seiten HAL
Handbuch und dessen Quelltext lesen muss, um Sicherheit zu bekommen.
UweBonnes schrieb:> Stefanus F. schrieb:>> Ich würde es Code-Generator nennen.>> Und die HAL dann als Code Obfuskator?
Uwe, das ist jetzt aber sehr höflich ausgedrückt. :)
> UweBonnes schrieb:> Und die HAL dann als Code Obfuskator?Marcus H. schrieb:> Uwe, das ist jetzt aber sehr höflich ausgedrückt. :)
Ein passender Name fällt mir dazu auch nicht ein. Wie soll man diesen
Dingsbums-Layer denn sonst nennen?
Stefanus F. schrieb:> Jedenfalls ist die HAL keine richtige HAL.>> Wirklich vereinfachen tut sie auch nur wenig, wenn man bei jedem Problem> erstmal hinterfragen muss, ob es eventuell ein Bug in der HAL ist und> zusätzlich zu 1500 Seiten Referenzhandbuch noch 2000 weitere Seiten HAL> Handbuch und dessen Quelltext lesen muss, um Sicherheit zu bekommen.
Da du dir offenbar nie die Mühe gemacht hast, das zu lesen -geschwiege
denn zu verstehen- solltest du dich mit solchen Urteilen einfach mal
zurück halten!
Deine "Kritik" entbehrt jeder Substanz.
Sag doch einfach:
"Ich bin zu faul mich in HAL einzuarbeiten, und kann daher nix dazu
sagen."
CubeMX wird von ST selbst als "Initialisierungs-Codegenerator"
bezeichet, und das passt ziemlich genau.
Mir wurde mal erzählt, CubeMX wurde deshalb erfunden, um den Code über
die ganzen STM32-Derivate portabel zu halten. Darum soll das eben eine
Hardware-Abstraktionsschicht darstellen.
Die haben ja bekanntlich sehr unterschidliche Peripherie, da wäre das
sehr praktisch, würde es gut funktionieren.
Die Qualität des Codes soll aber nicht so toll sein. Unsere Firmwerker
schimpfen zumindest ziemlich drüber, und verwenden weiter die alte Lib.
Nach ein paar ziemlich spektakulären Bugs, die das Cube so mitgebracht
hat. Ob das Gemecker gerechtfertigt ist, kann ich aber nicht beurteilen.
Einige Teile sind jedoch sehr praktisch, wie zum Beispiel dieses
Pinconfig-Tool. Das ist für Hardwareentwickler eine echte Erleichterung.
Weil aber die STM32 passabel dokumentiert und einigermassen
Verstädndlich sind, gibt es ja keinen Zwang das Gelumpe zu benutzen. Ich
zumindest mache meine Inbetriebnahme-Mini-Firmware Sachen pople einfach
in den Registern herum. Das ist auch nicht schwieriger als bei anderen
µC. also was solls...
Man kann sich ja ein paar ekelige Dinge (wie dieses verkorkste USB oder
Komplexitätsmonster wie Ethernet) aus der Lib ziehen, und den Rest
ordentlich machen.
HALAL schrieb:> Die haben ja bekanntlich sehr unterschidliche Peripherie, da wäre das> sehr praktisch, würde es gut funktionieren.
Genau, wenn es funktionieren würde. Aber letztendlich sind die
Unterschiede zwischen den Serien zu groß. Das klapp nicht einmal bei
simplen GPIO Zugriffen, wenn du mal einen Wechsel von der F1 Serie zu F3
versuchst.
> Unsere Firmwerker schimpfen zumindest ziemlich drüber...> Nach ein paar ziemlich spektakulären Bugs, die das Cube so> mitgebracht hat.
Meine ersten beiden Versuche scheiterten an Bugs. Dadurch kam ich zu der
Erkenntnis, dass ich die Programmierung der STM32 Chips besser mit Hilfe
des Referenzhandbuches "zu Fuß" lerne.
Den dritten Versuche habe ich dann erst Monate später gewagt, nachdem
ich meine eigentliche Aufgabe längst ohne HAL am laufen hatte. Wenn man
bereits weiß, was man da macht, kann man den HAL Code auch verstehen und
anwenden (abgesehen von zeitraubenden Bugs - als hätten die Chips nicht
schon genug Bugs).
> Man kann sich ja ein paar ekelige Dinge (wie dieses verkorkste USB> oder Komplexitätsmonster wie Ethernet) aus der Lib ziehen, und den> Rest ordentlich machen.
Und da muss ich die HAL mal loben. Man kann sie teilweise nutzen und
andere Teile an ihr vorbei programmieren. Das wäre bei vielen anderen
Frameworks von vorne herein unerwünscht. Außerdem ist der Quelltext gut
kommentiert.
Stefanus F. schrieb:> HALAL schrieb:>> Die haben ja bekanntlich sehr unterschidliche Peripherie, da wäre das>> sehr praktisch, würde es gut funktionieren.>> Genau, wenn es funktionieren würde. Aber letztendlich sind die> Unterschiede zwischen den Serien zu groß. Das klapp nicht einmal bei> simplen GPIO Zugriffen, wenn du mal einen Wechsel von der F1 Serie zu F3> versuchst.>> Meine ersten beiden Versuche scheiterten an Bugs. Dadurch kam ich zu der> Erkenntnis, dass ich die Programmierung der STM32 Chips besser mit Hilfe> des Referenzhandbuches "zu Fuß" lerne.
Ich hab solche Wechsel in der letzten Zeit mehrfach und mit
unterschiedlichen Familien gemacht, und das lief jedesmal weitgehend
glatt.
Man muß natürlich wissen, was man tut, und ganz ohne Anpassungen geht
das selten, aber der Aufwand ist immer noch sehr deutlich geringer als
der voll-manuelle Ansatz.
Daß da Bugs drin stecken ist sicher, aber das gilt für nahezu
ausnahmslos jede Software.
HAL und Co. ist einfach ein fetter Brocken, und für Amateure schwer
beherrschbar/verständlich, und wenn man nur ein paar LEDs blinken lassen
will, kommt man ohne sich da ersteinarbeiten zu müssen vermutlich
schneller ans Ziel.
Die Einarbeitung ist auch nicht mal eben "übers Wochenende" zu stemmen.
Daß der Einsatz von HAL das Studium des Referenz- und User-Manual
erspart ist ein Mythos.
Das sollte man in jedem Fall vorher können.
Auffallend ist, daß beinahe alle, die über HAL schimpfen das nur vom
Hörensagen kennen.
Harry L. schrieb:> Ich hab solche Wechsel in der letzten Zeit mehrfach und mit> unterschiedlichen Familien gemacht, und das lief jedesmal weitgehend> glatt.
Dann mach so einen Wechsel mal zwischen F4 und F7 bei einem Programm
welches auf die SDIO Schnittstelle zugreift. Bei direktem Register
Zugriff kein Problem, da die Register zu 99% gleich sind. Bei Verwendung
der HAL ist das aber ein großer Aufwand, weil alle Bezeichner von
SDIO_xxx mach SDMMC_xxx umbenannt wurden. Die HAL ist hier also mehr so
ein Deabstraktionslayer. Toll.
Dr. Sommer schrieb:> Dann mach so einen Wechsel mal zwischen F4 und F7 bei einem Programm> welches auf die SDIO Schnittstelle zugreift. Bei direktem Register> Zugriff kein Problem, da die Register zu 99% gleich sind. Bei Verwendung> der HAL ist das aber ein großer Aufwand, weil alle Bezeichner von> SDIO_xxx mach SDMMC_xxx umbenannt wurden. Die HAL ist hier also mehr so> ein Deabstraktionslayer. Toll.
Oh!
Du hast ein Haar in der Suppe gefunden.
Glückwunsch!
Darfst du behalten.
Aus so einem Einzelfall abzuleiten, daß das grundsätzlich Murks sei
halte ich für falsch.
Ich hab an keiner Stelle behauptet, daß das perfekt sei aber für mich
überwiegt klar der Nutzen.