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...
또한 많은 제품이 Linux를 사용하지 않는다고 믿지 마세요. Linux의 세계에 들어가보지 않은 사람들은 Linux가 얼마나 아름다운지 이해하지 못할 것입니다. 그리고 Linux를 최종 목표로 간주하지 마십시오. 이전에 ucosii를 최종 목표로 간주하지 않은 것처럼 운영 체제 메커니즘을 사용하여 복잡한 문제를 해결하는 전략은 경력 전반에 걸쳐 집중해야 할 것입니다. 스택 계약 스택은 이를 사용합니다. OSAL(운영 체제 표현 계층) 메커니즘이 도입되었습니다. 이는 이해할 수만 있을 뿐 말로 표현할 수는 없습니다. 시간이 나면 "유닉스 디자인 철학"을 한번 살펴보세요. 함께 배우고 소통합니다.
위 내용은 STM32 및 Linux: 하드웨어에서 소프트웨어까지, 운영 체제 메커니즘을 마스터하는 열쇠의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!