Résumé des questions d'entrevue d'ingénieur intégré (nouveau diplômé, changement de carrière)

Résumé des questions d'entrevue

1. Fondation C

  1. Quelles sont les fonctions du processus de compilation complet du compilateur gcc?

    Réponse: prétraitement, compilation, assemblage, liaison. Prétraitement: extension des fichiers d'en-tête / remplacement des macros / suppression des commentaires / compilation conditionnelle. Compilez: vérifiez la grammaire et générez l'assembly. Assemblage: le code d'assemblage est converti en code machine. Lien: liez ensemble pour générer un fichier exécutable.

  2. Qu'est-ce qu'une fonction de rappel?

    Réponse: Une fonction de rappel est un segment de code exécutable, qui est passé à d'autres codes en tant que paramètre, et sa fonction est d'appeler facilement ce code (fonction de rappel) si nécessaire.

  3. L'adresse peut-elle être imprimée à l'aide de% u dans la fonction printf?

    Réponse: Non.

    Qu'il soit non signé ou non, la valeur du type char stocké dans la mémoire est la même, qui est 0xFF.

    Lorsque printf ("% u") sort, la variable de type char sera promue au type int.

    Comme char est un type de nombre signé, il sera développé par des symboles. a Développez de 0xFF à 0xFFFFFFFF (4294967295).
    Le caractère non signé sera développé par zéro et b sera développé de 0xFF à 0x000000FF (255).

  4. La différence entre structure et union

    Réponse: Union de structure, également appelée union. C'est un type dérivé de la nécessité de stocker plusieurs types différents de variables dans la même unité de mémoire pendant la programmation. C'est-à-dire qu'une seule des variables peut être stockée dans l'union à la fois, et cette variable deviendra invalide lorsqu'un nouveau membre est stocké dans la variable union! ! ! L'utilisation est la même que la structure, mais elle est principalement utilisée à l'intérieur de la structure.

    Remarque:

    (1) Dans la structure, chaque membre occupe son propre espace mémoire, et ils existent en même temps. La longueur totale d'une variable struct est égale à la somme des longueurs de tous les membres. Dans Union, tous les membres ne peuvent pas occuper son espace mémoire en même temps, et ils ne peuvent pas exister en même temps. La longueur de la variable Union est égale à la longueur du membre le plus long.

    (2) L'affectation de valeurs à différents membres de l'union écrasera les autres membres. La valeur de membre d'origine n'existe pas et l'affectation de différents membres de struct ne s'applique pas les uns aux autres.

  5. Quelles sont les fonctions des mots-clés static, const et volatile?

    Réponse: statique: limiter le rôle, prolonger le cycle de vie. const: Empêche la modification des variables. Volatile: pour empêcher le compilateur de suroptimiser, dites au compilateur d'extraire la valeur de la mémoire à chaque fois. Volatile est principalement utilisé pour les variables non automatiques auxquelles accèdent les sous-programmes de fonction d'interruption, les variables globales partagées par plusieurs threads et les registres de périphériques parallèles.

  6. La différence entre déclarer des variables et définir des variables

    répondre:

  7. Quelle est la différence entre l'attribution et l'attribution de valeur initiale?

  8. Les variables locales et les variables globales peuvent-elles être renommées

  9. Comment référencer une variable externe qui a été définie

  10. Quelle est la différence entre le stockage des variables globales et des variables locales?

  11. Quels sont les avantages de const par rapport à #define?

  12. Quelle est la différence entre tableau et pointeur?

  13. Pourquoi les tableaux et les pointeurs utilisés comme paramètres de fonction sont-ils interchangeables?

  14. Quelle est la différence entre les paramètres formels et les paramètres réels?

  15. Quelle est la relation entre les pointeurs, les tableaux et les adresses?

  16. Un pointeur void est-il un pointeur nul? Quel est son rôle?

  17. Quels sont les concepts importants étroitement liés à la mémoire? (Pointeur sauvage, pile (pile), tas (tas), zone statique)

  18. Quelle est la différence entre #include <> et #include ””?

  19. x = x + 1, x + = 1, x ++ Qu'est-ce qui est le plus efficace?

  20. Lors de l'affectation d'une valeur à une variable non signée, comment le type de données doit-il être converti?

  21. Comment le processeur exécute-t-il le programme?

    Réponse: Ouvrez un espace mémoire de 0 à 4 g, ouvrez un processus et chargez le code dans le registre ...

2. Principes de base de Linux

  1. Quels sont les noms collectifs des périphériques de caractères, des périphériques de bloc, des tuyaux, etc. sous Linux?

    Réponse: Un périphérique du système qui peut accéder à des tranches de données de taille fixe de manière aléatoire (pas dans l'ordre) est appelé un périphérique bloc.

    La principale différence entre un périphérique caractère et un périphérique bloc est la suivante: lorsqu'une demande de lecture / écriture est émise vers un périphérique caractère, les E / S matérielles réelles se produisent généralement immédiatement, contrairement au périphérique bloc. Il utilise un bloc de mémoire système comme tampon. Lorsque le processus demande au périphérique de répondre aux exigences de l'utilisateur, il renvoie les données demandées. Si ce n'est pas le cas, appelez la fonction de demande pour effectuer l'opération d'E / S réelle. Par conséquent, le périphérique bloc est principalement conçu pour les périphériques lents tels que les disques afin d'éviter une consommation excessive. Plus de temps CPU à attendre

  2. Il existe plusieurs façons d'afficher le type d'un fichier

    : : Ls-l 、 ls-ld 、 fichier 、 stat

  3. Quels sont les outils d'installation couramment utilisés sous Linux?

    答 : apt-get install

  4. Interpréter les commandes shell, les shells et les scripts shell séparément

  5. Si printf et scanf fonctionnent sur le même fichier

  6. Quels types de systèmes de fichiers sont couramment utilisés sous Linux? Comment vérifier le type de système de fichiers?

  7. Existe-t-il un système de fichiers sous Windows? Que fait le système de fichiers?

  8. Dans quel chemin se trouvent généralement les fichiers d'en-tête et les fichiers de bibliothèque?

  9. Comment le système distingue-t-il les fichiers portant le même nom

  10. Comment le système distingue-t-il les différents processus.

  11. Voir quelles commandes sont dans le fichier

    Réponse: trouver, ls

  12. Telles que l'autorisation de modifier le fichier

    Réponse: chmod 777 xxx

  13. Qu'est-ce qu'un lien symbolique?

3. Structure des données

  1. Quelle est la principale recherche sur la structure des données?

    Réponse: La structure des données est la manière dont un ordinateur stocke et organise les données. La structure de données fait référence à un ensemble d'éléments de données qui ont une ou plusieurs relations spécifiques les uns avec les autres. Dans des circonstances normales, une structure de données soigneusement sélectionnée peut améliorer l'efficacité opérationnelle ou de stockage. La structure des données est souvent liée à des algorithmes d'extraction et des techniques d'indexation efficaces.

  2. La différence entre un tableau et une liste chaînée (analyse de trois aspects: structure logique, stockage en mémoire et mode d'accès)

  3. Algorithme de tri rapide

  4. Algorithme de recherche de hachage

  5. Déterminer si la liste liée individuellement a un anneau

  6. Déterminez si une chaîne entre crochets correspond correctement. S'il y a plusieurs crochets, que dois-je faire? Si (([])) est correct, [[(() est faux

4. Processus d'E / S

  1. Quelle est la différence entre IO standard et IO fichier?
  2. Décrivez brièvement les pointeurs de flux?
  3. Décrivez brièvement les appels système?
  4. Décrivez brièvement la différence entre une bibliothèque statique et une bibliothèque dynamique?
  5. Comment exécuter le programme directement et en arrière-plan?
  6. Statut du processus
  7. Qu'est-ce qu'un processus zombie?
  8. Décrivez brièvement la technologie de copie sur écriture lors de la création d'un processus enfant?
  9. Avantages du multithreading et de plus de processus?
  10. L'utilisation du pool de threads?
  11. La partie du pool de threads?
  12. Mécanisme de synchronisation et d'exclusion mutuelle des threads?
  13. Décrivez brièvement le principe de réalisation du verrouillage mutex?
  14. Décrivez brièvement le scénario de blocage?
  15. Décrivez brièvement le principe du sémaphore?
  16. Décrivez brièvement le mécanisme de communication du processus?
  17. Le principe de communication du pipeline?
  18. Comment le processus utilisateur répond-il au signal?
  19. Le principe de la communication en mémoire partagée?

V. Programmation réseau

  1. Structure de communication réseau ISO à sept couches et structure de communication réseau TCP / IP à quatre couches
  2. Avantages et inconvénients de la communication TCP
  3. Avantages et inconvénients de la communication udp
  4. La différence entre pool et select
  5. Quels sont les modèles io
  6. Comment implémenter le serveur simultané TCP
  7. La nature et la mise en œuvre de la détection du délai d'expiration du réseau
  8. processus de programmation de réseau TCP
  9. processus de programmation de réseau udp
  10. Quels aspects doivent être pris en compte dans la communication locale d'UDP
  11. Comment modifier le bit de drapeau du descripteur de fichier
  12. Utilisation de base de la base de données sqlite, y compris l'ajout, la suppression, la modification
  13. Comment réaliser l'envoi de données en masse dans des salles de chat basées sur UDP
  14. Comment interroger des mots dans des dictionnaires en ligne
  15. La différence entre TCP et UDP
  16. Mode réseau à sept couches OSI, la fonction principale de chaque couche, le protocole principal
  17. Modèle de réseau OSI à quatre et cinq couches
  18. La poignée de main à trois et quatre vagues de mains de TCP fonctionnent séparément
  19. Comment implémenter des serveurs simultanés, comment les serveurs concurrents sont implémentés et quelles sont les similitudes et les différences

Six. C ++

  1. nouveau, supprimer, malloc, relation libre

  2. La différence entre supprimer et supprimer []

  3. Quelles sont les propriétés du C ++ (caractéristiques orientées objet)

  4. Le destructeur de la classe parente doit-il être appelé lorsque la sous-classe est détruite?

  5. Polymorphisme, fonction virtuelle, fonction virtuelle pure

  6. Recherchez la valeur de retour de la fonction suivante (Microsoft)

  7. Qu'est-ce qu'une "citation"? À quels problèmes faut-il prêter attention lors de l'affirmation et de l'utilisation de "citations"?

  8. Quelles sont les caractéristiques de l'utilisation de la «référence» comme paramètre de fonction?

  9. Quand dois-je utiliser "fréquemment cité"?

  10. Le format, les avantages et les règles de l'utilisation de «référence» comme type de valeur de retour d'une fonction?

  11. Quelle est la différence entre structure et union?

  12. Essayez d'écrire les résultats du programme:

    int a=4;
    int &f(int x){ 
        a=a+x;
        return a;
    }
    
    int main(void)
    { 
        int t=5;
        cout<<f(t)<<endl; 
        a = 9f(t)=20; 
        a = 20cout<<f(t)<<endl; 
        t = 5,a = 20 a = 25t=f(t); 
        a = 30 t = 30cout<<f(t)<<endl; 
    }
    //t = 60
    
  13. Quelle est la différence entre overload et overried (certains livres sont également appelés "cover")?

  14. Dans quels types de situations pouvez-vous utiliser uniquement la liste d'initialisation mais pas l'affectation?

  15. Le type C ++ est-il sûr?

  16. Quel code sera exécuté avant que la fonction principale ne soit exécutée?

  17. Décrivez les méthodes d'allocation de mémoire et leurs différences?

  18. Écrivez l'instruction de comparaison de BOOL, int, float, variable de type pointeur a et "zéro" respectivement.

  19. Veuillez me dire quels sont les avantages de const par rapport à #define?

  20. Décrivez brièvement la différence entre les tableaux et les pointeurs?

  21. Que signifie int (* s [10]) (int)?

  22. Mémoire de pile et zone constante littérale

  23. Passer le programme à l'adresse mémoire spécifiée

  24. int id [sizeof (unsigned long)]; Est-ce correct? Pourquoi?

  25. Quelle est la différence entre les références et les pointeurs?

  26. Par rapport à #define, quels sont les avantages de const?

  27. Combien de méthodes d'allocation de mémoire existe-t-il?

  28. Le destructeur de la classe de base n'est pas une fonction virtuelle, quels problèmes cela posera-t-il?

  29. Quelle est la différence entre les variables globales et les variables locales? Comment cela est-il réalisé? Comment le système d'exploitation et le compilateur le savent-ils?

7. Programmation de l'architecture ARM

  1. Décrivez brièvement les caractéristiques du processeur ARM, disons au moins plus de 5 caractéristiques.
  2. Combien de modes de fonctionnement le noyau ARM possède-t-il? Veuillez noter les abréviations anglaises de ces modes de fonctionnement. Il existe plusieurs modes anormaux et plusieurs modes de privilèges. La série cortex_a a plusieurs modes de privilèges et plusieurs modes de fonctionnement.
  3. Combien de registres possède le noyau ARM, décrivez brièvement
  4. Parmi les registres généraux ARM, il y a 3 registres avec des fonctions et des fonctions spéciales. Veuillez écrire leurs noms et fonctions.
  5. Veuillez décrire la situation et la fonction du bit concerné dans le registre CPSR.
  6. Qu'est-ce que les données immédiates? Quelle est la nature des données immédiates
  7. Quel contenu est sauvegardé dans le registre LR lorsque l'instruction BL saute? Et veuillez décrire brièvement la raison
  8. Veuillez décrire quel est le site du processeur et comment enregistrer le site?
  9. Quelle pile ATPCS utilise par défaut?
  10. Qu'est-ce qu'une pile complète et une pile vide, et qu'est-ce qu'une augmentation ou une diminution?
  11. Veuillez rédiger une instruction d'interruption du logiciel ARM complète et décrire brièvement sa fonction.
  12. Veuillez décrire le concept de la table des vecteurs d'exception dans le système ARM.
  13. Veuillez noter ce qui est inclus dans l'image du fichier bin généré par un programme ARM?
  14. Veuillez donner un exemple pour illustrer la différence entre une gestion d'interruption et une gestion d'exception d'interruption sur un processeur ARM.
  15. Veuillez décrire brièvement comment les étapes d'initialisation se terminent lorsqu'un traitement d'interruption anormale se produit, et quelles sont les étapes d'initialisation spécifiques?
  16. La fonction principale d'uboot
  17. Comment uboot démarre-t-il le noyau?
  18. Quelle est l'importance du processus de démarrage d'uboot
  19. Le rôle de bootcmd et bootargs deux variables d'environnement uboot
  20. Le processus de démarrage du noyau Linux
  21. La différence entre uImage, zImage, vmlinux
  22. La relation entre Kconfig, .config et Makefile

8. Migration du système

  1. Processus de démarrage du noyau Linux
  2. Qu'est-ce qu'un bootloader? Quel est le rôle du bootloader dans un système embarqué?
  3. Pourquoi le langage assembleur dépend-il de la plate-forme matérielle alors que le langage C peut être indépendant de la plate-forme matérielle?
  4. Qu'est-ce que la compilation croisée?
  5. Quel est le format du fichier exécutable sous la plateforme Linux?
  6. Qu'est-ce que le démontage?
  7. Décrivez brièvement le concept et la fonction du service nfs?
  8. Décrivez brièvement le processus de démarrage d'une carte de développement avec le noyau Linux?
  9. Quelles sont les principales fonctions d'uboot?
  10. Comment uboot définit-il les variables d'environnement?
  11. Décrivez brièvement le rôle des variables d'environnement bootcmd dans uboot?
  12. Décrivez brièvement le rôle de la variable d'environnement bootargs dans uboot?
  13. Décrivez brièvement ce qu'est le code lié à la plateforme et quel est le code indépendant de la plateforme?
  14. Comment comprendre que linux / uboot prend en charge diverses plates-formes matérielles?
  15. Comment configurer uboot en fonction d'une plate-forme de carte de développement spécifique?
  16. Comment compiler uboot pour générer des fichiers binaires?
  17. Décrivez brièvement le processus de démarrage de uboot?
  18. Quelles sont les fonctions du système d'exploitation?
  19. Comment configurer le code source Linux en fonction d'un processeur spécifique?
  20. Dans l'interface make menuconfig, certains pilotes peuvent être sélectionnés en trois états, à savoir "Y", "N" et "M". Que signifient les trois états?
  21. Comment compiler le module pilote sélectionné comme option "M"?
  22. Décrivez brièvement le rôle de l'arborescence des appareils?
  23. Quelle est la base principale pour écrire un fichier d'arborescence de périphériques?
  24. Décrivez brièvement comment compiler un pilote existant dans le code source du noyau dans le noyau?
  25. Décrivez brièvement comment compiler un pilote écrit par vous-même dans le noyau?
  26. Dans le processus de démarrage du noyau, si la console a été initialisée, quelle méthode utilisons-nous généralement pour déboguer le noyau?
  27. Que se passe-t-il lorsque le noyau Linux rencontre un rapport de plantage du système Oups au démarrage?
  28. Lorsque le noyau Linux rencontre certains problèmes lors du démarrage, il imprimera le rapport de plantage du système. Oups. Quel est le contenu principal imprimé dans le rapport?
  29. Décrivez brièvement ce qu'est un système de fichiers? Quel est le système de fichiers racine?
  30. Pourquoi n'est-il pas nécessaire d'installer des bibliothèques statiques dans les cartes de développement?

9. Développement de moteurs

  1. Qu'est-ce qu'un module?

  2. Il existe plusieurs types de lecteurs

  3. Processus de programmation du cadre de pilote de périphérique de caractère?

  4. Qu'est-ce que la concurrence et quelles sont les raisons des conditions de course chez le pilote?

  5. Quels sont les moyens de résoudre les conditions de course? Quelles sont les caractéristiques de chacun?

  6. Combien de modèles IO y a-t-il dans le pilote?

  7. La fonction principale de la conception du modèle de périphérique Linux?

  8. La structure du pilote de périphérique de caractère contredit-elle le modèle de périphérique Linux?

  9. Quelles sont les parties de l'architecture de la plateforme? À quoi correspondent-ils

  10. Y a-t-il une contradiction entre l'arborescence des appareils et l'architecture de la plateforme?

  11. Pourquoi l'interruption est-elle divisée en deux moitiés supérieure et inférieure? Quels sont les mécanismes des moitiés supérieure et inférieure?

  12. La différence entre la file d'attente de travail et le tasklet?

  13. Quelles sont les fonctions d'allocation de mémoire dans le noyau? Quelles sont les caractéristiques de chacun?

  14. Débogage du noyau

  15. Cadre de pilote de périphérique de caractère

  16. La différence entre les périphériques de caractères et les périphériques de bloc et les périphériques réseau

  17. Les concepts de concurrence d'accès et de conditions de concurrence, les situations dans lesquelles des conditions de concurrence se produiront, les méthodes pour les résoudre, ainsi que les différences et les scénarios d'utilisation.

    Réponse: Concurrence:

  18. La différence entre le verrouillage de rotation et le sémaphore

    Réponse: Lorsqu'un processus acquiert un verrou tournant lors de l'accès à une ressource, un autre processus souhaite également accéder à la ressource, et il tourne constamment pour demander s'il peut accéder à la ressource et consommer en permanence les ressources du processeur. Lorsqu'un processus acquiert un sémaphore lors de l'accès à une ressource, un autre processus souhaite également accéder à la ressource. À ce stade, il attendra. Une fois que le premier processus aura fini d'accéder, il informera le deuxième processus de le laisser continuer. accès.

  19. Parlez de votre compréhension du contexte d'interruption et du contexte de processus

  20. Quelle est la principale interruption de la moitié inférieure

  21. Modèle de pilote de bus de plate-forme Platfprm

  22. Framework de pilote de sous-système IIC

  23. Framework de pilote de sous-système d'entrée

  24. Par exemple: si le maître ne connaît pas l'adresse 7 bits de l'esclave, comment trouver l'esclave?

    Réponse: Lorsque le maître ne connaît pas l'adresse de l'esclave, le maître parcourra toutes les adresses d'esclave. Lorsqu'un esclave répond, cet esclave est l'esclave recherché.

10. Entreposage IOT

  1. De quoi êtes-vous responsable dans le projet?
  2. Quelles difficultés votre équipe a-t-elle rencontrées au cours du projet, comment l'avez-vous résolue et comment avez-vous résolu le problème le plus difficile que vous avez rencontré?
  3. Que pensez-vous peut être optimisé pour ce projet
  4. Processus de développement du programme principal A53
  5. Comment le client et le serveur communiquent
  6. Comment définir les paramètres de démarrage automatique lors du portage d'uboot
  7. Comment les informations environnementales sont affichées sur le client en temps réel dans le projet
  8. Comment réaliser la synchronisation et l'exclusion mutuelle entre les threads du projet?
  9. Comment le serveur communique avec M0
  10. Quelle est la forme des données envoyées sur M0?
  11. Comment le thread recevant les données lit les données
  12. Décrivez brièvement le principe de fonctionnement du serveur de streaming vidéo
  13. Pourquoi le client peut-il accéder aux données sur le serveur
  14. Quelles étapes doivent être effectuées pour créer un environnement de développement intégré
  15. Que dois-je faire si je rencontre un segfault dans le projet?
  16. Pourquoi utiliser des threads? Quels sont les avantages par rapport au procédé?
  17. Comment faire en sorte que le système démarre automatiquement après la mise sous tension?
  18. Quelle est la différence entre zImage et uImage lors de la compilation du noyau?
  19. Quel est le rôle de la file d'attente de messages dans le système?
  20. Où la file d'attente de messages et la mémoire partagée ouvrent-elles de l'espace?
  21. Si la vitesse de l'analyse des données côté serveur ne peut pas suivre la vitesse de réception des données, quels problèmes surviendront et que faut-il faire?
  22. Lors de l'appel de sqlite_get_table () pour interroger des données, quel est le résultat renvoyé dans result?
  23. Veuillez décrire brièvement le principe de mise en réseau de ZigBee
  24. Parlez de votre connaissance de la pile de protocoles zstack
  25. Que faut-il faire pour réaliser la transmission transparente des données de deux modules zigbee?
  26. Le rôle du serveur Boa
  27. Quel est le numéro de port par défaut utilisé par le serveur Boa? Quelles sont les configurations importantes décrites dans le fichier boa.conf

11. Reconnaissance vocale Baidu

  1. Si j'ai une carte de développement qui a été un bon système Linux, que dois-je faire pour réaliser l'interface d'appel de la reconnaissance vocale Baidu AI (le rôle de libcurl, openssl, alsa et la méthode de portage)

  2. Comment réaliser que la carte de développement peut cingler le réseau externe et Baidu

  3. Quels problèmes avez-vous rencontrés dans le processus de mise en œuvre? Comment est-ce arrivé? Comment le résoudre?

  4. Comment vérifier la version actuelle de votre système

Pas très complet, veuillez me pardonner ...

Je suppose que tu aimes

Origine blog.csdn.net/weixin_48430195/article/details/108737916
conseillé
Classement