FMUSER ¡Transmite video y audio sin cables más fácilmente!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikáans
sq.fmuser.org -> albanés
ar.fmuser.org -> árabe
hy.fmuser.org -> Armenio
az.fmuser.org -> azerbaiyano
eu.fmuser.org -> Vasco
be.fmuser.org -> bielorruso
bg.fmuser.org -> Bulgaria
ca.fmuser.org -> catalán
zh-CN.fmuser.org -> chino (simplificado)
zh-TW.fmuser.org -> Chino (tradicional)
hr.fmuser.org -> croata
cs.fmuser.org -> checo
da.fmuser.org -> danés
nl.fmuser.org -> Holandés
et.fmuser.org -> estonio
tl.fmuser.org -> filipino
fi.fmuser.org -> finlandés
fr.fmuser.org -> Francés
gl.fmuser.org -> gallego
ka.fmuser.org -> georgiano
de.fmuser.org -> alemán
el.fmuser.org -> Griego
ht.fmuser.org -> criollo 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 -> japonés
ko.fmuser.org -> coreano
lv.fmuser.org -> letón
lt.fmuser.org -> Lituania
mk.fmuser.org -> macedonio
ms.fmuser.org -> malayo
mt.fmuser.org -> maltés
no.fmuser.org -> Noruega
fa.fmuser.org -> persa
pl.fmuser.org -> polaco
pt.fmuser.org -> portugués
ro.fmuser.org -> Rumano
ru.fmuser.org -> ruso
sr.fmuser.org -> serbio
sk.fmuser.org -> eslovaco
sl.fmuser.org -> Eslovenia
es.fmuser.org -> español
sw.fmuser.org -> Swahili
sv.fmuser.org -> sueco
th.fmuser.org -> Tailandés
tr.fmuser.org -> turco
uk.fmuser.org -> ucraniano
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamita
cy.fmuser.org -> galés
yi.fmuser.org -> Yiddish
Para el desarrollo de aplicaciones: es necesario aprender bien el lenguaje C, la estructura de datos, JAVA, etc. No hay nada especial a lo que prestar atención en el desarrollo de aplicaciones integradas y el desarrollo de aplicaciones en PC. Tal vez diga que necesita optimizar el sistema integrado, sí, necesita optimizar, pero el programa no optimizado no es diferente del desarrollo del programa en la PC. Además, cuando tiene la capacidad de optimizar, ya no está acostumbrado a hacer esta pregunta. Para un ejemplo específico, como la interfaz de desarrollo, usamos VC en la PC; en Linux embebido, podemos usar QT y Android. En este momento, debe aprender a programar QT y Android. Pero la base sigue siendo C o JAVA, y sobre esta base, familiarícese con sus interfaces. Si ha aprendido VC, se necesita tiempo para comprender esas clases y controles.
Si desea aprender el sistema subyacente, esta es mi especialidad, pero puedo decir un poco.
Antes de responder a esta pregunta, permítame responder: Mucha gente me pregunta, ¿es para aprender a conducir o para aprender a aplicar? Solo puedo decir que se basa en el interés y que los controladores y las aplicaciones no están completamente separados.
1. Los controladores de los que estamos hablando no se limitan a las operaciones de hardware, sino también a conceptos como los principios del sistema operativo y la programación de la suspensión y activación del proceso. Si desea escribir una buena aplicación y desea resolver mejor los problemas encontrados por la aplicación, debe comprender este conocimiento.
2. Bajas barreras de aplicación, especialmente el ANDROID actual, puro JAVA. Personalmente, creo que la ruta de desarrollo de aplicaciones es competente en los negocios. Por ejemplo, en la industria de las comunicaciones, la industria de la IPTV y la industria de la telefonía móvil, usted comprende las necesidades de la industria. Por lo tanto, las personas que son líderes son en su mayoría aplicaciones.
3. Déjese llevar. De hecho, no quiero llamarlo "ser un conductor", pero quiero llamarlo "ser un sistema de bajo nivel". Una vez hecho esto, acabará con todas las industrias. He trabajado durante varios años y he fabricado teléfonos móviles, IPTV y conferencias de televisión, pero estos productos no me hacen ninguna diferencia porque solo hago la capa inferior. Su negocio no tiene nada que ver conmigo. Cuando haya un problema con la aplicación y no puedan resolverlo, les daré una idea desde la perspectiva del kernel y les proporcionaré herramientas. Personalmente, creo que soy un experto técnico en la dirección de desarrollo de la capa inferior.
4. De hecho, no hay límite entre hacer la capa inferior o hacer la aplicación. Si tiene la experiencia de la capa inferior, se sentirá muy a gusto cuando realice la aplicación. Con experiencia empresarial, puede llegar a conocer la capa inferior y pronto podrá formar un equipo.
Volviendo a la cuestión de cómo aprender. ¿Qué se incluye en el sistema subyacente de Linux integrado? No se preocupe, lo sabrá dando un ejemplo.
1. Cuando la computadora está encendida, ¿quién muestra esas interfaces? Es BIOS, ¿qué hace? Algunas autocomprobaciones, luego leen ventanas desde el disco duro e inician. De manera similar, este BIOS corresponde al cargador de arranque en Linux embebido. Este gestor de arranque necesita leer el kernel de Linux en Flash e iniciarlo.
2. ¿Cuál es el propósito de iniciar Windows? Por supuesto, es un chat en línea o algo así. ¿Dónde están estas herramientas de chat e Internet? En la unidad C y la unidad D. Por lo tanto, Windows debe identificar primero la unidad C y la unidad D. Lo llamamos el sistema de archivos raíz en Linux.
3. Windows puede reconocer la unidad C y la unidad D, por lo que debe poder leer y escribir en el disco duro. Las cosas involucradas se llaman controladores. Por supuesto, no es solo un disco duro, sino también una tarjeta de red, USB, etc. Linux embebido puede leer y ejecutar aplicaciones desde Flash, y también debe tener controladores Flash. Por supuesto, no es solo Flash.
Hablemos de ello primero, LINUX integrado contiene cuatro partes principales: cargador de arranque, kernel, controlador y sistema de archivos raíz.
Uno, cargador de arranque
Es un programa de tablero desnudo un poco más complicado. Pero no es fácil de entender y escribir este programa básico. Las herramientas útiles de Windows debilitan nuestra capacidad de programación.
Mucha gente usa ADS y KEIL tan pronto como juegan incrustados. ¿Puedes responder estas preguntas?
1. Una vez que se enciende, ¿dónde obtiene la CPU las instrucciones para su ejecución?
Respuesta: Generalmente, la instrucción es de Flash.
2. Pero Flash solo se puede leer y no escribir directamente. Si utilizo variables globales, ¿dónde están estas variables globales?
Respuesta: las variables globales deben estar en la memoria
3. Entonces, ¿quién guarda las variables globales en la memoria?
Respuesta: ¿Puedes responder a un amigo que ha usado ADS y KEIL durante mucho tiempo? Esto requiere "reubicación". En ADS o KEIL, el código de reubicación lo escribe la empresa que fabrica estas herramientas. ¿Lo has leído alguna vez?
4. La memoria es tan grande, ¿cómo puedo saber qué dirección leer el "contenido originalmente almacenado en Flash" en la memoria?
Respuesta: Esta dirección está determinada por un "script de enlace", hay archivos dispersos en ADS y archivos similares en KEIL. Pero, ¿lo has estudiado?
5. ¿Dijiste que la reubicación es copiar un programa de Flash a la memoria, para que este programa pueda leer Flash? Respuesta: Sí, necesita poder operar Flash. Por supuesto, no solo estos, sino también configurar el reloj para hacer que el sistema funcione más rápido y así sucesivamente. Primero preguntemos y respondamos aquí, el gestor de arranque, un programa de placa base, en realidad tiene tres puntos principales:
1. Funcionamiento del hardware
2. Comprensión de los procesadores del sistema ARM
3. Los conceptos básicos del programa: reubicación, pila, segmento de código, segmento de datos, segmento BSS, etc.
Para el funcionamiento del hardware, debe ver el diagrama esquemático y el manual del chip. Esto requiere una cierta cantidad de conocimientos de hardware. No requiere que seas capaz de diseñar hardware, pero al menos que lo entiendas; no requiere ser capaz de comprender circuitos analógicos, sino comprender circuitos digitales. Aprendí esta habilidad en la escuela. Los dos libros (el título del libro que olvidé) son suficientes. Pero dudo que tengas la paciencia para terminar de leer estos dos libros. No sé si ahora hay un libro más rápido. Si quieres hacerlo rápido, deja de lado esto primero y, si no lo entiendes, pregúntale a Google y publícalo.
Además, se debe leer el manual del chip, no busque chino, solo mire inglés. Al principio fue muy doloroso, pero luego, una vez que la gramática y el vocabulario se familiarizan, es fácil leer cualquier manual de chips.
Para comprender los procesadores del sistema ARM, consulte Du Chunlei's. Habla de instrucciones de ensamblaje, modos de excepción, MMU, etc. Solo estas 3 piezas de contenido necesitan que las comprenda.
El concepto básico del programa, por supuesto, el rey es mirar los principios de compilación. Desafortunadamente, este tipo de libro es definitivamente del nivel de libros celestiales. Te aconsejo que no lo veas a menos que seas un super genio. Solo mira el y el primer video que escribí, no se preocupe, no gaste dinero. Siguiendo el video y haciendo experimentos relacionados con el hardware, estos conceptos quedarán claros. No he encontrado el segundo conjunto de libros o videos que hablen sobre estos conceptos, lo que me permite presumir de ello a ciegas. Para el gestor de arranque, lo vi por primera vez cuando estaba estudiando, y luego escribí el programa yo mismo e hice todos los experimentos en varios hardware, como GPIO, reloj, SDRAM, UART y NAND. Si los deja en claro, es fácil de entender u-boot al agruparlos. En resumen, para comprender el diagrama esquemático del hardware y el manual del chip, debe encontrar la información usted mismo. Para el resto, siga la lista de capítulos del y la primera fase del video para aprender.
Dos, el kernel
Aquellos que quieran comenzar deben omitir el aprendizaje del kernel primero y aprender a escribir controladores directamente.
Para convertirse en un maestro, el núcleo debe tener un conocimiento profundo. Tenga en cuenta que estoy hablando de comprensión, no tengo esperanzas extravagantes de escribir un núcleo.
Comprender el mecanismo de programación, el mecanismo de administración de memoria, el mecanismo de administración de archivos, etc.
Recomendar dos libros:
1. Lea, lea el libro delgado (la sociedad flotante enfatiza la velocidad)
2. Elija leer, desea saber qué sección leer qué sección
Tres, maneja
El controlador consta de dos partes: el funcionamiento del hardware en sí y el marco del controlador.
Es el hardware de nuevo. Todavía es necesario comprender el diagrama esquemático y el manual del chip. Practica más. Hablando del marco del controlador, hay algunos libros para presentarlo. LDD3, el libro escrito por un extranjero, introduce muchos conceptos y vale la pena leerlo. Sin embargo, su papel se limita a introducir conceptos. Básicamente lo usé para familiarizarme con los conceptos antes de comenzar, y luego lo deseché después de comenzar.
La introducción más completa al conductor debería ser la de Song Baohua. Para ser honesto, solo leo el catálogo. Mucha gente dijo que sí, lo recomiendo aquí.
Si desea comprender un área determinada en profundidad, definitivamente es una recomendación de súper 5 estrellas. No esperas leerlo, más de 1,800 páginas, dos volúmenes arriba y abajo. Cuando no esté seguro de un área determinada, miraré a través de ella. Cualquier parte de este libro puede cubrir doscientas o trescientas páginas, lo cual es muy detallado. Y llevarte a analizar el código fuente del kernel con un objetivo determinado. Toma linux 2.4 como ejemplo, pero el principio es el mismo, y también es aplicable a otras versiones de linux. ¿Alguna otra presentación? Por supuesto que existe el segundo número de Wei Dongshan Linux Video. El "Manual completo de desarrollo de aplicaciones Linux integradas" no habla mucho sobre el controlador y no es lo suficientemente detallado.
Intente escribir un controlador para todo el hardware involucrado en su placa de desarrollo. Si tiene un problema, primero debe "pensar con dolor". En el proceso de pensar, conectarás muchos conocimientos irrelevantes y finalmente los conseguirás.
Cuarto, el sistema de archivos raíz
¿Alguna vez ha pensado en estas dos preguntas?
1. Para los productos fabricados por Linux, algunos se usan para monitoreo, algunos se usan como teléfonos móviles y algunos se usan como tabletas. Entonces, después de que se inicia el kernel, después de montar el sistema de archivos raíz, ¿qué aplicación se debe iniciar?
Respuesta: El kernel no sabe o no le importa qué programa de usuario debe iniciarse. Solo inicia la aplicación init, que corresponde a / sbin / init.
Obviamente, esta aplicación debe leer el archivo de configuración e iniciar el programa de usuario (monitorización, interfaz manual, interfaz de tableta, etc.) de acuerdo con el archivo de configuración. Esta pregunta nos recuerda que el contenido del sistema de archivos tiene algunas convenciones, como / sbin / init, se requiere un archivo de configuración.
2. ¿Alguna vez ha pensado en quién implementó el printf utilizado en los programas hello and world que escribió?
Respuesta: Esta función no la implementa usted, sino una función de biblioteca. Cuando se ejecuta, tiene que encontrar la biblioteca.
Esta pregunta nos recuerda que todavía hay bibliotecas en el sistema de archivos. Aquí hay una pregunta y una respuesta sencillas. Si quieres saber más, puedes mirar el init.c de busybox para saber qué hace el proceso de inicio. Por supuesto, también puede ver el capítulo sobre la construcción del sistema de archivos raíz en la .
Mi experiencia de aprendizaje
1. Cuando estaba en la escuela, me especialicé en física y electrónica. De hecho, no enseñé cómo diseñar circuitos en el curso, solo enseñé algunos conocimientos sobre circuitos electrónicos. El diseño de PCB lo enseñé yo mismo en el laboratorio. Solo diseñé un tablero de 2 capas, y ahora casi lo olvido. Pero conserva la capacidad de leer el diagrama esquemático y el manual del chip.
2. Me licencié en software y estoy muy interesado en el diseño de software, pero solo aprendí el lenguaje C y la base de datos. Hice muchas preguntas de competencia con interés. No puedo participar en la competencia, pero tengo una sólida práctica de lenguaje C.
3. En el laboratorio, en la primera empresa, diseñé algunas tarjetas PCI simples y escribí el controlador de Windows.
4. En la segunda empresa, utilizando 51 microcomputadoras de un solo chip como teléfono de automóvil, comenzó a embarcarse en el camino del software puro.
5. Empecé a sentir las deficiencias del microordenador de un solo chip. Renuncié por medio año para aprender Linux a puerta cerrada, comenzando con cómo operar el sombrero rojo. El paso es mirarlo primero, luego escribir el programa de placa para operar el hardware y luego analizar el u-boot. Al mismo tiempo, tengo cierto conocimiento del marco LINUX.
Al escribir tableros desnudos, se recomienda que refuerce su comprensión de las interrupciones. El kernel usa interrupciones para completar varias funciones.
6. Después de analizar u-boot, inicie la programación simple del controlador. En este momento, la habilidad aún es muy débil.
7. Empecé a trabajar en ZTE, trabajé durante 2 años, escribí todo tipo de conductores, resolví todo tipo de problemas (problemas de conducción, ayudando a localizar problemas de aplicación), y se atemperó la capacidad.
|
Ingrese el correo electrónico para recibir una sorpresa
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikáans
sq.fmuser.org -> albanés
ar.fmuser.org -> árabe
hy.fmuser.org -> Armenio
az.fmuser.org -> azerbaiyano
eu.fmuser.org -> Vasco
be.fmuser.org -> bielorruso
bg.fmuser.org -> Bulgaria
ca.fmuser.org -> catalán
zh-CN.fmuser.org -> chino (simplificado)
zh-TW.fmuser.org -> Chino (tradicional)
hr.fmuser.org -> croata
cs.fmuser.org -> checo
da.fmuser.org -> danés
nl.fmuser.org -> Holandés
et.fmuser.org -> estonio
tl.fmuser.org -> filipino
fi.fmuser.org -> finlandés
fr.fmuser.org -> Francés
gl.fmuser.org -> gallego
ka.fmuser.org -> georgiano
de.fmuser.org -> alemán
el.fmuser.org -> Griego
ht.fmuser.org -> criollo 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 -> japonés
ko.fmuser.org -> coreano
lv.fmuser.org -> letón
lt.fmuser.org -> Lituania
mk.fmuser.org -> macedonio
ms.fmuser.org -> malayo
mt.fmuser.org -> maltés
no.fmuser.org -> Noruega
fa.fmuser.org -> persa
pl.fmuser.org -> polaco
pt.fmuser.org -> portugués
ro.fmuser.org -> Rumano
ru.fmuser.org -> ruso
sr.fmuser.org -> serbio
sk.fmuser.org -> eslovaco
sl.fmuser.org -> Eslovenia
es.fmuser.org -> español
sw.fmuser.org -> Swahili
sv.fmuser.org -> sueco
th.fmuser.org -> Tailandés
tr.fmuser.org -> turco
uk.fmuser.org -> ucraniano
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamita
cy.fmuser.org -> galés
yi.fmuser.org -> Yiddish
FMUSER ¡Transmite video y audio sin cables más fácilmente!
Contacto
Dirección:
Habitación No.305 Edificio HuiLan No.273 Huanpu Road Guangzhou China 510620
Categorías
Newsletter