Forum: Mikrocontroller und Digitale Elektronik Genaue Bezeichnung von CubeMx


von marcel (Gast)


Lesenswert?

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?

von PowerSSO (Gast)


Lesenswert?

Ja ich denke so kann man das schreiben.

von Stromverdichter (Gast)


Lesenswert?

ich würde es vielleicht noch etwas erweitern:
> in der die Konfiguration der Schnittstellen eines Mikrocontrollers erfolgt

und achte auf deinen Typo in Mikrocontroller

von Dr. Sommer (Gast)


Lesenswert?

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...

von Dr. Sommer (Gast)


Lesenswert?

Ach ja, und es heißt STM32CubeMX, nicht CubeMx.

von Stefan F. (Gast)


Lesenswert?

Ich würde es Code-Generator nennen.

von Dr. Sommer (Gast)


Lesenswert?

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.

von UweBonnes (Gast)


Lesenswert?

Stefanus F. schrieb:
> Ich würde es Code-Generator nennen.

Und die HAL dann als Code Obfuskator?

von Stefan F. (Gast)


Lesenswert?

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.

von Marcus H. (Firma: www.harerod.de) (lungfish) Benutzerseite


Lesenswert?

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. :)

von Stefan F. (Gast)


Lesenswert?

> 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?

von Harry L. (mysth)


Lesenswert?

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.

von Stefan F. (Gast)


Lesenswert?

Harry L. schrieb:
> CubeMX wird von ST selbst als "Initialisierungs-Codegenerator"
> bezeichet, und das passt ziemlich genau.

Ja, das passt.

von HALAL (Gast)


Lesenswert?

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.

von Stefan F. (Gast)


Lesenswert?

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.

von Harry L. (mysth)


Lesenswert?

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.

: Bearbeitet durch User
von Dr. Sommer (Gast)


Lesenswert?

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.

von Harry L. (mysth)


Lesenswert?

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.

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
Noch kein Account? Hier anmelden.