Catálogo de libros con explicaciones detalladas de controladores integrados de Linux y ejemplos de desarrollo de sistemas
Parte 1: Conceptos básicos de Linux
Capítulo 1 Introducción a los conceptos básicos integrados 2
1.1 Introducción a los sistemas operativos integrados 2
1.1 .1 Básico conceptos de sistemas embebidos 2
1.1.2 Introducción al núcleo de los sistemas embebidos 3
1.1.3 Campos de aplicación de los sistemas embebidos 4
1.2 Descripción general de Linux sistema operativo 5
1.2.1 Estado de desarrollo de Linux integrado 5
1.2.2 Términos comunes relacionados con Linux 6
1.3 Trasplante del sistema operativo Linux 8 p>
1.3.1 Explicación detallada de la tecnología BootLoader 8
1.3.2 Estructura básica del kernel de Linux 17
1.3.3 Trasplante del sistema operativo Linux 28
1.4 Resumen de este capítulo 32
Capítulo 2 Plataforma del entorno de desarrollo de sistemas Linux 33
2.1 Gestión de procesos/hilos 33
2.1.1 Proceso/hilos Concepto 33
2.1.2 Operaciones básicas de proceso 37
2.1.3 Comunicación y sincronización de procesos 49
2.1.4 Operaciones básicas de subprocesos 57
2.1.5 Programación multiproceso simple 59
2.2 Estructura y tipos del sistema de archivos 62
2.2.1 Sistema de archivos FAT 62
2.2.2 RAMFS Sistema de archivos kernel 66
2.2.3 Sistema de archivos JFFS y YAFFS 68
2.2.4 Sistema de archivos EXT2/EXT3 71
2.2.5 Sistema de archivos /proc 74
2.2.6 Funciones de operación de archivos de Linux 75
2.3 Gestión de almacenamiento 79
2.3.1 Gestión de memoria MTD 79
2.3. 2 Gestión de memoria de Linux 83
2.4 Gestión de dispositivos 84
2.4.1 Descripción general 84
2.4.2 Dispositivos de caracteres y dispositivos de bloque 84
2.4.3 Número de dispositivo principal y número de dispositivo secundario 87
2.5 Resumen de este capítulo 88
Capítulo 3 Conceptos básicos de la programación integrada de Linux 89
3.1 Establecimiento de dispositivos integrados Entorno de compilación cruzada de Linux 89
3.1.1 Descripción general del entorno de compilación 89
3.1.2 Proceso de establecimiento de un entorno de compilación cruzada 92
3.2 Proyecto manager make 97
3.2.1 descripción general de make 97
3.2.2 Reglas de escritura de archivos Makfile 101
3.3 Programación en Linux C/C++ 104
3.3 .1 Estructura del programa C/C++ 104
3.3.2 Tipos de datos C/C++ 107
3.3.3 Expresiones/declaraciones, funciones 108
3.3.4 Consideraciones de diseño C/C++ 111
3.4 Diseño de programa ensamblador de Linux 117
3.4.1 Formato de sintaxis ensamblador de Linux 118
3.4.2 Ejemplos de programa ensamblador 119
3.5 Programación en lenguaje Shell de Linux 120
3.5.1 Variables de entorno y archivos de configuración del Shell 121
3.5.2 Ejemplos de programación del Shell 123
3.6 Programación en lenguaje Perl de Linux 124
3.6.1 Programas Perl básicos 124
3.6.2 Variables Perl 125
3.6.3 Identificadores y operaciones de archivos 128
3.6.4 Estructura del bucle 129
3.6.5 Estructura condicional 130
3.7 Resumen de este capítulo 131
Capítulo 4 Herramientas comunes de desarrollo de Linux 132
4.1 Compilador GCC 132
4.1.1 Información de la versión de GCC 132
4.1.2 Estructura del directorio de GCC 132
4.1.3 Proceso de ejecución de GCC 133
4.1.4 Uso básico de GCC y opciones 134
4.1.5 g++ 134
4.2 depurador gdb 135
4.2.1 Uso básico y opciones 135
4.2 . 2 Comandos gdb comunes 135
4.3 Herramientas de ensamblaje de Linux 136
4.3.1 Ensamblador 136
4.3.2 Enlazador 136
4.3. 3 Depurador 137
4.3.4 Llamada al sistema 137
4.3.5 Parámetros de línea de comando 137
4.3.6 Ensamblaje en línea de GCC 138
4.4 Herramienta de depuración de Linux 139
4.4.1 Herramienta de depuración JTAG 139
4.4.2 Entorno de depuración del kernel kgdb 144
4.5 Herramientas de desarrollo de gráficos de Linux 149 p>
4.5.1 Desarrollo de interfaz gráfica GUI 149
4.5.2 Herramientas de desarrollo de gráficos GTK 157
4.5.3 Herramientas de desarrollo de gráficos QT 161
p>4.6 Resumen de este capítulo 167
Parte 2 Desarrollo y ejemplos de controladores de Linux
Capítulo 5 Conceptos básicos del controlador de dispositivos Linux 170
5.1 Conceptos básicos del controlador 170 p>
5.1.1 La diferencia entre controladores y aplicaciones 170
5.1.2 Dependencias de la versión del kernel y la versión del compilador 171
5.2 Descripción general del módulo del controlador de dispositivo 171
5.2.1 Conceptos básicos de los módulos 171
5.2.2 Inicialización y salida del módulo 172
5.2.3 Carga del módulo del kernel de Linux 174
5.3 Dispositivo Linux Análisis de la estructura del controlador 176
5.3.1 Kernel e interfaz de usuario 176
5.3.2 Nodo de inodo 177
5.3 3 Estructura de archivos 178
<. p>5.4 Introducción a las funciones de interfaz comunes 1815.5 Depuración del controlador 187
5.6 Resumen de este capítulo 189
Capítulo 6 Capítulo Desarrollo del controlador de la tarjeta de red 190 p>
6.1 Descripción general de la tarjeta de red 190
6.2 Controlador de tarjeta de red RTL8193 190
6.2.1 Inicialización del controlador de tarjeta de red 191
6.2.2 Red transmisión y recepción de datos de la tarjeta 197
6.3 Ejemplo típico: desarrollo del controlador de la tarjeta de red inalámbrica Ralink 198
6.3.1 Tarjeta de red inalámbrica Ralink 198
6.3.2 Selección del protocolo de comunicación inalámbrica 802.11 199
6.3.3 Estructura de datos clave del controlador del dispositivo 200
6.3.4 Análisis del controlador de la tarjeta de red inalámbrica rt2500 202
6.3.5 rt2500 Código fuente del programa 207
6.4 Resumen de este capítulo 215
Capítulo 7 Desarrollo del controlador de la tarjeta gráfica 216
7.1 Descripción general del controlador de la tarjeta gráfica 216
7.1 .1 Framebuffer de Linux 216
7.1.2 Estructura de datos del dispositivo Framebuffer 220
7.2 Ejemplo típico: implementación del controlador Framebuffer de tarjeta gráfica 225
7.2.1 Framebuffer marco del conductor
Programa 225
7.2.2 Archivo del controlador del dispositivo de la tarjeta gráfica NVDIA 231
7.3 Resumen de este capítulo 233
Capítulo 8 Desarrollo del controlador de la tarjeta de sonido 234
8.1 Descripción general del controlador de la tarjeta de sonido 234
8.2 Controlador de la tarjeta de sonido OSS 234
8.3 Controlador de la tarjeta de sonido ALSA 235
8.4 Ejemplo típico: tarjeta de sonido AC97 implementación del controlador 237
8.4.1 Análisis del controlador AC97 237
8.4.2 Configuración del controlador de la tarjeta de sonido Realtek 241
8.5 Resumen de este capítulo 243
Capítulo 9 Desarrollo del controlador USB 244
9.1 Descripción general del controlador de dispositivo USB 244
9.2 Ejemplo de dispositivo de controlador USB 245
9.2.1 Descripción general del controlador de Linux 245
9.2.2 Análisis del controlador 246
9.3 Ejemplo típico: ejemplo de comunicación maestro-esclavo de microcontrolador 253
9.3.1 Introducción a la comunicación maestro-esclavo 253 p>
9.3.2 Controlador de dispositivo USB 254
9.3.3 Código fuente del programa host 260
9.4 Resumen de este capítulo 261
Capítulo 10 Flash desarrollo de controladores 262
p>10.1 Conceptos básicos de la memoria flash Flash 262
10.2 Tecnología Flash MTD 264
10.3 Ejemplo típico 1: ejemplo de controlador Flash NAND 265
10.3.1 Dispositivo del controlador NAND Flash 265
10.3.2 Código fuente del controlador NAND Flash 266
10.4 Ejemplo típico 2: ejemplo del controlador NOR Flash 270
10.4.1 Controladores de chip y dispositivos originales MTD 270
10.4.2 Análisis del controlador NOR Flash 270
10.4.3 Código fuente del controlador NOR Flash 274
10.5 Resumen de este capítulo 276
p>Parte 3 Ejemplos de desarrollo de sistemas Linux
Capítulo 11 Patrones y procesos de desarrollo de sistemas integrados 278
11.1 Estructura de sistemas integrados 278
11.1.1 Arquitectura de hardware de sistemas integrados 278
11.1.2 Estructura de software de sistemas integrados 278
11.2 Modelos y procesos de desarrollo integrados 279
11.2.1 Modelo de desarrollo de sistemas integrados 279
11.2.2 Proceso de desarrollo de sistemas integrados 280
11.3 Resumen de este capítulo 282
Capítulo 12 Industrial Ejemplos de desarrollo de equipos de monitoreo de temperatura 283
12.1 Descripción general del entorno de aplicación y diseño de hardware 283
12.1.1 Aplicación de Linux integrado en el campo del control industrial 283
12.1 .2 Estándar de protocolo de comunicación en serie de control industrial 286
12.2 Tecnología de desarrollo relacionada: interfaz de comunicación en serie asíncrona 288
12.2.1 Estándar de comunicación en serie asíncrona 288
12.2. 2 Configure la señal de control del puerto serie 290
12.2.3 Lea la señal de control del puerto serie 291
12.2.4 Llamada al sistema File Open() 292
12.3 Ejemplo: sistema de monitoreo de temperatura en tiempo real basado en DS1820 292
12.3.1 Estructura básica del sistema 293
12.3.2 Flujo de trabajo del sistema 296
12.3.3 Implementación del código fuente del módulo del sistema 298
12.4 Resumen de este capítulo 306
Capítulo 13 Ejemplo de desarrollo del sistema de recopilación de videos en tiempo real 307
13.1 Descripción general del entorno de la aplicación y Diseño de hardware
307
13.2 Tecnologías de desarrollo relacionadas 308
13.2.1 Tecnología de compresión de imágenes de vídeo 308
13.2.2 Controlador de captura de vídeo 310
13.2 .3 Carga y ejecución del controlador de video 313
13.3 Ejemplo - Diseño de un sistema de adquisición de video en tiempo real basado en MV86S02 313
13.3.1 Estructura básica del sistema 313
13.3.2 Flujo de trabajo del sistema 316
13.3.3 Implementación del código fuente del módulo del sistema 319
13.3.4 Comparación y análisis de datos de video 335
13.4 Resumen de este capítulo 336
p>Capítulo 14 Ejemplo de desarrollo del sistema de control de acceso con identificación de huellas dactilares 337
14.1 Descripción general del entorno de aplicaciones y diseño de hardware 338
14.2 Tecnologías de desarrollo relacionadas 340
14.2 .1 Principio de identificación de huellas dactilares 340
14.2.2 Marco de escritura del controlador de dispositivo 344
14.2.3 Controlador de chip de huellas dactilares 346
14.3 Ejemplo: basado en el sistema de control de acceso por reconocimiento de huellas dactilares ARM Linux 347
14.3.1 Estructura básica del sistema 347
14.3.2 Flujo de trabajo del sistema 349
14.3.3 Implementación del código fuente del módulo del sistema 350
14.4 Resumen de este capítulo 360
Capítulo 15 Ejemplos de desarrollo de sistemas de aplicaciones Ethernet basados en RTL8019 361
15.1 Descripción general de la tecnología de aplicaciones Ethernet 361
15.2 Tecnologías de desarrollo relacionadas 362
15.2.1 Principio de transmisión de tramas Ethernet basado en RTL8019 362
15.2.2 Inicialización de RTL8019 363
15.2.3 Marco del controlador RTL8019 364
15.2.4 Estructuras de datos y funciones 365
15.2.5 Carga del controlador RTL8109 368
15.3 Basado en ejemplos sobre el diseño del sistema de aplicación Ethernet RTL8019 368
15.3.1 Estructura básica del sistema 368
15.3.2 Flujo de trabajo del sistema 371
15.3.3 Implementación del código fuente del módulo del sistema 372
15.3.4 Depuración del sistema 380
15.4 Resumen de este capítulo 381
Capítulo 16 Ejemplo de desarrollo del sistema de transmisión de datos de red inalámbrica 382
16.1 Introducción al sistema de transmisión de red inalámbrica 382
16.2 Tecnologías de desarrollo relacionadas 383
16.2.1 Tecnología de acceso a red inalámbrica 383
16.2.2 Red inalámbrica basada en PCMCIA interfaz de tarjeta 385
16.2.3 Controlador PCMCIA 386
16.3 Ejemplo: basado en PCMCIA
16.3 Diseño de sistema frontal integrado de red inalámbrica 387
16.3.1 Estructura básica del sistema 387
16.3.2 Flujo de trabajo del sistema 389
16.3.3 Implementación del código fuente del módulo del sistema 391
16.3. 4 Depuración del sistema 398
16.4 Resumen de este capítulo 398
Capítulo 17 Ejemplo de sistema de transmisión de datos basado en PDIUSBD12 399
17.1 Resumen del entorno y hardware de la aplicación USB diseño 400
17.2 Tecnologías de desarrollo relacionadas: sistema USB y controlador de bus 401
17.2.1 Composición del sistema USB 401
17.2.2 Controlador de bus host USB 402
17.2.3 Controlador de bus de dispositivo USB 403
17.3 Ejemplo: dispositivo de transmisión de datos basado en PDIUSBD12
Planificación 406
17.3.1 Estructura básica del sistema 406
17.3.2 Flujo de trabajo del sistema 412
17.3.3 Implementación del código fuente del módulo del sistema 412
17.4 Resumen de este capítulo 424
Capítulo 18 Ejemplo de diseño de sistema de monitoreo de seguridad en el hogar 425
18.1 Resumen de diseño de hardware y entorno de aplicación 425
18.1.1 Sistema Funciones y composición 425
18.1.2 Descripción de la función del módulo del sistema 426
18.2 Estructura del hardware del sistema 430
18.2.1 Estructura del hardware del sistema cliente Linux 430 p >
18.2.2 Estructura de hardware del sistema de sensores 433
18.3 Estructura de software del sistema 435
18.3.1 Estructura de software del sistema cliente Linux 435
18.3 .2 Estructura del software del sistema de sensores 438
18.4 Diseño e implementación del sistema cliente Linux 440
18.4.1 Diseño de la estructura de datos del sistema 440
18.4.2 Diseño del módulo de comunicación Descripción 441
18.4.3 Descripción del diseño del módulo de visualización 442
18.4.4 Descripción del diseño del módulo de gestión de usuarios 443
18.4.5 Descripción del diseño del módulo de configuración del sistema 445
18.4.6 Código principal del cliente y comentarios 445
18.5 Diseño e implementación del módulo principal del sistema 447
18.5.1 Descripción del diseño del módulo de monitoreo infrarrojo 447
18.5.2 Módulo de alarma (advertencia) 448
18.5.3 Módulo de monitoreo de disparo 449
18.5.4 Módulo de gestión 450
18.5.5 Código principal y comentarios 453
18.6 Resumen de este capítulo 459
Capítulo 19 Ejemplo de diseño de sistema de campus móvil 460
19.1 Resumen de diseño de hardware y entorno de aplicación 460
19.1.1 Funciones y componentes del sistema 460
19.1.2 Funciones del módulo del sistema y diagrama de software 460
19.2 Estructura del hardware del sistema 462
19.3 Estructura del software del sistema 463
19.3.1 Estructura general del software 463
19.3.2 Estructura del módulo de software 464
19.3.3 Diseño de interfaz 467
19.3 .4 Ejecución del diseño del proceso 468
19.3.5 Diseño de la estructura de datos del sistema 469
19.3.6 Entorno de desarrollo del edificio 470
19.4 Código de programa del módulo del sistema 472< / p>
19.4.1 Función principal 472
19.4.2 Módulo de cronograma del programa de estudios 472
19.4.3 Módulo del foro BBS 474
19.4.4 Mapa módulo 476
19.4.5 Módulo de mensajes del sistema de mensajes 478
19.5 Resumen de este capítulo 478