STM32 Bibliotheken

Gast #5018925
Lesenswert?

Moin,
kurze Frage zu den Bibliotheken für den STM32F429 auf 
http://mikrocontroller.bplaced.net/wordpress/?page_id=2736. Ist die 
Bezeichnung "libs" hier nicht etwas irreführend? ST liefert ja bereits 
Bibliotheken und bei denen auf der verlinkten Webseite handelt es sich 
doch wohl eher um eine Vereinfachung/Zusammenfassung oder sehe ich das 
falsch?
Gast #5018988
Lesenswert?

Das ist eine Library, die nichts anders als ein Wrapper für die 
STM-Library ist. Soll heißen, dass der durch die STM32 Library 
aufgeblähte Code nochmal aufgebläht wird. Leute, tut euch diesen Müll 
nicht an, das bremst die schnellsten Controller nur aus. Dann könnt ihr 
auch gleich wieder 8-Bit Microcontroller einsetzen. Wer einen Cortex 
effektiv programmieren möchte, nimmt sich das Datenblatt, nutzt die 
Header-Dateien der Library und programmiert alle Register selber. Das 
hat zum einen den Vorteil, dass man alles versteht, was man programmiert 
hat und nicht mit irgendwelchen Fehlern in Librarys rechnen muss und 
andererseits wird der Code kompakt und schnell. So mach ich das seit 
Jahren und bin immer gut damit gefahren.
Gast #5019140
Lesenswert?

Rolf M. schrieb:
> Machst du das auch bei komplexeren Sachen wie USB oder Ethernet
> so?

Gute Frage. Das Problem ist, dass es so gut wie keine fehlerfreie USB 
oder Ethernet abstraktion gibt. Gerade der ST Code ist traditionell so 
geschrieben, dass er gerade mal genau das, was das Beispiel 
demonstrieren soll, irgendwie hinbekommt. Spätestens wenn man anfängt, 
Stressszenarien auszustesten (also zum Beispiel Dauertest über Ethernet 
mit grossen Paketen), tauchen sehr gern mal recht subtile Probleme mit 
dem ETH DMA Treiber auf. Dazu kommt, adss die Treiber normalerweise mit 
der Middleware kommen, d.h. je nachdem welchen Netzwerkstack Du einsetzt 
bekommst Du andere Ethernettreiber, die dann auch mal schlechter und mal 
nicht ganz so schlecht sind.

Bei USB ist es ähnlich (das habe ich im thread über USB Stix schon Mal 
angerissen).

Also zumindestens bei den "Umsonst" Ökosystemen der Anbieter und bei 
Open Source musst Du Nacharbeit einrechnen, solange Dir Feldtauglichkeit 
und Dauerstabilität wichtig sind.
#5019856
Lesenswert?

Adapter schrieb:
> Rolf M. schrieb:
>> Machst du das auch bei komplexeren Sachen wie USB oder Ethernet
>> so?
>
> Gute Frage. Das Problem ist, dass es so gut wie keine fehlerfreie USB
> oder Ethernet abstraktion gibt. Gerade der ST Code ist traditionell so
> geschrieben, dass er gerade mal genau das, was das Beispiel
> demonstrieren soll, irgendwie hinbekommt.

Das ist gut zu wissen. Ich habe hier auch einen STM32, den ich demnächst 
programmieren will. Zunächst mal ohne Ethernet und USB, aber später soll 
beides noch dazu kommen. Bisher ist mir noch nicht so recht klar, womit 
ich da anfangen soll. Ich hab jetzt kein Problem damit, auch direkt mit 
Registern zu arbeiten, aber spätestens bei Ethernet und USB dürfte das 
doch ziemlich aufwändig werden. Ich hatte gehofft, da weitgehend auf 
bestehendes aufsetzen zu können.

> Also zumindestens bei den "Umsonst" Ökosystemen der Anbieter und bei
> Open Source musst Du Nacharbeit einrechnen, solange Dir Feldtauglichkeit
> und Dauerstabilität wichtig sind.

Ist zwar für ein privates Projekt, aber stabil muss es sein, sonst 
bringt es mir nichts.

NXD schrieb:
> Ich hätte noch eine Frage zum CAN-Bus. Wozu benötigt man einen
> Tranceiver, um ein Bauteil über CAN-Bus anzusteuern? Der CAN ist doch
> bereits integriert.

Der CAN-Controller ist integriert. Ein CAN-Transceiver aber nicht.

Michael K. schrieb:
> Ist ja bei U(S)ART/RS232/RS422/RS485 auch so...

Oder auch bei Ethernet. Da braucht man auch noch einen externen PHY.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren