Objetivos del curso Proveer a los alumnos de nuevas herramientas que les faciliten el desarrollo de proyectos que involucren sistemas embebidos, haciendo hincapié en el firmware de los mismos. También se realiza una primera aproximación a la arquitectura CORTEX de ARM, especialmente en su perfil M. Temas (Ver Contenidos Temáticos) • • • Programación de sistemas embebidos Sistemas Operativos de Tiempo Real (RTOS) Introducción a la arquitectura CORTEX-M de ARM Carga horaria y Duración Jueves 4, 11 y 18 de Septiembre de 19:00 a 21:30 Hs. Requisitos Conocimientos básicos de microcontroladores de 8 bits y de programación en lenguaje C. Dictado El Curso estará a cargo del Ing. Mariano Mondani Mondani, Mariano Ingeniero en Electrónica (UCA); Especialización en Sistemas Embebidos. Facultad de Ingeniería (UBA). Ingeniero de Investigación y Desarrollo en X-28 Alarmas. Becario de Investigación en el Laboratorio de Biomecánica e Ingeniería para la Salud (LABIS) de la Facultad de Ciencias Fisicomatemáticas e Ingenieria (UCA). Arancel El arancel total del Curso, es de $ 500.- (quinientos pesos) Graduados Facultad de Ingeniería $ 400.- (cuatrocientos pesos) Alumnos Facultad de Ingeniería: No arancelados Contenidos Temáticos UNIDAD 1: Programación de sistemas embebidos − Aspectos particulares del lenguaje C en los microcontroladores. − Formas de abordar el desarrollo de un firmware: − Programación secuencial. Programación mediante interrupciones (background / foreground). Programación mediante máquinas de estado finitas (FSM): − Diagramas UML para representar FSM. − Implementación de FSM en C. − Software y librerías para el diseño de FSM (IAR Visual State, RKH, etc). Ejemplos prácticos en IAR Visual State. − C “orientado a objetos”: − Beneficios de una programación orientada a objetos. − Desarrollo de device drivers. − Uso de interfaces y punteros a void para simular las características de un lenguaje orientado a objetos. − Manejo dinámico de memoria: ventajas y desventajas de distintos esquemas. Ejemplos prácticos. Representación numérica: punto fijo vs. punto flotante. Control de versiones: − Beneficios en la utilización de un sistema de control de versiones (VCS). − Tipos de VCS: centralizado y distribuido. − Caso de estudio de VCS centralizado: SVN − Caso de estudio de VCS distribuido: Mercurial. − Ventajas y problemas de cada tipo. − − − − Bibliografía: • “ARM System Developers Guide – Designing and Optimizing System Software”, Andrew N. Sloss, Dominic Symes, Chris Wright, 2004, EEUU, Elsevier Inc. • “C Interfaces and Implementations”, David R. Hanson, 1996, Addison-Wesley. • “Object-Oriented Programming With ANSI-C”, Axel-Tobias Schreiner. • “Practical UML Statecharts in C_C++”, Miro Samek, 2009, EEUU, Newnes - Elsevier Inc. UNIDAD 2: Sistemas Operativos de Tiempo Real (RTOS) − Qué es un RTOS y cómo está compuesto. − Multitarea cooperativa y preemtiva. − Caso de estudio: FreeRTOS − Aspectos generales. − Tipos de tareas y sus implementaciones. − Estados de las tareas. − Sincronización entre tareas: uso de semáforos. − Intercambio de datos entre tareas: uso de colas. − Mecanismos de exclusión mutua en el acceso a recursos compartidos. − Problemas asociados: inversión de prioridades, deadlocks. − Uso de interrupciones. − Manejo dinámico de memoria. Bibliografía: • “Using the FreeRTOS Real Time Kernel: A practical Guide, PIC32 Edition”, Richard Barry, 2009. UNIDAD 3: Introducción a la arquitectura CORTEX-M de ARM − Breve historia de ARM. − Aspectos fundamentales de la arquitectura: − Registros de propósitos general y especiales. − Modos de operación. − Excepciones y controlador de interrupciones. − Mapa de memoria. − Arquitectura de buses. − Pipeline. − CMSIS − Set de instrucciones − Diferencias entre las variantes de CORTEX-M. − Programación en C para ARM. − Compiladores. − Entornos de desarrollo. − Programación eficiente en C. − Placas de desarrollo económicas. Bibliografía: • “Efficient C Code for ARM Devices”, Chris Shore, 2010, ARM Technology Conference 2010, Santa Clara. • “The Definitive Guide to the ARM® Cortex-M3”, Joseph Yiu, 2010, EEUU, Newnes - Elsevier Inc. INFORMES E INSCRIPCIÓN Facultad de Ciencias Fisicomatemáticas e Ingeniería – Posgrado Edificio San José – Campus Universitario Puerto Madero Av. Alicia M. de Justo 1600. Planta Baja. C1107AFD Buenos Aires Tel.: 4338-0756 / 0757 / 0758 Atención de 9 a 17 hs. E-mail: posinge@uca.edu.ar www.uca.edu.ar