Maison > Article > Tutoriel système > STM32 et Linux : Du matériel au logiciel, la clé pour maîtriser le mécanisme du système d'exploitation
Bonjour, hôte ! Je ne vais pas vous parler des grandes idées comme celles ci-dessus, mais je vais vous parler des choses pratiques. Linux et stm32 sont une plateforme logicielle et une plateforme matérielle, qui sont complètement différentes (rappelez-vous, ce sont des plateformes !). Disons-le ainsi, puisque vous aimez les microcontrôleurs, apprenez d'abord stm32Explication détaillée du développement de pilotes de périphériques Linux embarqués, et posez des bases solides pour le matériel, en particulier divers bus (usb, iic, spi...) et divers modules périphériques (infrarouge, température et humidité, mpu6050...), puis concentrez-vous sur ucosii, c'est-à-dire apprenez à réaliser vos tâches dans le cadre du système d'exploitation, plutôt que de simplement écrire des programmes pour le système d'exploitation Saisir le mécanisme est la clé pour vous distancer des amis MCU autour de vous ; dans ce processus, vous devez comprendre la vraie signification du système d'exploitation. Je vous suggère de lire « Principes du système d'exploitation » en ce moment.
Après cela, vous pourrez entrer en contact avec ARM (pourquoi pas Linux ensuite ? Je vous le dirai plus tard). Vous pouvez acheter la carte de développement Friendly Arm ou Feilin s3c2440 (est-ce que cela compte comme de la publicité ?), ou vous pouvez acheter une carte A8, qui coûtent toutes deux environ 500 yuans. Quand j'ai commencé à apprendre ARM, ce n'était rien de plus qu'un programme nu, utilisant l'assembly et le C pour contrôler les registres à l'intérieur du CPU Explication détaillée du développement du pilote de périphérique Linux intégré, puis contrôler les périphériques, ce qui est similaire à STM32 . Lorsque vous apprenez à contrôler les périphériques de la carte de développement, félicitations pour avoir franchi la porte de Linux embarqué !
À l'heure actuelle, vous devez maîtriser parfaitement le langage C et faire attention à GNUC. Que signifie maîtriser GNUC ? Vous devez connaître la différence entre GNUC et ANSIC, savoir qu'un morceau de code C est présenté dans SDRAM lors de l'exécution, connaître l'utilisation flexible des aiguilles de la montre et savoir comment utiliser le C orienté processus pour mettre en œuvre des compétences de réflexion orientées objet. ... Vous devez lire au moins trois livres sur les livres en langage C (sauf ceux nationaux) ainsi que quelques articles de blog. Le principe est que vous écrivez du code sous Linux. Vous pouvez installer Ubuntu, apprendre à définir des variables d'environnement, apprendre à utiliser vim, utiliser gcc pour compiler et apprendre à utiliser gdb pour déboguer. Je vous suggère de lire "Brother Niao's Private Linux Cooking".
Après avoir maîtrisé le cours C Linux, vous pouvez commencer à apprendre la programmation système Linux, telle que la programmation multi-processus, multi-thread et socket. Il est recommandé de commencer par "Programmation d'environnement intermédiaire Unix", puis de lire "...IPC" et "Programmation réseau UNIX"... chaque partie est un livre ! Les plus importants d'entre eux sont le mécanisme de contrôle de concurrence des variables partagées par multi-processus/multi-thread et la programmation socket - n'oubliez pas de bien les apprendre ! ! ! Lorsque vous aurez fini d’apprendre tout cela, vous tomberez amoureux de Linux dans un peu plus d’un an.
Enfin, étudiez uboot, l'adaptation du noyau Linux et la création de systèmes de fichiers. À ce stade, la programmation système C et Linux que vous avez apprise plus tard est déjà connectée à votre carte ARM.
Enfin, pourquoi aimez-vous toujours le matériel ? Vous pouvez développer des applications système Linux dans le sens du développement de pilotes Linux intégrés. La base matérielle que vous avez accumulée sur stm32 vous sera utile à ce moment-là. Des modèles de périphériques Linux et des modules de noyau aux pilotes de périphériques de caractères, aux pilotes de périphériques de bloc et aux pilotes de périphériques réseau, prenez l'habitude d'utiliser sourceinsight pour examiner le code source du noyau Linux - repensez simplement aux ucosii que vous avez appris pour la première fois. Il est recommandé de lire "LDD3" et "Linux Device Driver Interpretation" de Song. Ce processus prend cinq ans.
Enfin, vous constaterez que stm32, s55pvpv210, ucosii et Linux sont tous appelés systèmes embarqués.
ps : Quand j'ai vu votre question, j'ai pensé à moi à cette époque de l'année : je suis allé au restaurant à temps partiel le soir et je me suis fait battre, et je rentrais chez moi le soir pour allumer les lumières et taper du code, et je était plein de larmes amères...
Ne croyez pas non plus que de nombreux produits n'utilisent pas Linux. Ceux qui ne sont pas entrés dans le monde de Linux ne comprendront pas à quel point Linux est beau. Et ne considérez pas Linux comme votre objectif ultime Tout comme vous ne considériez pas ucosii comme votre objectif ultime auparavant, la stratégie consistant à utiliser les mécanismes du système d'exploitation pour résoudre des problèmes complexes est ce sur quoi vous devriez vous concentrer tout au long de votre carrière - même le z-. La pile de contrats de pile l'utilise. Le mécanisme de couche de représentation du système d'exploitation (OSAL) a été introduit - cela ne peut être compris que mais ne peut pas être exprimé avec des mots. Jetez un œil à la « Philosophie de conception Unix » lorsque vous avez le temps. Vous apprenez et communiquez ensemble.
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!