Heute teile ich eine beliebte eingebettete Frage auf Zhihu: Was müssen Sie lernen, um STM32 zu lernen, bevor es empfohlen wird, Linux zu lernen?
Eine sehr gute Antwort:
“
Autor: snowdream
Link: https://www.zhihu.com/question/357775329/answer/2338874463
“
Als erfahrener Programmierer in der Entwicklung eingebetteter Software hat der Befragte auch den Technologie-Stack-Transformationsprozess von der STM32-Entwicklung zur Soc+Linux-Entwicklung erlebt.
Im Allgemeinen Kenntnisse in der eingebetteten STM32-Entwicklung werden eine gewisse Rolle bei der Beherrschung der eingebetteten Entwicklung von Soc+Linux spielen
具备stm32嵌入式开发技能对于掌握Soc+Linux的嵌入式开发有一定的促进作用
,但是如果题主志在走向Linux应用开发道路, 那么stm32的开发技能并不一定非要全部掌握
, aber wenn das Thema darauf abzielt, sich in Richtung Linux-Anwendungsentwicklung zu bewegen, Dann sind die Entwicklungsfähigkeiten von stm32 nicht unbedingt Sie haben um sie alle zu meistern
Basierend auf den Erfahrungen des Befragten mit der Transformation seines persönlichen Skill-Stacks, 以下技能通常是stm32和Linux嵌入式应用开发所共有的,换句话说是可以复用的技能
Für die eingebettete Entwicklung ist die aktuelle Mainstream-Codierungssprache immer noch die C-Sprache. Dies gilt für stm32 und das Gleiche gilt für Linux. Der einzige Unterschied besteht darin, dass die eingebettete Linux-Entwicklung häufig einige Linux-Bibliotheksfunktions-APIs wie Sockets, Sperren usw. umfasst.
Verwenden Sie diese einfach, wenn Sie sie brauchen. Wenn daher genügend STM32-Entwicklungsprojekte vorhanden sind, können C-Programmierkenntnisse im Allgemeinen direkt vererbt werden.
Der Schlüssel zur Anwendungsentwicklung besteht darin, die Anforderungen zu verstehen und geeignete Funktionseinheiten zu entwerfen (Bereitstellung von API-Schnittstellen für andere Module) oder geeignete Steuerlogikalgorithmen entsprechend den Anforderungen zu entwerfen. Dieses Verständnis von Anforderungen und die Fähigkeit, Module und Algorithmen zu entwerfen, können auch im stm32-Projekt erlebbar gemacht werden und eine Grundlage für die Entwicklung von Linux-Anwendungen bilden.
Was ist der größte Unterschied zwischen der Linux-Anwendungsentwicklung und stm32
?Die Idee so vieler Threads und des gegenseitigen Ausschlussschutzes wird die erste Wahl sein. In der Linux-Entwicklungswelt sind Threads und Prozesse untrennbar miteinander verbunden, und der gegenseitige Ausschlussschutz gemeinsam genutzter Ressourcen ist untrennbar miteinander verbunden. Wenn RTOS jedoch nicht an der Entwicklung von stm32 beteiligt ist, müssen Sie das Multitasking-Denken von RTOS erlernen.
Multitasking und Multithreading haben eine sehr ähnliche Logik. Mit dem RTOS-Multitasking-Denken kann das Erlernen und Beherrschen von Linux-Multithreading, Multiprozess und gegenseitigem Ausschlussschutz erheblich gefördert werden. 🎜
Man kann sagen, dass die stm32-MCU über eine sehr starke Peripherie- und interne Bibliotheksunterstützung verfügt, was beim Erlernen einiger Kommunikationsprotokollstapel sehr hilfreich ist. **可能有的朋友说,我不做Linux驱动,没有必要学习什么UART,IIC,SPI,DMA,TCP/IP,RapidIO等硬件通信协议。这种想法是不对的
** .
Eine solche Protokoll-Stack-Grundlage wird bei der zukünftigen Anwendungsentwicklung immer nützlich sein.
Bei der Entwicklung vieler Linux-Anwendungen war der Befragte an der Entwicklung von Funktionseinheiten beteiligt, die mit anderen eingebetteten Systemen kommunizieren, und an der Gestaltung eigener Kommunikationsprotokolle. Wenn Sie beispielsweise das UART-Protokoll nicht verstehen, haben Sie keine Möglichkeit, etwas zu entwerfen Ihr. Vertragstext. Wenn Sie das RapidIO-Protokoll nicht verstehen, wie können Sie dann mit den CPUs anderer Einzelplatinen kommunizieren? Obwohl die Treiberkollegen Ihnen bei der Erstellung des Treibers helfen, wird Ihnen das Verständnis der Logik der oberen Schicht oder des Problemorts immer helfen, wenn Sie das verstehen Protokollstapel.
Zusammenfassend lässt sich sagen, dass es nicht notwendig ist, stm32 zu beherrschen, bevor man die Entwicklung eingebetteter Linux erlernt. Wenn Sie stm32 in den oben genannten vier Punkten gesammelt haben, können Sie die Entwicklung eingebetteter Linux-Anwendungen ausprobieren.
Das obige ist der detaillierte Inhalt vonWas müssen Sie lernen, um STM32 zu lernen, bevor es empfohlen wird, Linux zu lernen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!