FMUSER Wirless transmet la vidéo et l'audio plus facilement!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> albanais
ar.fmuser.org -> arabe
hy.fmuser.org -> Armenian
az.fmuser.org -> azerbaïdjanais
eu.fmuser.org -> basque
be.fmuser.org -> biélorusse
bg.fmuser.org -> Bulgare
ca.fmuser.org -> catalan
zh-CN.fmuser.org -> chinois (simplifié)
zh-TW.fmuser.org -> Chinois (traditionnel)
hr.fmuser.org -> croate
cs.fmuser.org -> tchèque
da.fmuser.org -> danois
nl.fmuser.org -> Néerlandais
et.fmuser.org -> estonien
tl.fmuser.org -> Philippin
fi.fmuser.org -> finnois
fr.fmuser.org -> Français
gl.fmuser.org -> Galicien
ka.fmuser.org -> géorgien
de.fmuser.org -> allemand
el.fmuser.org -> Grec
ht.fmuser.org -> Créole haïtien
iw.fmuser.org -> hébreu
hi.fmuser.org -> Hindi
hu.fmuser.org -> Hongrois
is.fmuser.org -> islandais
id.fmuser.org -> indonésien
ga.fmuser.org -> irlandais
it.fmuser.org -> Italien
ja.fmuser.org -> japonais
ko.fmuser.org -> coréen
lv.fmuser.org -> letton
lt.fmuser.org -> Lituanien
mk.fmuser.org -> macédonien
ms.fmuser.org -> malais
mt.fmuser.org -> maltais
no.fmuser.org -> Norwegian
fa.fmuser.org -> persan
pl.fmuser.org -> polonais
pt.fmuser.org -> portugais
ro.fmuser.org -> Roumain
ru.fmuser.org -> russe
sr.fmuser.org -> serbe
sk.fmuser.org -> slovaque
sl.fmuser.org -> Slovène
es.fmuser.org -> espagnol
sw.fmuser.org -> Swahili
sv.fmuser.org -> suédois
th.fmuser.org -> Thai
tr.fmuser.org -> turc
uk.fmuser.org -> ukrainien
ur.fmuser.org -> ourdou
vi.fmuser.org -> Vietnamienne
cy.fmuser.org -> Gallois
yi.fmuser.org -> Yiddish
Pour le développement d'applications: le langage C, la structure de données, JAVA, etc. doivent être bien appris. Il n'y a rien de spécial à prendre en compte dans le développement d'applications embarquées et le développement d'applications sur PC. Peut-être que vous dites que vous devez optimiser le système embarqué, oui, vous devez optimiser, mais le programme non optimisé n'est pas différent du développement du programme sur le PC. De plus, lorsque vous avez la possibilité d'optimiser, vous n'êtes plus habitué à poser cette question. Pour un exemple spécifique, comme l'interface de développement, nous utilisons VC sur le PC; dans Linux embarqué, nous pouvons utiliser QT et Android. À ce stade, vous devriez apprendre la programmation QT et Android. Mais la base est toujours C ou JAVA, et sur cette base, familiarisez-vous avec leurs interfaces. Si vous avez appris VC, il faut du temps pour comprendre ces classes et ces contrôles.
Si vous voulez apprendre le système sous-jacent, c'est ma spécialité, mais je peux en dire un peu.
Avant de répondre à cette question, permettez-moi de répondre: Beaucoup de gens me demandent, est-ce d'apprendre à conduire ou d'apprendre à postuler? Je peux seulement dire que cela est basé sur l'intérêt, et les pilotes et les applications ne sont pas complètement séparés.
1. Les pilotes dont nous parlons ne se limitent pas aux opérations matérielles, mais également à des concepts tels que les principes du système d'exploitation et la planification des processus de veille et de réveil. Si vous souhaitez rédiger une bonne application, et que vous souhaitez mieux résoudre les problèmes rencontrés par l'application, vous devez comprendre ces connaissances
2. Faibles barrières à l'application, en particulier l'ANDROID actuel, pur JAVA. Je pense personnellement que le chemin du développement d'applications est compétent en affaires. Par exemple, dans l'industrie des communications, l'industrie IPTV et l'industrie de la téléphonie mobile, vous comprenez les besoins de l'industrie. Par conséquent, les personnes qui sont des leaders sont principalement des applications.
3. Soyez motivé. En fait, je ne veux pas l'appeler «être un conducteur», mais je veux l'appeler «être un système de bas niveau». Une fois cela fait, cela tuera toutes les industries. Je travaille depuis plusieurs années et je fabrique des téléphones portables, des IPTV et des télévisions de conférence, mais ces produits ne font aucune différence pour moi car je ne fais que la couche inférieure. Leur entreprise n'a rien à voir avec moi. Lorsqu'il y a un problème avec l'application et qu'ils ne peuvent pas le résoudre, je leur donnerai une idée du point de vue du noyau et leur fournirai des outils. Je pense personnellement que je suis un expert technique dans le sens du développement de la couche inférieure.
4. En fait, il n'y a pas de frontière entre faire la couche inférieure ou faire l'application. Si vous avez l'expérience de la couche inférieure, vous vous sentirez très à l'aise lorsque vous effectuerez l'application. Avec une expérience professionnelle, vous pouvez apprendre à connaître la couche inférieure et vous pourrez bientôt former une équipe.
Revenons à la question de savoir comment apprendre. Qu'est-ce qui est inclus dans le système sous-jacent Linux embarqué? Ne vous inquiétez pas, vous le saurez en donnant un exemple.
1. Lorsque l'ordinateur est allumé, qui affiche ces interfaces? C'est le BIOS, que fait-il? Quelques autocontrôles, puis lisez les fenêtres du disque dur et démarrez-le. De même, ce BIOS correspond au bootloader sous Linux embarqué. Ce chargeur de démarrage doit lire le noyau Linux sur Flash et le démarrer.
2. À quoi sert le démarrage de Windows? Bien sûr, c'est du chat en ligne ou quelque chose du genre. Où sont ces outils Internet et de chat? Sur le lecteur C et le lecteur D. Par conséquent, Windows doit d'abord identifier le lecteur C et le lecteur D. Nous l'appelons le système de fichiers racine sous Linux.
3. Windows peut reconnaître le lecteur C et le lecteur D, il doit donc pouvoir lire et écrire sur le disque dur. Les choses impliquées sont appelées pilotes. Bien sûr, ce n'est pas seulement un disque dur, mais aussi une carte réseau, une clé USB, etc. Linux embarqué peut lire et exécuter des applications à partir de Flash, et il doit également disposer de pilotes Flash. Bien sûr, ce n'est pas seulement Flash.
Parlons-en d'abord, LINUX intégré contient quatre parties principales: le chargeur de démarrage, le noyau, le pilote et le système de fichiers racine.
Un, chargeur de démarrage
C'est un programme de tableau nu un peu plus compliqué. Mais il n'est pas facile de comprendre et d'écrire ce programme sans tableau. Les outils utiles sous Windows affaiblissent notre capacité de programmation.
Beaucoup de gens utilisent ADS et KEIL dès qu'ils jouent intégré. Peux-tu répondre a ces questions?
1. Une fois que l'alimentation est allumée, où le CPU extrait-il les instructions pour l'exécution?
Réponse: En général, les instructions proviennent de Flash.
2. Mais Flash ne peut être lu et pas directement écrit. Si j'utilise des variables globales, où sont ces variables globales?
Réponse: les variables globales doivent être en mémoire
3. Alors, qui met les variables globales en mémoire?
Réponse: Pouvez-vous répondre à un ami qui utilise ADS et KEIL depuis longtemps? Cela nécessite un «déménagement». Dans ADS ou KEIL, le code de relocalisation est écrit pour vous par l'entreprise qui fabrique ces outils. L'avez-vous déjà lu?
4. La mémoire est si grande, comment savoir à quelle adresse lire le "contenu initialement stocké en Flash" dans la mémoire?
Réponse: Cette adresse est déterminée par "link script", il existe des fichiers scatter dans ADS et des fichiers similaires dans KEIL. Mais, l'avez-vous étudié?
5. Vous avez dit que la relocalisation consiste à copier un programme de Flash vers la mémoire, de sorte que ce programme peut lire Flash? Réponse: Oui, vous devez pouvoir utiliser Flash. Bien sûr, non seulement ceux-ci, mais également le réglage de l'horloge pour accélérer le fonctionnement du système, etc. Demandons et répondons ici d'abord, le bootloader, un programme à carte nue, a en fait trois points principaux:
1. Fonctionnement du matériel
2. Compréhension des processeurs du système ARM
3. Les concepts de base du programme: relocalisation, pile, segment de code, segment de données, segment BSS et ainsi de suite.
Pour le fonctionnement du matériel, vous devez voir le diagramme schématique et le manuel de la puce. Cela nécessite une certaine connaissance du matériel. Cela ne vous oblige pas à concevoir du matériel, mais au moins à le comprendre; il ne nécessite pas de comprendre les circuits analogiques, mais de comprendre les circuits numériques. J'ai appris cette capacité à l'école. Les deux livres (le titre du livre que j'ai oublié) suffisent. Mais je doute que vous ayez la patience de terminer la lecture de ces deux livres. Je ne sais pas s'il existe un livre plus rapide maintenant. Si vous voulez accélérer les choses, laissez-le d'abord, et si vous ne comprenez pas, demandez simplement à Google et postez.
De plus, le manuel de la puce doit être lu, ne cherchez pas le chinois, regardez juste l'anglais. C'était très pénible au début, mais plus tard, une fois que la grammaire et le vocabulaire sont familiers, il est facile de lire n'importe quel manuel de puce.
Pour la compréhension des processeurs du système ARM, veuillez consulter Du Chunlei's. Il parle des instructions d'assemblage, des modes d'exception, de la MMU, etc. Seuls ces 3 éléments de contenu doivent être compris.
Le concept de base du programme, bien sûr, le roi est de se pencher sur les principes de compilation. Malheureusement, ce type de livre est certainement du niveau du livre céleste. Je vous conseille de ne pas le regarder sauf si vous êtes un super génie. Regardez juste le et la première vidéo que j'ai écrite, ne vous inquiétez pas, ne dépensez pas d'argent. À la suite de la vidéo et des expériences liées au matériel, ces concepts deviendront clairs. Je n'ai pas trouvé la deuxième série de livres ou de vidéos qui parlent de ces concepts, ce qui me permet de m'en vanter aveuglément. Pour le chargeur de démarrage, je l'ai d'abord regardé pendant mes études, puis j'ai écrit le programme moi-même et j'ai fait toutes les expériences sur divers matériels, tels que GPIO, horloge, SDRAM, UART et NAND. Si vous les expliquez clairement, il est facile de comprendre u-boot en les regroupant. Pour résumer, pour comprendre le schéma de principe du matériel et le manuel de la puce, vous devez trouver vous-même les informations. Pour le reste, il suffit de suivre la liste des chapitres du et la première phase de la vidéo pour apprendre.
Deux, le noyau
Ceux qui veulent commencer devraient d'abord ignorer l'apprentissage du noyau et apprendre à écrire directement des pilotes.
Pour devenir un maître, le noyau doit avoir une compréhension profonde. Notez que je parle de compréhension, je n'ai aucun espoir extravagant d'écrire un noyau.
Comprendre le mécanisme de planification, le mécanisme de gestion de la mémoire, le mécanisme de gestion des fichiers, etc. à l'intérieur.
Recommander deux livres:
1. Lisez, s'il vous plaît lire le livre mince (la société flottante met l'accent sur la vitesse)
2. Choisissez de lire, voulez savoir quelle section lire quelle section
Trois, conduis
Le pilote se compose de deux parties: le fonctionnement du matériel lui-même et le cadre du pilote.
C'est à nouveau le matériel. Il est encore nécessaire de comprendre le schéma de principe et le manuel de la puce. Pratiquez plus. En parlant du framework de pilote, il existe quelques livres pour le présenter. LDD3, le livre écrit par un étranger, présente de nombreux concepts et vaut la peine d'être lu. Cependant, son rôle se limite à introduire des concepts. Je l'ai essentiellement utilisé pour me familiariser avec les concepts avant de commencer, puis je l'ai jeté après avoir commencé.
L'introduction plus complète du pilote devrait être celle de Song Baohua. Pour être honnête, je n'ai lu que le catalogue. Beaucoup de gens ont dit oui, je le recommande ici.
Si vous voulez comprendre un certain domaine en profondeur, c'est certainement une super recommandation 5 étoiles. Vous ne vous attendez pas à le lire, plus de 1,800 2.4 pages, deux volumes de haut en bas. Quand je ne suis pas sûr d'un certain domaine, je vais le parcourir. Toute partie de ce livre peut couvrir deux ou trois cents pages, ce qui est très détaillé. Et pour vous emmener à analyser le code source du noyau avec un certain objectif. Il prend linux XNUMX comme exemple, mais le principe est le même, et il est également applicable à d'autres versions de linux. D'autres présentations? Bien sûr, il y a le deuxième numéro de Wei Dongshan Linux Video. Le "Manuel complet de développement d'applications Linux embarquées" ne parle pas beaucoup du pilote, et il n'est pas assez détaillé.
Essayez d'écrire un pilote pour tout le matériel impliqué dans votre carte de développement. Si vous avez un problème, vous devez d'abord «penser douloureusement». Dans le processus de réflexion, vous connecterez beaucoup de connaissances non pertinentes et vous les ferez enfin passer.
Quatrièmement, le système de fichiers racine
Avez-vous déjà réfléchi à ces deux questions:
1. Pour les produits fabriqués par Linux, certains sont utilisés pour la surveillance, certains sont utilisés comme téléphones mobiles et certains sont utilisés comme tablettes. Donc, après le démarrage du noyau, après le montage du système de fichiers racine, quelle application doit être lancée?
Réponse: Le noyau ne sait pas ou ne se soucie pas du programme utilisateur à démarrer. Il démarre uniquement l'application init, qui correspond à / sbin / init.
Bien entendu, cette application doit lire le fichier de configuration et démarrer le programme utilisateur (surveillance, interface manuelle, interface tablette, etc.) en fonction du fichier de configuration. Cette question nous rappelle que le contenu du système de fichiers a certaines conventions, comme / sbin / init, un fichier de configuration est nécessaire.
2. Avez-vous déjà pensé à qui a implémenté le printf utilisé dans les programmes hello et world que vous avez écrits?
Réponse: Cette fonction n'est pas implémentée par vous, mais par une fonction de bibliothèque. Lorsqu'il s'exécute, il doit trouver la bibliothèque.
Cette question nous rappelle qu'il existe encore des bibliothèques dans le système de fichiers. Voici une question et une réponse simples. Si vous voulez en savoir plus, vous pouvez consulter le fichier init.c de busybox pour savoir ce que fait le processus d'initialisation. Bien sûr, vous pouvez également consulter le chapitre sur la construction du système de fichiers racine dans le .
Mon expérience d'apprentissage
1. Quand j'étais à l'école, je me suis spécialisé en physique et en électronique. En fait, je n'ai pas enseigné la conception de circuits dans le cours, mais seulement quelques connaissances sur les circuits électroniques. La conception du PCB a été enseignée par moi-même en laboratoire. Je n'ai conçu qu'une planche à 2 couches, et maintenant je l'oublie presque. Mais il conserve la possibilité de lire le diagramme schématique et le manuel de la puce.
2. J'ai obtenu un diplôme en logiciel et je suis très intéressé par la conception de logiciels, mais je n'ai appris que le langage C et la base de données. J'ai fait beaucoup de questions sur le concours avec intérêt. Je ne peux pas participer au concours, mais j'ai une solide pratique du langage C.
3. Au laboratoire, dans la première entreprise, j'ai conçu des cartes PCI simples et écrit le pilote Windows
4. Dans la deuxième société, en utilisant 51 micro-ordinateurs à puce unique comme téléphone de voiture, a commencé à s'engager sur la voie du logiciel pur.
5. J'ai commencé à ressentir les lacunes du micro-ordinateur monopuce. J'ai démissionné pendant six mois pour apprendre Linux à huis clos, en commençant par comment faire fonctionner le chapeau rouge. L'étape consiste à l'examiner d'abord, puis à écrire le programme de carte nue pour faire fonctionner le matériel, puis à analyser le u-boot. En même temps, j'ai une certaine compréhension du framework LINUX.
Lorsque vous écrivez des tableaux nus, il est recommandé de renforcer votre compréhension des interruptions. Le noyau utilise des interruptions pour exécuter diverses fonctions.
6. Après avoir analysé u-boot, démarrez la programmation simple du pilote. À ce moment, la capacité est encore très faible.
7. A commencé à travailler chez ZTE, a travaillé pendant 2 ans, a écrit toutes sortes de pilotes, a résolu toutes sortes de problèmes (problèmes de conduite, aide à localiser les problèmes d'application), et la capacité a été tempérée.
|
Entrez l'email pour avoir une surprise
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> albanais
ar.fmuser.org -> arabe
hy.fmuser.org -> Armenian
az.fmuser.org -> azerbaïdjanais
eu.fmuser.org -> basque
be.fmuser.org -> biélorusse
bg.fmuser.org -> Bulgare
ca.fmuser.org -> catalan
zh-CN.fmuser.org -> chinois (simplifié)
zh-TW.fmuser.org -> Chinois (traditionnel)
hr.fmuser.org -> croate
cs.fmuser.org -> tchèque
da.fmuser.org -> danois
nl.fmuser.org -> Néerlandais
et.fmuser.org -> estonien
tl.fmuser.org -> Philippin
fi.fmuser.org -> finnois
fr.fmuser.org -> Français
gl.fmuser.org -> Galicien
ka.fmuser.org -> géorgien
de.fmuser.org -> allemand
el.fmuser.org -> Grec
ht.fmuser.org -> Créole haïtien
iw.fmuser.org -> hébreu
hi.fmuser.org -> Hindi
hu.fmuser.org -> Hongrois
is.fmuser.org -> islandais
id.fmuser.org -> indonésien
ga.fmuser.org -> irlandais
it.fmuser.org -> Italien
ja.fmuser.org -> japonais
ko.fmuser.org -> coréen
lv.fmuser.org -> letton
lt.fmuser.org -> Lituanien
mk.fmuser.org -> macédonien
ms.fmuser.org -> malais
mt.fmuser.org -> maltais
no.fmuser.org -> Norwegian
fa.fmuser.org -> persan
pl.fmuser.org -> polonais
pt.fmuser.org -> portugais
ro.fmuser.org -> Roumain
ru.fmuser.org -> russe
sr.fmuser.org -> serbe
sk.fmuser.org -> slovaque
sl.fmuser.org -> Slovène
es.fmuser.org -> espagnol
sw.fmuser.org -> Swahili
sv.fmuser.org -> suédois
th.fmuser.org -> Thai
tr.fmuser.org -> turc
uk.fmuser.org -> ukrainien
ur.fmuser.org -> ourdou
vi.fmuser.org -> Vietnamienne
cy.fmuser.org -> Gallois
yi.fmuser.org -> Yiddish
FMUSER Wirless transmet la vidéo et l'audio plus facilement!
Contactez-nous
Adresse :
No.305 Chambre HuiLan Building No.273 Huanpu Road Guangzhou Chine 510620
Catégories
Newsletter