Créditos

La aprobación del curso otorga 10 créditos. 

Objetivo de la Unidad Curricular

Al finalizar el curso el estudiante será capaz de:

  • Definir sistemas embebidos y sistemas embebidos de tiempo real, e identificar sus características. 

  • Describir el proceso de compilación de una aplicación, la inicialización de datos, el arranque de programa y el cargado de programa. 

  • Programar utilizando control de versiones. 

  • Describir el hardware asociado a un sistema embebido. Describir los conceptos y bloques básicos de microcontroladores y periféricos más relevantes. 

  • Utilizar e interpretar documentación técnica compleja (manuales de usuario, hojas de datos, etc.). 

  • Describir el flujo de ejecución de un microcontrolador: contexto principal y de interrupciones. Describir la secuencia de ejecución de interrupciones. Reconocer el problema de datos compartidos. Identificar los tiempos involucrados en las interrupciones. 

  • Describir las principales arquitecturas de software e identificar sus características. Comparar las ventajas y desventajas de cada una. Seleccionar la arquitectura adecuada para una aplicación particular. 

  • Conocer los conceptos básicos de los sistemas operativos para tiempo real. En particular el concepto de tareas, estados de una tarea, el rol del planificador, y la vinculación entre tareas y datos.

  • Analizar y aplicar técnicas de reducción del consumo a nivel circuito y a nivel sistema, y de programación para bajo consumo. 

  • Definir los principales conceptos de test. Identificar las diferencias entre test en PC y test en sistemas embebidos. Describir los métodos de test embebido: en host y con simuladores. 

  • Diseñar el hardware y desarrollar el software embebido para implementar un sistema basado en microcontrolador. En particular, balanceando adecuadamente el procesamiento que se realiza dentro de las interrupciones y en la tarea, y separando el código dependiente del independiente de hardware. 

  • Enfrentarse a un problema real e implementar una solución al mismo utilizando un sistema embebido para tiempo real.

Unidades Temáticas

    1. Introducción y conceptos básicos: introducción a los sistemas embebidos y sistemas embebidos de tiempo real, hardware en sistemas embebidos, metodologías de  desarrollo de software embebido. 

    2. Microcontroladores e interrupciones: arquitectura de microprocesadores y microcontroladores periféricos,fundamentos de las interrupciones, latencia, el problema de datos compartidos. 

    3. Arquitecturas de software embebido: Round-Robin, Round-Robin con interrupciones, planificación por encolado de funciones,  sistema operativo para tiempo real. Análisis y selección de arquitectura. 

    4. Introducción a los sistemas operativos para t iempo real: tareas y el estado de una tarea, el planificador, vinculación entre  tareas y datos, semáforos y datos compartidos. Cola de mensajes, buzones y pipes, funciones de temporizado, eventos, manejo de memoria, manejo de  rutinas de atención a interrupciones.

    5. Sistemas embebidos de bajo consumo: técnicas de reducción del consumo a nivel circuito y a nivel sistema. Programación para bajo consumo.

    6. Criterios básicos de diseño de un sistema embebidocriterios generales y  específicos de sistemas operativos para tiempo real.

    7. Otros temas de sistemas e mbebidos: diseño basado en modelos, test y técnicas para confiabilidad en sistemas críticos, etc.

Libro del curso

Buena parte del curso sigue el libro: “An Embedded Software Primer”, David E. Simon, Addison-Wesley Professional, 1999. Este libro se encuentra disponible en varias bibliotecas de Udelar (se puede consultar al catálogo centralizado haciendo click aquí, no es necesario registrarse, se puede entrar como invitado). 

Recuerde que para acceder a material adicional o complementario se puede consultar en el portal Timbó (es gratuito, solamente requiere registro).

Por más detalles consultar al programa de la unidad curricular.

Última modificación: martes, 16 de marzo de 2021, 21:48