Red de conocimiento informático - Conocimiento informático - ¿Qué aprenden los ingenieros de sistemas Linux integrados?

¿Qué aprenden los ingenieros de sistemas Linux integrados?

Disposición del curso Introducción al curso La primera semana de Conceptos básicos de programación en lenguaje C integrado presenta principalmente los conceptos importantes del lenguaje C y los puntos clave y difíciles en las habilidades de programación en el desarrollo y la programación integrados, en forma de conferencias de revisión y análisis de casos. La atención se centra en el conocimiento que incluye funciones y estructuras de programas, punteros, matrices y listas enlazadas, y el uso de funciones de biblioteca. La segunda semana de conceptos básicos de operación y programación de Linux presenta principalmente los comandos básicos y los conocimientos básicos de programación de Linux, incluidos los comandos de operación de archivos y directorios de Linux, el editor VI, el compilador GCC, el depurador GDB y la herramienta de gestión de proyectos Make. La tercera semana de capacitación intensiva en programación C en Linux incluye principalmente capacitación en algoritmos enteros, capacitación en programación recursiva y de pila, capacitación en operación de bits, capacitación en punteros, capacitación en cadenas y práctica de interfaz de programación de funciones comunes de la biblioteca C para fortalecer la comprensión de los estudiantes sobre el desarrollo de programación básica en Linux. y la capacidad de codificar y depurar. Las semanas cuarta a séptima de programación avanzada y práctica de programación de desarrollo de proyectos en el entorno Linux incluyen principalmente programación del sistema (señales/llamadas al sistema/tuberías/FIFO/colas de mensajes/*memoria compartida, etc.), programación de E/S de archivos (descriptores de archivos/ archivos Interfaz de lectura y escritura/operación atómica/IO con bloqueo y sin bloqueo, etc.), programación multitarea y multiproceso (identificación de proceso/identificación de usuario/fork y vfork/concepto multiproceso/sincronización de subprocesos, etc.) , programación de red (conceptos básicos de red/sockets) Programación/Orden de bytes de red/Cliente/Estructura de servidor/Programación UDP Domine el proceso de desarrollo de la programación de sockets en Linux y esté familiarizado con las funciones de la interfaz de llamada y las estructuras de datos relacionadas de la programación de redes); , para que los estudiantes puedan tener inicialmente la capacidad de desarrollar programación de sistemas en Linux . Al mismo tiempo, basándose en el contenido y la tecnología de programación aprendidos previamente, el equipo desarrollará un proyecto de cooperación en equipo. El contenido de la evaluación incluye programación de E/S de archivos, programación multiproceso, programación de redes y redacción de documentos del proyecto. Las semanas octava a novena del examen de mitad de período se centran en la arquitectura del procesador integrado y la práctica de programación, que presenta principalmente ARM, MIPS, PowerPC y otras arquitecturas y conocimientos básicos de programación, incluida la clasificación de instrucciones, el modo de direccionamiento, el conjunto de instrucciones, el sistema de almacenamiento y el manejo de interrupciones de excepciones. , Conocimientos de lenguaje ensamblador y programación mixta de C\C y lenguaje ensamblador. Al mismo tiempo, combinado con los principios de diseño de hardware y el proceso básico de diseño de hardware de la placa de desarrollo integrada ARM, se analizan los principios de funcionamiento y los mecanismos de accionamiento de varios periféricos, y se realiza la práctica práctica de completar una importante tarea de programación en un ARM. Se lleva a cabo la placa de desarrollo. Las semanas décima a undécima de conceptos básicos y aplicaciones avanzadas del desarrollo de Linux integrado presentan principalmente el proceso básico y el conocimiento del desarrollo de aplicaciones de Linux integrado, incluidos los conceptos básicos y el proceso de desarrollo de Linux integrado, el principio de funcionamiento del cargador de arranque, la configuración de reducción del kernel y la compilación cruzada. , root Conocimientos en producción de sistemas de archivos, programación de redes, interfaz gráfica y desarrollo de bases de datos. Al mismo tiempo, completó de forma independiente un gran proyecto de programación de aplicaciones basado en la GUI de Linux integrada. Los Capítulos 12-13 La teoría y la práctica de desarrollo de controladores de Linux integrados presentan principalmente las especificaciones de desarrollo de controladores en Linux integrado, incluidos conceptos de controladores de dispositivos, controladores de dispositivos de caracteres, dispositivos de bloque y dispositivos de red, controladores de tarjetas de red y desarrollo de controladores de dispositivos integrados de uso común y otros conocimientos. Al mismo tiempo, la escritura de dos controladores de dispositivos integrados se implementa de forma independiente, incluida la depuración y carga de módulos de controladores y la escritura de documentos completos de desarrollo de proyectos. Las semanas 14 y 15 de los ejercicios de práctica de desarrollo del equipo de proyectos de Linux integrado incluyen principalmente el diseño e implementación de un proceso de desarrollo de proyectos integrados real y completo, que involucra la recopilación de datos, la comunicación de red, la visualización de la interfaz gráfica de usuario y el sistema de almacenamiento de bases de datos integradas y otras tecnologías de programación de Linux integradas. Se requiere que los participantes establezcan los conceptos y procesos de los modelos de desarrollo de proyectos empresariales para el desarrollo de equipos y el trabajo colaborativo, fortalezcan su comprensión de la redacción de documentos de diseño de esquemas de proyectos y documentos de diseño detallados, y estén completamente preparados para habilidades vocacionales previas al empleo y capacitación de calidad.

Ceremonia de graduación Objetivos de capacitación Contenido de aprendizaje Nivel de dominio Dominio de tres lenguajes de programación Dominio del lenguaje C Comprensión de ARM Familiaridad con el lenguaje ensamblador Dominio de dos sistemas operativos Linux integrados Dominio de Linux uCLinux Dominio de dos sistemas operativos integrados en tiempo real VxWorks Familiaridad con uC/OS- II Familiarizado con tres arquitecturas de procesador: ARM, competente en arquitectura MIPS, familiarizado con PowerPC, familiarizado con cinco procesadores centrales ARM, Samsung S3C2410/S3C44B0, competente en Intel PCB Familiarizado con Protel Familiarizado con dos VI de software de edición en Linux Familiarizado con EMACS. Familiarizado con dos herramientas de comunicación serial, HyperTerminal (Windows). Familiarizado con MiniCOM (Linux). Familiarizado con tres herramientas de programación Flash, Flash Programmer (GUI). Competente en las dos herramientas de depuración JTAG. Familiarizado con el depurador en línea SkyEye. Familiarizado con la herramienta de depuración de simulación, ARM ADS 1.2. Familiarizado con una herramienta de gestión de versiones de código fuente. CVS. Dominar el proceso de desarrollo general de Linux integrado. Familiarizado con GNU. Competente en código de arranque u-Boot. Familiarizado con los parámetros de configuración de compilación del kernel. Competente en la depuración del kernel. Familiarizado con el sistema de archivos JFFS2. Competente con el sistema de archivos NFS, el sistema de archivos ROMFS y el sistema de archivos EXT2. Familiarizado con el controlador de dispositivo LCD. Competente en controlador de dispositivo USB, Competente en controlador de dispositivo de tarjeta de red, Competente en sistema de gráficos integrados, MiniGUI, Competente en QT/Embedded, Familiarizado con MicroWIN, Comprensión del sistema de base de datos integrado, Competente en desarrollo de aplicaciones integradas SQLLite, desarrollo de aplicaciones de comunicación de red, competencia en desarrollo de aplicaciones de almacenamiento de bases de datos, familiaridad con el desarrollo de aplicaciones multimedia, familiaridad con el desarrollo de interfaces gráficas de usuario, dominio de las habilidades de programación de Shell, familiaridad con las instrucciones y competencia, lo que indica que los principios del contenido y las herramientas aprendidas se han analizado en profundidad y la implementación de Se ha comprendido el contenido relevante, detalles técnicos específicos y se han dominado habilidades de uso avanzadas de herramientas relacionadas. Familiaridad: indica que es capaz de comprender el contenido y las herramientas que ha aprendido, dominar los conceptos básicos del contenido relevante y dominar las técnicas comunes de uso de las herramientas relevantes. Comprensión: demuestra una comprensión general del contenido y las herramientas que se aprenden, la capacidad de distinguir similitudes y diferencias conceptuales entre contenidos relacionados y la capacidad de utilizar inicialmente herramientas relacionadas.