Desarrollo integrado: cuando aprende integrado, ¿necesita aprender otros?
¿Qué conocimientos necesitas aprender para convertirte en un ingeniero de desarrollo de Linux integrado?
Con el rápido desarrollo de la industria integrada, Linux integrado es favorecido por más ingenieros y cada vez más empresas e instituciones de I+D debido a su madurez en el desarrollo de sistemas y su alta participación en el mercado de aplicaciones. desarrollo e investigación de Linux integrado, lo que ha permitido que Linux integrado se desarrolle rápidamente y sea ampliamente utilizado en el campo emergente de los sistemas operativos integrados. Frente a una industria tan candente, ¿cómo podemos convertirnos en ingenieros de desarrollo de Linux integrado? ¿Qué conocimientos necesita aprender para convertirse en un ingeniero de desarrollo de Linux integrado calificado?
1: Lenguaje C
Los ingenieros de Linux integrados deben tener una cierta base en el lenguaje C para aprender. El lenguaje C es el lenguaje de programación más importante y principal en el campo integrado. número de programación Los ejemplos se centran en la comprensión de la programación básica y el conocimiento avanzado de programación del lenguaje C. Incluyendo: tipos de datos básicos, matrices, punteros, estructuras, listas vinculadas, operaciones de archivos, colas, pilas, etc.
Dos: conceptos básicos de Linux
El concepto y método de instalación del sistema operativo Linux, comprensión detallada de la estructura de directorios, comandos básicos, editor VI, compilador GCC, depurador GDB y gestión de proyectos Make. herramienta, escritura de scripts Shell Makefile y otros conocimientos, y la construcción de un entorno de desarrollo integrado.
Tres: programación del sistema Linux
Céntrese en aprender la biblioteca de E/S estándar, la programación multitarea multiproceso y multiproceso en Linux y la comunicación entre procesos (tubería , FIFO, cola de mensajes, memoria compartida, señal, semáforo, etc.), sincronización y exclusión mutua, conocimientos importantes sobre control de acceso a recursos compartidos, etc., principalmente para mejorar la comprensión del desarrollo de aplicaciones Linux y las capacidades de depuración de código.
Cuatro: programación de redes Linux
Las redes informáticas se utilizan ampliamente en el proceso de desarrollo de aplicaciones de sistemas Linux integrados, a través del desarrollo de redes Linux, el protocolo TCP/IP, la programación de sockets y la red TCP. programación, programación de red UDP, desarrollo de programación web, etc., para obtener una comprensión integral del desarrollo de aplicaciones de red Linux. Centrarse en aprender API relacionadas con la programación de redes, dominar los métodos de programación de servidores de protocolo TCP y la implementación de servidores concurrentes, comprender el protocolo HTTP y sus métodos de implementación, estar familiarizado con los principios y métodos de programación de transmisión y multidifusión UDP, y Dominar el diseño de sistemas de comunicación de red con arquitectura híbrida C/S, estar familiarizado con HTML, Javascript y otras tecnologías y métodos de implementación de programación web.
Cinco: estructuras de datos y algoritmos
Las estructuras de datos y los algoritmos se utilizarán ampliamente en el desarrollo de controladores subyacentes integrados, protocolos de comunicación y varios motores. ¿Qué tan bueno es su dominio directo? afecta la eficiencia, simplicidad y robustez del programa. El aprendizaje en esta etapa debe centrarse en comprender el contenido básico de las estructuras de datos y algoritmos, incluidas listas secuenciales, listas enlazadas, colas, pilas, árboles, gráficos, tablas hash, diversos algoritmos de búsqueda y clasificación y otras aplicaciones y sus procesos de implementación en lenguaje C. .
Seis: C, QT
C es uno de los principales lenguajes para el desarrollo de aplicaciones Linux. Esta etapa se centra en dominar las ideas básicas de la programación orientada a objetos y el. contenido importante de C. La programación de interfaz gráfica es un vínculo muy importante en el desarrollo integrado. Debido a que QT tiene funciones poderosas como API enriquecida, multiplataforma y orientada a objetos, soporte para renderizado 2D / 3D, soporte para XML y múltiples idiomas, se ha utilizado ampliamente en el desarrollo de GUI en el campo integrado. se basa en la biblioteca de gráficos QT. El aprendizaje permite a los estudiantes escribir hábilmente programas GUI y trasplantar aplicaciones QT a la plataforma Cortex-A8. Incluyendo el uso de IDE, componentes QT y administradores de diseño, aplicación de información y mecanismos de ranura, aplicación de mouse, teclado y procesamiento de eventos de dibujo y procesamiento de archivos.
Siete: Cortex A8, desarrollo de plataforma Linux
Comprenda las habilidades básicas de lectura del manual del chip procesando s5pv210 basado en ARM
Cortex-A8 y domine los recursos del sistema s5pv210, módulos como el controlador de reloj, administración de energía, controlador de interrupción de excepción, controlador nand
flash están preparados para la construcción de la plataforma subyacente. La plataforma Linux incluye reducción del kernel, trasplante de kernel, compilación cruzada, uso de herramientas GNU, depuración del kernel, introducción del gestor de arranque, análisis de principios y producción, producción del sistema de archivos raíz y adición de sus propios módulos al kernel, y ejecución de su propia producción en el Plataforma experimental s5pv210 del sistema Linux, implementación integrada de todo el proceso del sistema Linux. Al mismo tiempo, comprenda el proceso de desarrollo del sistema operativo Android. El sistema Android es un sistema operativo de código abierto basado en la plataforma Linux. La plataforma consta de un sistema operativo, middleware, interfaz de usuario y software de aplicación. Es el primer software móvil verdaderamente abierto y completo creado para terminales móviles. En el caso de los terminales móviles, también incluye productos electrónicos de consumo como televisores de datos, descodificadores y PDA.
Ocho: Desarrollo de controladores
El diseño de controladores es una parte importante del trabajo de desarrollo de Linux integrado, y también es una parte difícil. En esta etapa del estudio, debe estar familiarizado con el mecanismo del kernel de Linux, la interfaz entre los controladores y las aplicaciones a nivel de usuario, y dominar las operaciones concurrentes del sistema en los dispositivos. Estar familiarizado con el principio de funcionamiento del hardware desarrollado, tener conocimientos básicos de las interfaces de hardware ARM, estar familiarizado con los recursos del procesador ARM Cortex-A8 s5pv210, dominar el marco de principios del controlador de dispositivo Linux y estar familiarizado. con dispositivos de caracteres avanzados comunes de Linux en ingeniería, desarrollo de controladores para dispositivos de bloque, dispositivos de red, dispositivos USB, etc., y poder desarrollar de forma independiente controladores de bajo nivel en el trabajo.
Dirección de cita de este artículo: ¿Qué conocimientos necesita aprender para convertirse en un ingeniero de desarrollo de Linux integrado?
Lo anterior es una lista de los conocimientos teóricos que un ingeniero de desarrollo integrado de Linux calificado debe aprender. De hecho, como desarrollador integrado, el conocimiento profesional y la experiencia en proyectos son igualmente importantes, por lo que en nuestra teoría usted también debería hacerlo. tenga algo de práctica de proyectos durante sus estudios para ejercitar sus capacidades de desarrollo de proyectos. Especialmente para algunos recién graduados que tienen una gran falta de experiencia real en la operación de proyectos, es crucial elegir una buena institución de capacitación integrada para aprender un curso completo de desarrollo de Linux, y lo más importante son muchas etapas. Los grandes proyectos provienen de casos de desarrollo reales de los empleadores, por lo que realmente podemos captar parte del conocimiento de desarrollo de sistemas integrados que las empresas necesitan.