Hallo, Gastgeber! Ich werde mit Ihnen nicht über die großen Ideen wie die oben genannten sprechen, sondern über die praktischen Dinge. Linux und stm32 sind eine Softwareplattform und eine Hardwareplattform, die völlig unterschiedlich sind (denken Sie daran, es sind Plattformen!). Sagen wir es so: Da Sie Mikrocontroller mögen, lernen Sie zuerst stm32Detaillierte Erklärung der Entwicklung eingebetteter Linux-Gerätetreiber und legen Sie eine solide Grundlage für Hardware, insbesondere für verschiedene Busse (USB, IIC, SPI ...) und verschiedene Peripheriemodule (Infrarot, Temperatur und Luftfeuchtigkeit, mpu6050 ...) und konzentrieren Sie sich dann auf ucosii, das heißt, lernen Sie, Ihre Aufgaben im Rahmen des Betriebssystems zu erledigen, anstatt einfach nur Programme für das Betriebssystem zu schreiben. Erfassen Sie den Mechanismus ist der Schlüssel, um sich von den MCU-Freunden um Sie herum zu distanzieren. In diesem Prozess müssen Sie die wahre Bedeutung des Betriebssystems verstehen. Ich empfehle Ihnen, an dieser Stelle „Betriebssystemprinzipien“ zu lesen.
Danach können Sie sich mit ARM in Verbindung setzen (warum nicht als nächstes Linux? Ich werde es Ihnen später erzählen). Sie können das Entwicklungsboard s3c2440 von Friendly Arm oder Feilin kaufen (zählt das als Werbung?), oder Sie können ein A8-Board kaufen, die beide etwa 500 Yuan kosten. Als ich anfing, ARM zu lernen, war es nichts weiter als ein Bareboard-Programm, das Assembler und C verwendet, um die Register in der CPU zu steuern (ausführliche Erklärung der Entwicklung eingebetteter Linux-Gerätetreiber) und dann die Peripheriegeräte zu steuern, was STM32 ähnelt . Wenn Sie lernen, die Peripheriegeräte des Entwicklungsboards zu steuern, herzlichen Glückwunsch zum Betreten der Tür zu Embedded Linux! Zu diesem Zeitpunkt müssen Sie die C-Sprache gründlich beherrschen und auf GNUC achten. Was bedeutet es, GNUC zu beherrschen? Sie müssen den Unterschied zwischen GNUC und ANSIC kennen, wissen, dass ein Teil des C-Codes beim Ausführen im SDRAM angeordnet ist, die flexible Verwendung von Uhrzeigern kennen und wissen, wie man prozessorientiertes C verwendet, um objektorientierte Denkfähigkeiten zu implementieren ... Sie müssen mindestens drei Bücher über C-Sprachbücher (außer inländische) sowie einige Blogbeiträge lesen. Voraussetzung ist, dass Sie Code unter Linux schreiben. Sie können Ubuntu installieren, lernen, Umgebungsvariablen festzulegen, vim zu verwenden, mit gcc zu kompilieren und zu lernen, mit gdb zu debuggen. Ich empfehle Ihnen, „Brother Niao's Private Linux Cooking“ zu lesen.
Nachdem Sie den C-Linux-Kurs gemeistert haben, können Sie mit dem Erlernen der Linux-Systemprogrammierung wie Multiprozess-, Multithread- und Socket-Programmierung beginnen. Es wird empfohlen, mit „Unix Intermediate Environment Programming“ zu beginnen und dann „...IPC“ und „UNIX Network Programming“ zu lesen ... jeder Teil ist ein Buch! Die wichtigsten davon sind der Parallelitätskontrollmechanismus von gemeinsam genutzten Variablen durch Multiprozess/Multithread und die Socket-Programmierung – denken Sie daran, sie gut zu lernen! ! ! Wenn Sie das alles gelernt haben, werden Sie sich in etwas mehr als einem Jahr in Linux verlieben.
Abschließend studieren Sie Uboot, die Anpassung des Linux-Kernels und die Erstellung von Dateisystemen. Zu diesem Zeitpunkt sind die C- und Linux-Systemprogrammierung, die Sie später erlernt haben, bereits mit Ihrem ARM-Board verbunden.
Abschließend: Warum liebst du immer noch Hardware? Sie können Linux-Systemanwendungen in Richtung der Entwicklung eingebetteter Linux-Treiber entwickeln. Die Hardware-Grundlagen, die Sie auf stm32 gesammelt haben, werden sich zu diesem Zeitpunkt als nützlich erweisen. Von Linux-Gerätemodellen und Kernelmodulen bis hin zu Zeichengerätetreibern, Blockgerätetreibern und Netzwerkgerätetreibern – gewöhnen Sie sich an, SourceInsight zu verwenden, um sich den Linux-Kernel-Quellcode anzusehen – denken Sie nur an die ucosii zurück, die Sie zum ersten Mal gelernt haben. Es wird empfohlen, „LDD3“ und Song’s „Linux Device Driver Interpretation“ zu lesen. Dieser Prozess dauert fünf Jahre.
Schließlich werden Sie feststellen, dass stm32, s55pvpv210, ucosii und Linux alle als eingebettete Systeme bezeichnet werden.
ps: Als ich deine Frage sah, dachte ich an mich selbst zu dieser Zeit in diesem Jahr: Ich ging in Teilzeit in ein Restaurant und wurde geschlagen, und ich ging nachts nach Hause, um das Licht anzuzünden und den Code einzugeben, den ich hatte voller bitterer Tränen...
Glauben Sie auch nicht, dass viele Produkte kein Linux verwenden. Wer noch nicht in die Welt von Linux eingestiegen ist, wird nicht verstehen, wie schön Linux ist. Und betrachten Sie Linux nicht als Ihr ultimatives Ziel. Genauso wie Sie ucosii zuvor nicht als Ihr ultimatives Ziel betrachtet haben, sollten Sie sich während Ihrer gesamten Karriere auf die Strategie konzentrieren, Betriebssystemmechanismen zur Lösung komplexer Probleme zu nutzen – auch nicht. Der Stack-Contract-Stack verwendet den OSAL-Mechanismus (Operating System Representation Layer) – dieser kann nur verstanden, aber nicht in Worten ausgedrückt werden. Werfen Sie einen Blick auf „Unix Design Philosophy“, wenn Sie Zeit haben. Sie lernen und kommunizieren gemeinsam.
Das obige ist der detaillierte Inhalt vonSTM32 und Linux: Von der Hardware zur Software, der Schlüssel zur Beherrschung des Betriebssystemmechanismus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!