El objetivo de esta asignatura es que el alumno comprenda cómo funcionan los sistemas empotrados basados en
microprocesador y las herramientas de diseño HW y SW asociadas, así como las restricciones de los sistemas empotrados, que
sea capaz de analizar errores de diseño HW y SW, y diseñar optimizadamente el software de un sistema empotrado teniendo en
cuenta las posibles restricciones de memoria, tiempo y energía impuestas por dominios de aplicación TIC o no TIC, como los
sistemas optoelectrónicos, los neurosensoriales, los portátiles o los móviles.
El curso cuenta con unas clases teóricas donde el alumno recibirá formación sobre análisis y diseño de sistemas y subsistemas
empotrados basados en microprocesadores, y unas entregas prácticas evaluadas en equipo en las que aplicarán los
conocimientos teóricos adquiridos. Finalmente, el alumno tendrá que realizar un examen final teórico/práctico.
Objetivos docentes:
El objetivo principal de esta asignatura es que el alumno sea capaz de enfrentarse al diseño de un sistema empotrado (hardware y software), considerando las restricciones de recursos. Al acabar la asignatura el alumno debe ser capaz de analizar, diseñar, implementar, explotar y gestionar este tipo de sistemas.
Las competencias específicas de la asignatura son:
Programa:
Los contenidos que constituyen la asignatura son los siguientes:
Tema 1: Introducción
1.1 Conceptos básicos
1.2 Programación de Sistemas Empotrados
1.3 Herramientas de desarrollo
1.4 Microcontroladores. AVR
Tema 2: Programación de sistemas empotrados
2.1 Relación con el resto de la asignatura
2.2 Conceptos generales de desarrollo cruzado
2.3 Compiladores
2.4 Soporte en tiempo de ejecución
Tema 3: Herramientas de desarrollo
3.1 Introducción
3.2 Herramientas de desarrollo cruzado de GNU
3.3 El compilador GCC, técnicas para evitar errores
3.4 El enlazador de GNU y definición del mapa de memoria
3.5 Depuración de sistemas empotrados. El depurador de GNU: GDB
3.6 Técnicas avanzadas de depuración
Tema 4: Sistemas empotrados de tiempo real
4.1 Introducción
4.2 Planificación con ejecutivos cíclicos.
4.3 Realización de sistemas con prioridades
4.4 Otros métodos de planificación
Tema 5: Gestión eficiente de la memoria
5.1 Compilación para memorias limitadas.
5.2 Técnicas básicas de programación para el ahorro de memoria.
5.3 Técnicas de gestión de memoria dinámica.
Tema 6: Diseño de Sistemas basados en Microcontrolador 6.1 Esquema general
6.2 Arquitectura
6.3 Procesadores
6.4 Memoria
6.5 Sistemas de entrada/salida
Tema 7: Microcontroladores para sistemas empotrados 7.1 Microchip PIC
7.2 AVR
7.3 MIPS
7.4 ARM y comparación
Tema 8: Seguridad en Sistemas Empotrados
8.1 Ataques lógicos. Buffer overflow y contramedidas
8.2 Ataques de canal auxiliar
8.3 Análisis de tiempos
8.4 Análisis de consumo
8.5 Ataques diferenciales
8.6 Contramedidas a nivel lógico, arquitectural y algorítmico
Tema 9: Fiabilidad
9.1 Modelos de computación y propiedades formales
9.2 Requisitos de fiabilidad
9.3 Técnicas de análisis
9.4 Métodos formales
9.5 Verificación formal con Model Checking
Tema 10: Aplicaciones y diseños
10.1 Ejemplos de aplicaciones y diseños de sistemas empotrados
La asignatura se realizará en forma individual. La evaluación se realizará en base a:
Enlaces:
[1] https://www.die.upm.es/taxonomy/term/27
[2] https://www.die.upm.es/sites/default/files/95000065_ISEL.pdf
[3] https://www.die.upm.es/perfil/jos%C3%A9-manuel-moya-fern%C3%A1ndez
[4] https://www.die.upm.es/content/jos%C3%A9-manuel-moya-fern%C3%A1ndez
[5] https://www.die.upm.es/perfil/alvaro-araujo-pinto
[6] https://www.die.upm.es/titulacion/grado-en-ingenier%C3%AD-de-tecnolog%C3%AD-y-servicios-de-telecomunicaci%C3%B3n-plan-2010
[7] https://www.die.upm.es/content/juan-manuel-montero-mart%C3%ADnez