Ich habe kürzlich ein STM32F4-Board gekauft, um die ARM-Architektur zu lernen. Ich bin mit der Embedded-Programmierung ziemlich vertraut, nachdem ich etwa ein Jahr lang mit der AVR-Serie gearbeitet habe.
Ich habe dieses Tutorial hier durchgesehen
Darin hat der Autor erwähnt, dass Sie in der Welt der ARM-Boards normalerweise zwei Bibliotheken haben:
Der Autor erwähnt auch, dass der Zweck dieser wie bei jeder HAL-Schicht darin besteht, schnell zu entwickeln, anstatt Zeit mit der Einrichtung von Dingen zu verschwenden.
Von der AVR-Seite kommend, wo ich minimale/keine Bibliotheken verwende und alles von Hand einrichte (z. B. Spi-Konfiguration, rx- und tx-Interrupt-gesteuerte Funktionen usw.), finde ich das etwas seltsam. Wäre man durch die Verwendung der STM-spezifischen Bibliotheken nicht darauf beschränkt, nur ihre Mikrocontroller zu verwenden? Wenn ich dann in Zukunft Chips anderer Anbieter verwende, muss ich lernen, ihre spezifische Bibliothek zu verwenden
Ich würde gerne eine Meinung einholen, ob dies der richtige Weg ist. Sollte ich als ARM-Neuling vorerst nur diese Bibliotheken verwenden, bis ich mich wohler fühle, oder sollte ich mir von Anfang an angewöhnen, alles selbst zu machen?
Die Idee ist, ARM unabhängig von herstellerspezifischen Boards oder Mikrocontrollern zu lehnen.
Ich empfehle die Bibliotheken. Ein großer Vorteil von Cortex M besteht darin, dass Sie Ihren Code problemlos auf andere Mitglieder derselben Familie (z. B. STMF0 bis STMF4) oder sogar auf andere Hersteller übertragen können, und Sie verlieren diesen Vorteil, wenn Sie die Bibliotheken nicht verwenden.
Übrigens sind viele herstellerspezifische Bibliotheken CMSIS-kompatibel.
Ich habe Familien vermieden, die keine CMSIS-kompatiblen Bibliotheken bereitstellen. Außerdem habe ich STM Cube aus den gleichen Gründen nicht ausprobiert.
Ich stimme Scott und der Aussage zu: "Der Zweck dieser ist es, sich schnell zu entwickeln, anstatt Zeit mit der Einrichtung von Dingen zu verschwenden."
Es hängt letztendlich davon ab, was Sie unter dem Erlernen von ARM verstehen. Die Verwendung der Bibliotheken hindert Sie nicht daran, unter die Haube zu gehen und Ihre eigenen Treiber zu schreiben, aber der STM32F4 (den ich gerade erst verwendet habe) ist nur einer von über 2000 Prozessoren von 16 Herstellern, die den ARM-Kern verwenden.
Für mich bieten die Treiber die Flexibilität, mich weiterzuentwickeln, ohne mich in Details zu verzetteln. Das bedeutet nicht, dass ich mir die Details nicht anschaue oder versuche, sie zu optimieren.
Um auf einen anderen Prozessor mit kompatiblen Peripheriegeräten zu migrieren, sollten Sie lediglich die Treiber wechseln.
Wenn ich Sie wäre, würde ich die herstellerspezifischen Peripheriebibliotheken verwenden. Es kostet viel Zeit, sich um die Register zur Konfiguration der Peripherie zu kümmern. Ich würde sagen, es dauert viel länger, als die Nutzung von Bibliotheken anderer Anbieter zu lernen. Sie sind ziemlich ähnlich, so dass es nicht viel Zeit braucht, um die Verwendung einer anderen Mikrocontroller-Bibliothek zu lernen.
Auf der anderen Seite finden Sie viel mehr Tutorials und Unterstützung für die Peripheriebibliotheken, da sie weiter verbreitet sind.
Ankit
Scott Seidmann
Ankit
Scott Seidmann
Scott Seidmann
Ankit