Cómo construir un sistema integrado eCos
② Ajuste las opciones del archivo de definición de componentes (CDL). Esto incluye nombres de opciones, relojes/contadores en tiempo real, variables CYGHWR_MEMORY_LAYOUT, parámetros del puerto serie y varias otras opciones.
③ Agregue los paquetes de software necesarios al archivo ecos.db de nivel superior y agregue una descripción de la plataforma de destino. Finalmente, la entrada para esa plataforma de destino puede contener solo los paquetes de capa común de hardware, y se agregarán otros paquetes de soporte de hardware más adelante. Una vez completada la modificación, puede seleccionar la nueva plataforma para la configuración en el programa de configuración de eCos.
④ Modifique el archivo de diseño de memoria (MLT) en include/pkgconf. Modifique el archivo MLT de acuerdo con el diseño de memoria de la nueva plataforma de hardware. Los archivos MLT para cada tipo de inicio tienen tres sufijos diferentes: archivos .h, archivos .ldi y archivos mlt. Al modificar manualmente, solo necesita modificar el archivo .h y el archivo .ldi, y asegurarse de que ambos archivos se modifiquen simultáneamente. El contenido principal de la modificación es la dirección inicial de la ROM, el tamaño de la ROM, la dirección inicial de la RAM y el tamaño de la RAM.
⑤ Modificar la definición de macro io de la plataforma. El archivo /plt_io.h se incluye para completar las diversas definiciones de macros de IO de la plataforma, incluidos varios registros de configuración del sistema de CPU, registros de configuración de memoria, registros de configuración de puerto serie, registros de configuración de LCD, registros de configuración de Ethernet y otras direcciones de E/S.
⑥ Modificar el código de caché de la plataforma. Modifique la definición de la macro de caché en el archivo include/hal_cache.h. Al comienzo del lanzamiento de la versión, es mejor desactivar la caché y luego activarla después de que la migración sea estable.
⑦ Implemente un controlador de puerto serie simple. La inicialización, recepción y transmisión del puerto serie se completan en el archivo src/hal_diag.c. Las funciones principales son las siguientes:
cyg_hal_plf_serial_init_channel(), completa la inicialización específica del puerto serie;
cyg_hal_plf_serial_putc(), envía caracteres desde el puerto serie
<; p>cyg_hal_plf_serial_getc(), envía caracteres desde el puerto serie Enviar caracteres;cyg_hal_plf_serial_getc(), envía caracteres desde el puerto serie. serial_getc(), recibe caracteres del puerto serie
cyg_hal_plf_serial_getc_nonblock(), recibe caracteres sin bloqueo, es decir,
cyg_hal_plf_serial_isr(), el servicio de interrupción del puerto serie rutina;
cyg_hal_plf_serial_init(), llama a la función cyg_hal_plf_serial_init_channel() para inicializar el puerto serie y registrar la rutina de servicio de interrupción del puerto serie, la rutina de lectura/escritura del puerto serie y la rutina de configuración con el kernel.
⑧ Modificar o agregar el programa de inicialización de la plataforma. La inicialización de la plataforma se realiza en tres archivos: src/s3c44b0_misc.c, include/hal_platform_setup.h e include/hal_platform_ints.h.
hal_platform_ints.h completa la definición de la macro de interrupción del sistema. Las interrupciones se decodifican de manera diferente en diferentes plataformas con diferentes números y tipos de dispositivos, por lo que es necesario realizar los ajustes correspondientes.