Aujourd'hui, je partage une question populaire relative à l'embarqué sur Zhihu : que devez-vous apprendre pour apprendre STM32 avant qu'il ne soit recommandé d'apprendre Linux ?
Une très bonne réponse :
«
Auteur : Snowdream
Lien : https://www.zhihu.com/question/357775329/answer/2338874463
”
En tant que programmeur expérimenté en développement de logiciels embarqués, le répondant a également expérimenté le processus de transformation de la pile technologique du développement STM32 au développement Soc+Linux.
En général, Avoir des compétences en développement embarqué stm32 jouera un certain rôle dans la maîtrise du développement embarqué de Soc+Linux
具备stm32嵌入式开发技能对于掌握Soc+Linux的嵌入式开发有一定的促进作用
,但是如果题主志在走向Linux应用开发道路, 那么stm32的开发技能并不一定非要全部掌握
, mais si le sujet vise à évoluer vers le développement d'applications Linux, Alors les compétences de développement de stm32 ne sont pas nécessairement Vous avez pour tous les maîtriser
Basé sur l'expérience de transformation de la pile de compétences personnelles du répondant, 以下技能通常是stm32和Linux嵌入式应用开发所共有的,换句话说是可以复用的技能
Pour le développement embarqué, le langage de codage courant actuel est toujours le langage C. Cela est vrai pour stm32, et il en va de même pour Linux. La seule différence est que le développement embarqué sous Linux implique souvent certaines API de fonctions de bibliothèque Linux, telles que des sockets, des verrous, etc.
Utilisez-les simplement lorsque vous en avez besoin. Par conséquent, s'il y a suffisamment de projets de développement stm32, d'une manière générale, les compétences en programmation C peuvent être directement héritées.
La clé du développement d'applications est de comprendre les exigences et de concevoir des unités fonctionnelles appropriées (fournissant des interfaces API pour d'autres modules) ou de concevoir des algorithmes de logique de contrôle appropriés en fonction des exigences. Cette compréhension des exigences et la capacité à concevoir des modules et des algorithmes peuvent également être expérimentées dans le projet stm32 et peuvent constituer une base pour le développement d'applications Linux.
Quelle est la plus grande différence entre le développement d'applications Linux et stm32
?L'idée d'autant de fils de discussion et de protection contre l'exclusion mutuelle sera le premier choix. Dans le monde du développement Linux, les threads et les processus sont indissociables, et la protection par exclusion mutuelle des ressources partagées est indissociable. Cependant, si RTOS n'est pas impliqué dans le développement de stm32, vous devez apprendre la pensée multitâche de RTOS.
Le multitâche et le multithreading ont une logique très similaire, donc avec la pensée multitâche RTOS, cela peut grandement promouvoir l'apprentissage et la maîtrise du multithreading, du multiprocessus et de la protection par exclusion mutuelle Linux. 🎜
** . 可能有的朋友说,我不做Linux驱动,没有必要学习什么UART,IIC,SPI,DMA,TCP/IP,RapidIO等硬件通信协议。这种想法是不对的
Dans le développement de nombreuses applications Linux, le répondant a impliqué le développement d'unités fonctionnelles qui communiquent avec d'autres systèmes embarqués et la conception de ses propres protocoles de communication. Par exemple, si vous ne comprenez pas le protocole UART, vous n'avez aucun moyen de concevoir. le vôtre. Texte de l’accord. Si vous ne comprenez pas le protocole RapidIO, comment pouvez-vous communiquer avec les processeurs d'autres cartes uniques ? Bien que les collègues pilotes vous aident avec le pilote, comprendre la logique de la couche supérieure ou l'emplacement du problème vous aidera toujours si vous comprenez le protocole ? empiler.
Donc, en résumé, il n'est pas nécessaire de maîtriser stm32 avant d'apprendre le développement Linux embarqué. Si vous avez accumulé stm32 dans les quatre points ci-dessus, vous pouvez envisager d'essayer le développement d'applications Linux embarquées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!