Cómo aprender los cursos básicos de Linux embebido

Plan de aprendizaje del sistema operativo Linux integrado

Ruta ARM+LINUX, centrándose en los objetivos de desarrollo del sistema operativo Linux integrado y su software de aplicación:

(1) Dominar la estructura y los principios de los microprocesadores integrados convencionales (preliminarmente designados como arm9)

(2) Debe dominar un sistema operativo integrado (preliminarmente designado como uclinux o linux, versión por determinar)

(3) Debe estar familiarizado con el proceso de desarrollo de software integrado y trabajar en al menos un proyecto de software integrado.

Los beneficios de participar en el desarrollo de software integrado son:

(1) En la actualidad, la gente en este campo es escasa en el país y en el extranjero. La barrera de entrada a este campo es alta, por lo que es difícil para el personal de TI no profesional ingresar a este campo. Por otro lado, debido a que este campo es relativamente nuevo y actualmente se está desarrollando demasiado rápido, la mayoría de la gente tiene acceso incondicional a él.

(2) A diferencia del software de aplicación, como la informática empresarial, la intensidad del trabajo de los talentos en el campo integrado suele ser menor (pero los ingresos no son bajos).

(3) Si algún día desea iniciar un negocio y desarrollar sus propios productos, el software integrado no es tan fácil de piratear como el software de aplicación. El diseño de hardware generalmente lo realizan otras empresas (esto se denomina "OEM"). Todos son hardware de uso general. Nosotros solo diseñamos el software y se convierte en nuestro propio producto.

(4) Interés, esto es lo más importante.

Las desventajas de participar en el desarrollo de software integrado son:

(1) El punto de partida para la entrada es relativamente alto y las tecnologías utilizadas suelen ser difíciles si la base del software y el hardware. No es bueno, especialmente si no tiene un conocimiento profundo del software a nivel de sistema operativo, es posible que no sea adecuado para esta carrera.

(2) El número de empresas en esta área es mucho menor que el de empresas de informática empresarial.

(3) Algunas empresas a menudo requieren que personas con una maestría o superior realicen trabajos integrados, principalmente debido a la dificultad del trabajo integrado. Pero la mayoría de las empresas no exigen esto, siempre y cuando tengas experiencia.

(4) La plataforma es sólida y es difícil cambiar de plataforma.

Origen de interés:

1. Tengo un concepto diferente del éxito. No desperdiciar mi vida es mi éxito.

2. Le gusta pensar y desafiar el pensamiento lógico.

3. Como C

C es un lenguaje que puede ampliar los límites del pensamiento. Algunos aspectos del espíritu de C se pueden resumir en frases cortas como las siguientes:

Confiar en los programadores.

No impidas que los programadores hagan lo que hay que hacer.

Mantén un lenguaje breve y directo.

Un método realiza una operación.

Haciéndolo lo suficientemente rápido, aunque no se garantiza que sea portátil.

4. Me gusta el desarrollo de bajo nivel y odio las herramientas de desarrollo de vb (no es que vb sea malo).

5. Las perspectivas de desarrollo son buenas y adecuadas para iniciar un negocio. No quiero ser ingeniero cuando muera.

Pasos del método:

1. Conocimientos básicos:

Propósito: comprender el principio de funcionamiento del hardware, pero la atención se centra en el software integrado, especialmente el funcionamiento. Software a nivel de sistema, ese sería mi punto fuerte.

Temas: Circuitos digitales, principios de composición de ordenadores y estructura de microprocesadores integrados.

Lenguaje ensamblador, C/C++, principios de compilación, matemáticas discretas.

Estructuras de datos y algoritmos, sistemas operativos, ingeniería de software, redes, bases de datos.

Método: Aunque hay muchos temas, todos son conceptos básicos relativamente simples y la mayoría de ellos se han dominado. No es necesario cursar todos los cursos, pero puedes cursar optativas según tus necesidades.

Me centré principalmente en libros: el lenguaje de programación C++ (nunca he tenido tiempo de leerlo), estructura de datos-C2.

2. Aprender Linux:

Objetivo: Dominar en profundidad el sistema Linux.

Método: Utilice Linux—>desarrollo de programación del sistema Linxu—>desarrollo de controladores y análisis del kernel de Linux. Primero echemos un vistazo en profundidad y luego hablaremos de los principios. Después de leerlo varias veces, analiza la situación y compárala profundamente. Los dos libros están entrelazados. La profundidad es el esquema y la emoción es el propósito. El análisis es la versión 0.11, que es adecuada para el aprendizaje. Finalmente sumérgete en el código.

Centrado principalmente en libros: análisis completo del kernel de Linux, programación avanzada en el entorno Unix, comprensión profunda del kernel de Linux, análisis de escenarios y generación de fuentes.

3. Aprendizaje de Linux embebido:

Propósito: Dominar el procesador embebido y su sistema.

Métodos: (1) Estructura y aplicación del microprocesador integrado: simplemente siga el principio del brazo y el ensamblaje directamente, no repita x86.

(2) Categoría de sistema operativo integrado: ucOS/II es simple, de código abierto y adecuado para la entrada. Luego profundice en uClinux.

(3) Debes tener una placa de desarrollo (arm9 o superior) y puedes participar en el entrenamiento si tienes las condiciones (progresarás rápidamente y harás algunos amigos).

Libros principales: "Embedded Systems" de Mao Decao y otros manuales de arm9 e instrucciones de montaje del brazo.

4. Estudio en profundidad:

A. Tecnología de compresión de imágenes digitales: principalmente, debe dominar MPEG, mp3 y otros algoritmos y tecnologías de codificación y decodificación.

B. Protocolos de comunicación y tecnologías de programación: protocolo TCP/IP, 802.11, Bluetooth, GPRS, GSM, CDMA, etc.

2010-8-21 16:46 Responder

122.90.173.* 2do piso

C. Tecnología de seguridad de la información y las redes: como tecnología de cifrado, Certificado digital CA, etc.

D. Tecnología DSP: Proceso de Señal Digital El procesador DSP implementa algoritmos de procesamiento de señal digital a través de hardware.

Nota: Demasiados detalles no se explican y pueden ajustarse según la situación real. La atención se centra en 1 y 3, no es necesario hacerlos en el orden exacto. Para aprender C++, la razón es que C++ no es solo un lenguaje y una herramienta, también es un arte, una cultura y un concepto filosófico, pero no es algo para presumir. Para el kernel de Linux, también es necesario aprender a programar y leer algunos códigos excelentes.

Nota: Debes aprender a aplicar un ejemplo para inferir muchas cosas y tener una base sólida. Muchas cosas se pueden entender simplemente mirándolas. Para convertirse en un programador calificado, debe dominar al menos un lenguaje de programación y tener un buen pensamiento lógico. La teoría debe combinarse con la práctica.

No te centres sólo en la tecnología. Aunque es difícil sacar tiempo, debes dejar algo de espacio para perfeccionar otras aficiones, como el espacio, el dibujo, la maquinaria, la gestión, la psicología, los juegos y. Película de ciencia ficción. ¡Todavía hay algunas cosas que no quieres hacer pero que debes hacer!

La tecnología se programa a través de la programación. Nunca sueñes con alcanzar el cielo de un solo paso, nunca seas una persona impetuosa y nunca sientas que el camino es largo. ¡Se trata de programar, programar, programar, programar de nuevo, programar de nuevo! Espere la oportunidad de iniciar un negocio (no crea en los milagros, es difícil lograr iniciar un negocio a ciegas, e incluso si tiene éxito, puede que no haya mucho espacio para el desarrollo).

Libros integrados recomendados

Conceptos básicos de Linux

1. "Guía de programación de Shell para Linux y Unix"

Conceptos básicos del lenguaje C

1. "C Primer Plus, 5.ª edición" de Stephen Prata

2. "El lenguaje de programación C, 2.ª edición" de Brian W. Kernighan David M. Rithie (K & R) Autor

3. “Programación Avanzada en el Entorno UNIX, 2ª Edición” (APUE)

4. “Explicación Detallada del Desarrollo de Aplicaciones Linux Embebidas”

Linux Kernel

1. "Comprensión profunda del kernel de Linux" (tercera edición)

2. "Análisis de escenarios del código fuente del kernel de Linux" por Mao Decao y Hu Ximing

Dirección de Investigación y Desarrollo

1. "Programación de Red UNIX" (UNP)

2. "Explicación Detallada TCP/IP"

3. "Programación del kernel de Linux"

4. "Desarrollo de controladores de dispositivos Linux" (LDD)

5. "Programación avanzada de Linux" por Yang Zongde

Conceptos básicos de hardware

1. "Arquitectura y programación ARM" por Du Chunlei

2. Hoja de datos S3C2410

Inglés básico

1. "Inglés para computadoras y profesionales de la comunicación"

Tutorial del sistema

1. "Sistema integrado: arquitectura, programación y diseño"

2. "Sistema integrado: uso de código fuente abierto y "Máquina" de procesamiento StrongARM/Xscale de Mao Decao y Hu Ximing

3. "Construcción de sistemas Linux integrados"

4. "Principios del sistema ARM integrado y desarrollo de ejemplos" de Yang Zongde

Base teórica

1. "Introducción a los algoritmos"

2. "Estructura de datos (edición en lenguaje C)"

3. " ¿Organización y arquitectura de computadoras? Análisis de rendimiento"

4. "Comprensión profunda de los sistemas informáticos" por Randal E. Bryant David O'Hallaron

5. "Sistema operativo: esencia y Principios de diseño"

6. "Principios de compilación"

7. "Comunicación de datos y redes informáticas"

8. "Principios y aplicaciones de compresión de datos"

Libros recomendados sobre lenguaje C

1. El lenguaje de programación C "Lenguaje de programación C"

2. Punteros sobre C "C y punteros"

3. Trampas y trampas de C " Trampas y trampas de C"

4. Lenguaje C experto "Programación experta en C

5. Escribir código limpio -----Técnicas de Microsoft para desarrollar programas C sin errores

"Esencia de la programación: Técnicas de Microsoft para desarrollar programas C sin errores"

p>

6. Programación de Sistemas Embebidos en C y C++ "Programación de Sistemas Embebidos"

7. "Capacitación en Programación de Sistemas Embebidos en Lenguaje C"

8 "Guía de programación C++/C de alta calidad" Lin Rui

Codifique tanto como sea posible para aprender bien C, no puede concentrarse simplemente en C en sí. Los algoritmos, los métodos arquitectónicos, etc. son todos importantes.

Muchos de los libros aquí son solo recomendaciones. No les prestes demasiada atención. ¡La clave es lo básico, que es la máxima prioridad! ! !

Esto es de Baidu Fuzhou Dingji Tieba Jaja

Te sugiero que vayas allí y lo compruebes tú mismo

/f?kw=%E7%A6 %8F %E5%B7%9E%E9%BC%8E%E5%B5%8C&fr=tb0_search&ie=utf-8