Avez-vous ce doute en tant que nouveau venu dans la société ? Pourquoi le poste de micro-ordinateur à puce unique nécessite-t-il le système Linux ?

Avez-vous ce doute lorsque vous êtes nouveau dans la société ? Pourquoi la position du micro-ordinateur à puce unique nécessite-t-elle le système Linux ?

Pourquoi certaines tâches MCU nécessitent-elles une certaine base Linux ?

Il peut y avoir deux considérations :

La première est : certaines entreprises ont des produits diversifiés, certains produits doivent utiliser MCU + RTOS, et certains produits utiliseront Linux, donc si vous recrutez des personnes qui peuvent faire les deux, elles seront mieux à même de faire leur travail. Par exemple, l'équipe projet dans laquelle je suis est comme ça, bien qu'il s'agisse du même type de projet, avec l'itération des fonctions, il faut faire évoluer la plate-forme utilisée. Par exemple, au début, le produit n'était pas très intelligent et était plus traditionnel, plus tard, il a fallu introduire l'IA visuelle, etc., et ensuite ce serait sur la plate-forme Linux embarquée.

La seconde est la suivante : il existe des exigences concernant la capacité des candidats. Le micro-ordinateur monopuce et Linux embarqué peuvent être très différents, mais il existe également de nombreuses similitudes. Il est nécessaire d'examiner certaines compétences de base des candidats sous plusieurs aspects.

J'ai également commencé par le microcontrôleur auparavant.Permettez-moi de partager une compréhension et une compréhension de Linux embarqué du point de vue du microcontrôleur :

Trions ensemble quelques connaissances sur Linux embarqué, ce qui est pratique pour certains amis qui veulent passer du microcontrôleur au Linux embarqué comme moi pour faire un apprentissage de référence.

Que savoir sur Linux embarqué

1. Connaître Linux

Certains des amis qui apprennent MCU ont des bases Linux, mais il y a aussi des amis qui n'ont jamais utilisé Linux, et même certains lecteurs débutants n'ont jamais entendu parler de Linux.Afin de prendre soin de ces amis, voici une brève introduction à Linux :

606534457a611c72da13287c8f2af4e2.png

2. Comprendre Linux embarqué

Pour apprendre Linux embarqué, nous devons prêter attention aux éléments majeurs suivants :

45b7c29ddd020a9c83a7487c794ca23b.png

Les trois parties les plus importantes du logiciel Linux embarqué sont Bootloader, le noyau Linux et le système de fichiers racine. Avec ces trois parties, il s'agit d'un système embarqué minimal, complet, capable d'exécuter des programmes.

(1) chargeur de démarrage

BootLoader est un morceau de code qui s'exécute avant que le système d'exploitation ne s'exécute pour démarrer le système d'exploitation. Il existe de nombreux types de BootLoader open source, tels que RedBoot, U-Boot, etc. Parmi eux, U-Boot est le plus utilisé. Le code source de U-Boot est très énorme :

bad6bb145d1532d2c08febd7cd74af73.png

L'objectif de notre étude est d'apprendre à modifier le U-Boot transplanté de l'usine de puces d'origine et à l'adapter à notre carte :

5416ada6fcfc1405c7698901bda083e8.png

Habituellement, la transplantation U-Boot fait référence au processus de modification et d'adaptation à notre carte en utilisant le U-Boot transplanté par l'usine de puces d'origine.

(2) Noyau Linux

Le noyau Linux (en anglais : noyau Linux) est un noyau de macro de système d'exploitation open source de type Unix. Le noyau Linux que nous voulons apprendre à transplanter consiste également à utiliser le package du noyau Linux transplanté par l'usine de puces d'origine pour la transplantation. Le répertoire source du noyau est le suivant :

8d2d95c00d40466cbfa3264825f99bf7.png

(3) système de fichiers racine

Le système de fichiers racine (rootfs) est le premier système de fichiers qui est  monté (monté) au démarrage du noyau. Le fichier image du code du noyau est enregistré dans le système de fichiers racine et le programme de démarrage du système sera installé à partir de la racine système de fichiers après le montage du système de fichiers racine. Chargez quelques scripts et services d'initialisation de base en mémoire pour les exécuter.

L'importance du système de fichiers racine ici est comme le disque système de notre ordinateur.Ce n'est qu'avec ce disque système que nous pouvons installer notre système. Le système de fichiers racine a un répertoire racine /, et il existe de nombreux sous-répertoires sous le répertoire racine :

70790d115126b6d88665a90d42c82e4d.png

39dac98e93a1d7e3ee5f3657df15b27e.png

Le système de fichiers racine a besoin d'un framework spécial pour être créé, ces frameworks incluent :  BusyBox, Yocto, Buildroot, etc.

(4) Pilote Linux

Le pilote Linux devrait être le point de départ et l'objectif de notre apprentissage de Linux embarqué. Les trois éléments de contenu ci-dessus ont créé pour nous un environnement Linux embarqué complet. Avec un tel environnement, notre pilote Linux peut être installé dessus. Pilote Linux :

84163e791f43ecd2d23fa8b4fdec6391.png

Il existe trois types de pilotes sous Linux : les pilotes de périphérique caractère, les pilotes de périphérique bloc et les pilotes de périphérique réseau.

Device Tree (Device Tree), le mot est divisé en "device" et "tree", le fichier décrivant l'arborescence des périphériques est appelé  DTS (DeviceTree Source), ce  fichier DTS utilise une structure arborescente pour décrire au niveau de la carte périphériques, c'est-à-dire les informations sur le périphérique sur la carte de développement, telles que le nombre de processeurs, l'adresse de base de la mémoire, les périphériques connectés à l'interface  IIC et les périphériques connectés à l'interface  SPI, etc.

(5) Applications Linux

Sous Linux : tout est un fichier. En programmation C, nous savons tous que les opérations sur les fichiers consistent à ouvrir des fichiers, lire et écrire des fichiers, fermer des fichiers, etc. Dans la programmation d'applications Linux embarquées, notre objectif est également de savoir comment exploiter (ouvrir, fermer, lire, écrire, etc.) ces fichiers (fichiers de périphérique, etc.).

3. Une certaine expérience dans l'apprentissage de Linux embarqué

L'apprentissage du Linux embarqué est beaucoup plus difficile que celui des micro-ordinateurs monopuces, non seulement le contenu à apprendre a augmenté, mais aussi la familiarité avec l'environnement de développement (environnement Linux, cross-compiler, Makefile, etc.) beaucoup de contenu. C'est beaucoup plus profond que le micro-ordinateur à puce unique. Par exemple, dans le passé, STM32 était compilé par IDE, et Linux embarqué était compilé directement avec un compilateur ou compilé avec un script de compilation.

D'après mon expérience de démarrage et d'abandon, il est préférable de commencer à apprendre des pilotes et des applications Linux.N'allez pas vers les trois géants ci-dessus dès que vous arrivez, sinon il est facile de se lancer et d'abandonner. . .

Apprenez cela et préparez-vous à endurer des épreuves, et de nombreux problèmes peuvent vous rendre fou. Par exemple, si vous suivez le tutoriel, le résultat final peut être différent et il peut y avoir de nombreux problèmes, c'est normal. Et parfois, cela semble n'être qu'un problème, mais ce problème impliquera d'autres problèmes et doit être résolu patiemment.

par exemple. Par exemple, lors de la compilation du noyau Linux, les problèmes suivants se produisent :

bbfd91221784a2b5ee72d3a0dccfec36.png

Selon la description du problème de journal : une chose appelée lzop est manquante, puis j'ai installé cette chose en fonction de l'invite, puis le problème est réapparu :

2b671a1e2acf79c474f9d89ff75ba63f.png

Ensuite, je ne peux que trouver une solution sur Internet, puis essayer un par un, et finalement résolu:

1d4d83ef6afb6697fdf83b2df06dc55a.png

39fa885f7b18e31c2ae5b4484b2a7d80.png

f552755e291cb3c7ca52d5327bde03a1.png

La méthode expérimentale est la même que le didacticiel, y compris l'environnement de développement, qui est fourni par le didacticiel, de sorte que la même opération que le didacticiel peut causer des problèmes, sans compter que parfois vous devez configurer l'environnement vous-même, et la probabilité d'erreur sera plus grande.

Dans tous les cas, n'abandonnez pas si facilement.

4. Enfin

La connaissance de Linux embarqué ne se limite pas à celles mentionnées ci-dessus, mais comprend essentiellement notre principal contenu d'apprentissage. Les éléments mentionnés ci-dessus ne sont que des connaissances conceptuelles superficielles, puis nous apprendrons et partagerons ensemble des connaissances plus approfondies et détaillées. Au début de cette année, j'ai enregistré un tutoriel d'introduction relativement systématique sur le micro-ordinateur monopuce. Si vous le souhaitez, vous pouvez me demander de l'obtenir gratuitement, et vous pouvez m'envoyer un message privé ~ Vous pouvez également l'obtenir en cliquant sur mon avatar en caractères noirs et en ajoutant 隱重麺.

Je suppose que tu aimes

Origine blog.csdn.net/danpianji777/article/details/124046325
conseillé
Classement