Ingeniería de software para sistemas embebidos (S1) |
Tema 1: Introducción a los sistemas embebidos (1h)-Conceptos básicos de los sistemas embebidos. Características diferenciales-Tipos de sistemas embebidos-Aplicaciones de los sistemas embebidos-Seguridad de los sistemas embebidosTema 2: Lenguajes de programación para sistemas embebidos (1h)-Lenguajes de bajo nivel para sistemas embebidos. Ensamblador-Lenguajes de alto nivel para sistemas embebidos. C y herramientas de compilación.-Lenguajes de scripting útiles-Interfaz entre diferentes lenguajes de programaciónTema 3: Arquitecturas SW/HW para sistemas embebidos (1h)-CPUs-Memorias-Hosted/Hostless-Flash/Flashless-SDK y API de clientes-EVKsTema 4: Desarrollo de software para sistemas embebidos (1h)-Ciclo de vida del desarrollo de software para sistemas embebidos-Metodologías agiles de desarrollo de software para sistemas embebidos-Herramientas de desarrollo de software para sistemas embebidosTema 5: Descripción de características deseables del flujo de desarrollo (2h)-Reduccion del Time-to-market-Definición de requisitos-Funcionales-Temporales-Coste-Etc.-Arquitectura de Sistema -Co-diseño HW/SW -Plataformas de pruebas HW/SW-Simulaciones-Emuladores-FPGAs-Definición de interfaces HW/SW-HW drivers-Proceso de bringup-Test Driven Development (TDD)-Control de versiones (SCM)-Gestión de tareas y errores en proyectos (Agile + Jira)-Tests de Sistema-Sistemas de Integración Continua-Test benches -DocumentaciónTema 6: Diseño de software para sistemas embebidos (3h)-SW product line: HW and SW configurations-Arquitectura SW de capas, componentes e interfaces-Diseño para el re-uso -Capas de abstracción, HAL, OSAL.-Código independiente de aplicación-Código dependiente de aplicación-Componentes de terceros y cuestiones legales-Diseño para compatibilidad hacia atrás-Diseño escalable-Uso extensivo de tecnicas de programacion defensiva (assert)-Chequeo de hard/soft deadlines-Cheque |
-Herramientas de desarrollo (GNU)-Sistema de control de versiones (GIT)-Unit tests (Google Test)-Análisis Estático de Código (CppCheck)-Cobertura de testeo (Gcov)-Análisis dinámico de Código (Valgrind/Electric Fence)Laboratorio 3: Implementación de plataforma SW independiente de la aplicación sobre un simulador de RTOSLaboratorio 4: Implementación de utilidades para debug (I)Laboratorio 5: Implementación de utilidades para debug (I) Laboratorio 6: Implementación de Mock para simular un HW especificoLaboratorio 7: Implementación de una aplicación real time ejemplo sobre la plataforma anterior (I)Laboratorio 8: Implementación de una aplicación real time ejemplo sobre la plataforma anterior (II)Laboratorio 9: Debug funcional de la aplicaciónLaboratorio 10: Análisis de rendimiento y uso de memoria |
Control de calidad (QA) en sistemas embebidos (S2) |
TEORIA (15h)Tema 0: Conceptos de validación y aseguramiento de la calidad (QA)-Modelo en V-Requisitos-Pruebas-Depuración y defectos-Conceptos de CI y de CD (Continuous Integration & Continuous Delivery)Tema 1: Definición de requisitos-Requisitos hardware-Requisitos software-Requisitos de sistema-Herramientas de gestión de requisitosTema 2: Definición de prueba a partir de requisitos-Herramientas existentes vs propias-Tipos de pruebas (caja negra, caja blanca, funcionales, no funcionales...)-Definición de indicadores clave de rendimiento (KPI) a partir de requisitos-Definición de criterios de aceptación pass/failTema 3: Introducción a la validación de sistemas embebidos-Validación de sistemas embebidos vs sistemas software:-Disponibilidad de recursos -Tiempos de ejecución-Posibilidad de automatización-Definición de sistema bajo prueba-Interacción con el sistema bajo pruebaTema 4: Ejecución y automatización de pruebas-Definición de bancos de prueba-Pruebas automáticas vs manuales: Por qué automatizar-Automatización:-Codificación: Control de cambios-Instrumentación-Ejecución-Informes-Herramientas:-Lenguajes de programación para pruebas automáticos -Herramientas para registrar progreso de pruebas-Frameworks de prueba-Recolección organizada de datos para informe de defectosTema 5: Defectos-Qué es un defecto y cómo identificarlos -Cómo reportar un defecto correctamente-Herramientas de informe y trazabilidad de defectos Tema 6: CI para productos embebidos-Qué ofrece una herramienta de CI en la validación de productos embebidos:-Definición de trabajos fácilmente repetibles-Distribución de los trabajos entre hardware disponible-Ventajas de tener un CI automatizado:-Optimización de tiempo maquina -Distribución de recursos -Informes de resultados automáticos-Gestión de bancos de prueba:-Coexistencia entre automatización y uso manual de recursos-Interacción de los componentes de un entorno de CI |
|
Sistemas operativos en tiempo real (S3) |
TEORIA (10h)-Conceptos generales de arquitectura de computadores-La arquitectura (ISA: Instruction Set Architecture)-Diferencias entre CISC y RISC-La CPU (Unidad Central de Proceso)-Unidad de control-ALU (Unidad Aritmético-Lógica)-Buses-Cache de instrucciones-Pipelining-Registros-Cores-Memoria (ROM, RAM)-Memoria caché-Periféricos de entrada/salida-Interrupciones-Microcontroladores-Conceptos generales de software-Lenguajes de programación-Relación entre juego de instrucciones, código objeto y lenguaje ensamblador-Tipos de archivo ejecutable-Compiladores-El linker o enlazador-Linker scripts y scatter files-Memoria estática y dinámica-El stack y el heap-El cargador de arranque o bootloader-Tiempo real y conceptos de RTOS-RTOS vs GPOS-Latency-RTOS vs ¿bare-metal¿ (¿super loop¿)-Kernel / Scheduler-preemptive time-slicing-cooperative time-slicing-Tick, Idle task, Ticless idle-Interrupciones hardware y software-Tareas e hilos-thread stack-prioridades-Paralelismo y concurrencia-Sección Crítica-Semáforos, mutex y operaciones atómicas-Colas de mensajes o otros mecanismos-Condition variables-Problemas clásicos-productor/consumidor-condición de carrera-inversión de prioridades-Procesadores multi-core-SMP (Symetric Multi-Processing)-AMP (Asymmetric Multi-Processing)-Comunicación entre tareas-Análisis de los RTOS más comúnmente usados-FreeRTOS-MicroC/OS-II (uCOS)-ThreadX-RTEMS-Zephyr-VxWorks-RTOS en FPGAs-Procesadores softcore. Ejemplos-Xilinx Microblaze-Tensilica Xtensa-Implementaciones RISC-V (Mi-V RV32, NEORV32, FEMTORV32)LABORATORIO (20h)Proyecto de un pequeño sistema controlado por RTOS:Control de un ventilador accionado por motor DC (PWM) de forma automática mediante sensor de temperatura y controlable mediante comandos por Ethernet. |
|
Proyecto industrial en microelectrónica |
Los contenidos del "Proyecto Industrial en Microelectrónica" serán diferentes dependiendo de los objetivos concretos del proyecto a realizar. Pueden ser objeto de tema de aquellos que sean propios de los estudios del título. En particular, se podrán proyectar toda clase de sistemas y dispositivos microelectrónicos por cuantos procedimientos permita realizar la ingeniería actual. También podrá ser objeto del Proyecto Industrial en Microelectrónica los trabajos de investigación y desarrollo, y el modelado teórico o numérico de los dispositivos, circuitos o sistemas microelectrónicos. Se podrán considerar asimismo los estudios relacionados con los contenidos del título relativos a equipos, fábricas, instalaciones, servicios o su planificación, gestión o explotación. |
|