FMUSER Wirless Transmit Video and Audio Máis fácil!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikaans
sq.fmuser.org -> Albanés
ar.fmuser.org -> árabe
hy.fmuser.org -> Armenian
az.fmuser.org -> azerí
eu.fmuser.org -> éuscaro
be.fmuser.org -> bielorruso
bg.fmuser.org -> Búlgaro
ca.fmuser.org -> catalán
zh-CN.fmuser.org -> chinés (simplificado)
zh-TW.fmuser.org -> Chinés (tradicional)
hr.fmuser.org -> croata
cs.fmuser.org -> Checo
da.fmuser.org -> danés
nl.fmuser.org -> Holandés
et.fmuser.org -> estoniano
tl.fmuser.org -> filipino
fi.fmuser.org -> finés
fr.fmuser.org -> Francés
gl.fmuser.org -> galego
ka.fmuser.org -> xeorxiano
de.fmuser.org -> alemán
el.fmuser.org -> Grego
ht.fmuser.org -> crioulo haitiano
iw.fmuser.org -> Hebreo
hi.fmuser.org -> hindi
hu.fmuser.org -> Hungarian
is.fmuser.org -> islandés
id.fmuser.org -> indonesio
ga.fmuser.org -> irlandés
it.fmuser.org -> Italiano
ja.fmuser.org -> xaponés
ko.fmuser.org -> coreano
lv.fmuser.org -> letón
lt.fmuser.org -> Lituano
mk.fmuser.org -> macedonio
ms.fmuser.org -> malaio
mt.fmuser.org -> maltés
no.fmuser.org -> Norwegian
fa.fmuser.org -> persa
pl.fmuser.org -> polaco
pt.fmuser.org -> Portugués
ro.fmuser.org -> Romanés
ru.fmuser.org -> ruso
sr.fmuser.org -> serbio
sk.fmuser.org -> Eslovaco
sl.fmuser.org -> Esloveno
es.fmuser.org -> castelán
sw.fmuser.org -> Suahili
sv.fmuser.org -> Sueco
th.fmuser.org -> Thai
tr.fmuser.org -> turco
uk.fmuser.org -> ucraíno
ur.fmuser.org -> urdú
vi.fmuser.org -> Vietnamita
cy.fmuser.org -> galés
yi.fmuser.org -> Yiddish
Para o desenvolvemento de aplicacións: hai que aprender ben a linguaxe C, a estrutura de datos, JAVA, etc. Non hai nada especial ao que prestar atención no desenvolvemento de aplicacións integradas e no desenvolvemento de aplicacións en PC. Quizais diga que precisa optimizar o sistema integrado, si, ten que optimizalo, pero o programa non optimizado non é diferente do desenvolvemento do programa na PC. Ademais, cando tes a capacidade de optimizar, xa non estás acostumado a facer esta pregunta. Para un exemplo específico, como a interface de desenvolvemento, usamos VC no PC; en Linux incrustado, podemos usar QT e Android. Neste momento, debes aprender a programar QT e Android. Pero a base segue sendo C ou JAVA e, sobre esta base, familiarizarse coas súas interfaces. Se aprendiches VC, leva tempo entender esas clases e controis.
Se queres aprender o sistema subxacente, esta é a miña especialidade, pero podo dicir un pouco.
Antes de responder a esta pregunta, déixeme responder: Moita xente pregúntame, é aprender a conducir ou aprender a aplicar? Só podo dicir que está baseado no interese e que os controladores e as aplicacións non están completamente separados.
1. Os controladores dos que falamos non se limitan ás operacións de hardware, senón tamén a conceptos como os principios do sistema operativo e a programación do proceso de suspensión e vixilia. Se queres escribir unha boa aplicación e queres resolver mellor os problemas atopados pola aplicación, debes comprender este coñecemento
2. Barreiras baixas á aplicación, especialmente o actual Android, JAVA puro. Persoalmente creo que o camiño para o desenvolvemento de aplicacións é competente nos negocios. Por exemplo, na industria das comunicacións, a industria de IPTV e a industria de telefonía móbil, comprende as necesidades da industria. Polo tanto, as persoas que son líderes son principalmente aplicacións.
3. Déixate levar. De feito, non o quero chamar "ser un controlador", pero quero chamalo "ser un sistema de baixo nivel". Unha vez feito isto, isto matará a todas as industrias. Traballei durante varios anos e fixen teléfonos móbiles, IPTV e televisión de conferencias, pero estes produtos non me importan porque só fago a capa inferior. O seu negocio non ten nada que ver comigo. Cando haxa un problema coa aplicación e non a poidan resolver, darémoslles unha idea desde a perspectiva do núcleo e fornecerémoslles ferramentas. Persoalmente creo que son un experto técnico na dirección de desenvolvemento da capa inferior.
4. De feito, non hai límite entre facer a capa inferior ou facer a aplicación. Se tes a experiencia de capa inferior, sentirás moi a gusto cando fas a aplicación. Coa experiencia empresarial, podes coñecer a capa inferior e en breve poderás formar un equipo.
Volvemos á pregunta de como aprender. Que se inclúe no sistema subxacente Linux integrado? Non te preocupes, xa o saberás poñendo un exemplo.
1. Cando o ordenador está acendido, quen mostra esas interfaces? É BIOS, que fai? Algunhas autocomprobacións, logo le as fiestras desde o disco duro e iníciao. Do mesmo xeito, esta BIOS corresponde ao cargador de arranque en Linux incrustado. Este cargador de arranque necesita ler o núcleo de Linux en Flash e inicialo.
2. Cal é o propósito de iniciar Windows? Por suposto, é un chat en liña ou algo así. Onde están estas ferramentas de Internet e chat? Na unidade C e na unidade D. Polo tanto, Windows debe primeiro identificar a unidade C e a unidade D. Chamámolo sistema de ficheiros raíz baixo Linux.
3. Windows pode recoñecer a unidade C e a unidade D, polo que debe ser capaz de ler e escribir o disco duro. As cousas implicadas chámanse condutores. Por suposto, non só é un disco duro, senón tamén unha tarxeta de rede, USB, etc. Linux incrustado pode ler e executar aplicacións desde Flash e tamén debe ter controladores Flash. Por suposto, non é só Flash.
Falemos diso primeiro, LINUX incrustado contén catro partes principais: cargador de arranque, núcleo, controlador e sistema de ficheiros raíz.
Un, o cargador de arranque
É un programa de placa descuberta un pouco máis complicado. Pero non é doado comprender e escribir este programa de tarxeta descuberta. As ferramentas útiles de Windows debilitan a nosa capacidade de programación.
Moita xente usa ADS e KEIL en canto xogan incrustados. Podes responder a estas preguntas?
1. Unha vez acendido, onde procura a CPU as instrucións para a execución?
Resposta: xeralmente, a instrución é de Flash.
2. Pero Flash só se pode ler e non escribir directamente. Se uso variables globais, onde están estas variables globais?
Resposta: as variables globais deben estar na memoria
3. Entón, quen pon en memoria as variables globais?
Resposta: podes responder a un amigo que usou ADS e KEIL durante moito tempo? Isto require "deslocalización". En ADS ou KEIL, a empresa que fabrica estas ferramentas escríbelle o código de deslocalización. Xa o liches?
4. A memoria é tan grande, como sei que enderezo lle vou á memoria o "contido almacenado orixinalmente en Flash"?
Resposta: este enderezo está determinado polo "script de ligazón", hai ficheiros dispersos en ADS e ficheiros similares en KEIL. Pero, estudáchelo?
5. Dixeches que a deslocalización consiste en copiar un programa de Flash na memoria, polo que este programa pode ler Flash? Resposta: Si, ten que ser capaz de operar Flash. Por suposto, non só estes, senón tamén axustar o reloxo para que o sistema funcione máis rápido, etc. Preguntemos e respondamos aquí primeiro, o cargador de arranque, un programa de placa descuberta, ten realmente tres puntos principais:
1. Funcionamento do hardware
2. Comprensión dos procesadores do sistema ARM
3. Os conceptos básicos do programa: deslocalización, pila, segmento de código, segmento de datos, segmento BSS, etc.
Para o funcionamento do hardware, cómpre ver o diagrama esquemático e o manual do chip. Isto require unha certa cantidade de coñecemento de hardware. Non require que sexas capaz de deseñar hardware, pero polo menos entendelo; non require ser capaz de comprender circuítos analóxicos, senón comprender circuítos dixitais. Aprendín esta habilidade na escola. Os dous libros (o título do libro que esquecín) son suficientes. Pero dubido que teñas paciencia para rematar de ler estes dous libros. Non sei se hai un libro máis rápido agora. Se queres facelo rápido, deixa isto primeiro e, se non o entendes, só tes que preguntar a Google e publicar.
Ademais, hai que ler o manual do chip, non busque chinés, basta con mirar o inglés. Ao principio foi moi doloroso, pero despois, unha vez que a gramática e o vocabulario son familiares, é fácil ler calquera manual de chip.
Para a comprensión dos procesadores de sistemas ARM, consulte Du Chunlei. Fala de instrucións de montaxe, modos de excepción, MMU, etc. Só estes 3 elementos de contido precisan que o entendan.
O concepto básico do programa, por suposto, o rei é mirar os principios da compilación. Por desgraza, este tipo de libros é definitivamente do nivel celestial. Aconsélloche que non o vexas a menos que sexas un super xenio. Só tes que ver o e o primeiro vídeo que escribín, non te preocupes, non gastes cartos. Despois do vídeo e realizando experimentos relacionados co hardware, estes conceptos quedarán claros. Non atopei o segundo conxunto de libros ou vídeos que falen destes conceptos, o que me permite presumir a cegas diso. Para o cargador de arranque, primeiro o vin cando estudaba e logo escribín eu mesmo o programa e fixen todos os experimentos en hardware, como GPIO, reloxo, SDRAM, UART e NAND. Se as deixas claras, é doado comprender u-boot agrupándoo. En resumo, para comprender o esquema do hardware e o manual do chip, cómpre atopar a información vostede mesmo. Para o resto, só tes que seguir a lista de capítulos do e a primeira fase do vídeo para aprender.
Dous, o núcleo
Aqueles que queiran comezar deberían saltarse primeiro a aprendizaxe do núcleo e aprender a escribir controladores directamente.
Para converterse nun mestre, o núcleo debe ter unha profunda comprensión. Teña en conta que falo de comprensión, non teño ningunha esperanza extravagante de escribir un núcleo.
Para comprender o mecanismo de programación, o mecanismo de xestión de memoria, o mecanismo de xestión de ficheiros, etc.
Recomenda dous libros:
1. Continúe lendo, lea o delgado libro (a sociedade flotante fai fincapé na velocidade)
2. Escolla ler, quere saber que sección ler que sección
Tres, conduce
O controlador consta de dúas partes: o funcionamento do propio hardware e o marco do controlador.
É o hardware de novo. Aínda é necesario comprender o diagrama esquemático e o manual do chip. Practica máis. Falando do marco de controladores, hai algúns libros para introducilo. LDD3, o libro escrito por un estranxeiro, introduce moitos conceptos e paga a pena lelo. Non obstante, o seu papel limítase a introducir conceptos. Usouno basicamente para familiarizarme cos conceptos antes de comezar e despois botalo despois de comezar.
A introdución máis completa ao condutor debería ser a de Song Baohua. Para ser honesto, só lin o catálogo. Moita xente dixo que si, recoméndoo aquí.
Se queres entender unha determinada área en profundidade, definitivamente é unha recomendación súper de 5 estrelas. Non espera lelo, máis de 1,800 páxinas, dous volumes arriba e abaixo. Cando non estea seguro sobre unha determinada área, vou mirar por ela. Calquera parte deste libro pode cubrir dúas ou trescentas páxinas, o que é moi detallado. E levalo a analizar o código fonte do núcleo cun obxectivo determinado. Toma linux 2.4 como exemplo, pero o principio é o mesmo e tamén é aplicable a outras versións de linux. Algunha outra introdución? Por suposto que hai, o segundo número de Wei Dongshan Linux Video. O "Manual completo de desenvolvemento de aplicacións integradas de Linux" non fala moito do controlador e non é o suficientemente profundo.
Tente escribir un controlador para todo o hardware implicado na súa placa de desenvolvemento. Se tes algún problema, primeiro debes "pensar dolorosamente". No proceso de pensar, conectarás moitos coñecementos irrelevantes e finalmente conseguirás.
En cuarto lugar, o sistema de ficheiros raíz
Algunha vez pensaches nestas dúas preguntas:
1. Para os produtos fabricados por Linux, algúns utilízanse para a monitorización, outros utilízanse como teléfonos móbiles e outros utilízanse como tabletas. Entón, despois de iniciar o kernel, despois de montar o sistema de ficheiros raíz, que aplicación debería comezar?
Resposta: O núcleo non sabe ou non lle importa que programa de usuario se inicie. Só inicia a aplicación init, que corresponde a / sbin / init.
Obviamente, esta aplicación debe ler o ficheiro de configuración e iniciar o programa de usuario (supervisión, interface manual, interface de tableta, etc.) segundo o ficheiro de configuración. Esta pregunta lémbranos que o contido do sistema de ficheiros ten algunhas convencións, como / sbin / init, é necesario un ficheiro de configuración.
2. Algunha vez pensaches en quen implementou o printf usado nos programas hola e world que escribiches?
Resposta: Esta función non a implementas ti, senón unha función de biblioteca. Cando se executa, ten que atopar a biblioteca.
Esta pregunta lémbranos que aínda hai bibliotecas no sistema de ficheiros. Aquí tes unha simple pregunta e resposta. Se queres saber máis, podes consultar o init.c de busybox para saber que fai o proceso de inicio. Por suposto, tamén podes ver o capítulo sobre a construción do sistema de ficheiros raíz no .
A miña experiencia de aprendizaxe
1. Cando estaba na escola, formábame física e electrónica. De feito, non ensinei a deseñar circuítos no curso, senón que ensinei algúns coñecementos sobre circuítos electrónicos. O deseño do PCB fun eu ensinado no laboratorio. Só deseñei un taboleiro de dúas capas e agora case o esquezo. Pero mantén a capacidade de ler o diagrama esquemático e o manual do chip.
2. Licenciei en software e estou moi interesado no deseño de software, pero só aprendín linguaxe C e base de datos. Fixen moitas preguntas de competición con interese. Non podo participar na competición, pero teño unha sólida práctica lingüística C.
3. No laboratorio, na primeira empresa, deseñei unhas tarxetas PCI sinxelas e escribín o controlador de Windows
4. Na segunda compañía, empregando 51 microcomputadoras dun só chip como teléfono de coche, comezou a emprender o camiño do software puro.
5. Comecei a sentir as deficiencias do microordenador dun só chip. Dimitei durante medio ano para aprender Linux a porta pechada, comezando por como operar o sombreiro vermello. O paso consiste en miralo primeiro, logo escribir o programa de placa descuberta para operar o hardware e despois analizar o arranque en u. Ao mesmo tempo, teño unha certa comprensión do marco LINUX.
Ao escribir táboas espidas, recoméndase reforzar a comprensión das interrupcións. O núcleo usa interrupcións para completar varias funcións.
6. Despois de analizar u-boot, inicie a programación do controlador sinxela. Neste momento, a capacidade aínda é moi débil.
7. Comecei a traballar en ZTE, traballei durante 2 anos, escribín todo tipo de controladores, resolvín todo tipo de problemas (problemas de condución, axuda a localizar problemas de aplicación) e a capacidade moderouse.
|
Introduce o correo electrónico para obter unha sorpresa
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikaans
sq.fmuser.org -> Albanés
ar.fmuser.org -> árabe
hy.fmuser.org -> Armenian
az.fmuser.org -> azerí
eu.fmuser.org -> éuscaro
be.fmuser.org -> bielorruso
bg.fmuser.org -> Búlgaro
ca.fmuser.org -> catalán
zh-CN.fmuser.org -> chinés (simplificado)
zh-TW.fmuser.org -> Chinés (tradicional)
hr.fmuser.org -> croata
cs.fmuser.org -> Checo
da.fmuser.org -> danés
nl.fmuser.org -> Holandés
et.fmuser.org -> estoniano
tl.fmuser.org -> filipino
fi.fmuser.org -> finés
fr.fmuser.org -> Francés
gl.fmuser.org -> galego
ka.fmuser.org -> xeorxiano
de.fmuser.org -> alemán
el.fmuser.org -> Grego
ht.fmuser.org -> crioulo haitiano
iw.fmuser.org -> Hebreo
hi.fmuser.org -> hindi
hu.fmuser.org -> Hungarian
is.fmuser.org -> islandés
id.fmuser.org -> indonesio
ga.fmuser.org -> irlandés
it.fmuser.org -> Italiano
ja.fmuser.org -> xaponés
ko.fmuser.org -> coreano
lv.fmuser.org -> letón
lt.fmuser.org -> Lituano
mk.fmuser.org -> macedonio
ms.fmuser.org -> malaio
mt.fmuser.org -> maltés
no.fmuser.org -> Norwegian
fa.fmuser.org -> persa
pl.fmuser.org -> polaco
pt.fmuser.org -> Portugués
ro.fmuser.org -> Romanés
ru.fmuser.org -> ruso
sr.fmuser.org -> serbio
sk.fmuser.org -> Eslovaco
sl.fmuser.org -> Esloveno
es.fmuser.org -> castelán
sw.fmuser.org -> Suahili
sv.fmuser.org -> Sueco
th.fmuser.org -> Thai
tr.fmuser.org -> turco
uk.fmuser.org -> ucraíno
ur.fmuser.org -> urdú
vi.fmuser.org -> Vietnamita
cy.fmuser.org -> galés
yi.fmuser.org -> Yiddish
FMUSER Wirless Transmit Video and Audio Máis fácil!
contacto
dirección:
No.305 Sala HuiLan Building No.273 Huanpu Road Guangzhou China 510620
categorías
boletín informativo