Enginyeria de programari per a sistemes embeguts (S1) |
Tema 1: Introducció als sistemes embeguts (1h) Conceptes bàsics dels sistemes embeguts. Característiques diferencials Tipus de sistemes embeguts Aplicacions dels sistemes embeguts Seguretat dels sistemes embegutsTema 2: Llenguatges de programació per a sistemes embeguts (1h) Llenguatges de baix nivell per a sistemes embeguts. Assemblador Llenguatges d'alt nivell per a sistemes embeguts. C i eines de compilació. Llenguatges de scripting útils Interfície entre diferents llenguatges de programacióTema 3: Arquitectures SW/HW per a sistemes embeguts (1h) CPUs Memòries Hosted/Hostless Flaix/Flashless SDK i API de clients EVKsTema 4: Desenvolupament de programari per a sistemes embeguts (1h) Cicle de vida del desenvolupament de programari per a sistemes embeguts Metodologies agiles de desenvolupament de programari per a sistemes embeguts Eines de desenvolupament de programari per a sistemes embegutsTema 5: Descripció de característiques desitjables del flux de desenvolupament (2h) Reduccion del Time-to-market Definició de requisitso Funcionalso Temporalso Costo Etc. Arquitectura de Sistema Co-disseny HW/SW o Plataformes de proves HW/SW Simulacions Emuladors FPGAso Definició d'interfícies HW/SWo HW driverso Procés de `bringup Test Driven Development (TDD) Control de versions (SCM) Gestió de tasques i errors en projectes (Agile + Jira) Tests de Sistema Sistemes d'Integració Contínua Test benches DocumentacióTema 6: Disseny de programari per a sistemes embeguts (3h) SW product line: HW and SW configurations Arquitectura SW de capes, components i interfícieso Disseny per al re-use o Capes d'abstracció, HAL, OSAL.o Codi independent d'aplicacióo Codi dependent d'aplicacióo Components de tercers i qüestions legals Disseny per a compatibilitat cap endarrere Disseny escalable Ús extensiu de tecnicas de programacion defensiva (assert)o Revisió mèdica de hard/soft deadlineso Xec |
Virtualizació de la plataforma de disseny (Docker) Eines de desenvolupament (GNU) Sistema de control de versions (GIT) Unit tests (Google Test) Anàlisi Estàtica de Codi (CppCheck) Cobertura de testatge (Gcov) Anàlisi dinàmica de Codi (Valgrind/Electric Fence)Laboratori 3: Implementació de plataforma SW independent de l'aplicació sobre un simulador de RTOSLaboratori 4: Implementació d'utilitats per a debug (I)Laboratori 5: Implementació d'utilitats per a debug (I) Laboratori 6: Implementació de Mock per a simular un HW especifiqueLaboratori 7: Implementació d'una aplicació real estafe exemple sobre la plataforma anterior (I)Laboratori 8: Implementació d'una aplicació real time exemple sobre la plataforma anterior (II)Laboratori 9: Debug funcional de l'aplicacióLaboratori 10: Anàlisi de rendiment i ús de memòria |
Control de qualitat (QA) en sistemes embeguts (S2) |
TEORIA (15h)Tema 0: Conceptes de validació i assegurament de la qualitat (QA) Model en V Requisits Proves Depuració i defectes Conceptes de CI i de #CD (Continuous Integration & Continuous Delivery)Tema 1: Definició de requisits Requisits maquinari Requisits programari Requisits de sistema Eines de gestió de requisitsTema 2: Definició de prova a partir de requisits Eines existents vs pròpies Tipus de proves (caixa negra, caixa blanca, funcionals, no funcionals...) Definició d'indicadors clau de rendiment (KPI) a partir de requisits Definició de criteris d'acceptació pass/failTema 3: Introducció a la validació de sistemes embeguts Validació de sistemes embeguts vs sistemes programari: Disponibilitat de recursos Temps d'execució Possibilitat d'automatització Definició de sistema sota prova Interacció amb el sistema baix provaTema 4: Execució i automatització de proves Definició de bancs de prova Proves automàtiques vs manuals: Per què automatitzar Automatització: Codificació: Control de canvis Instrumentació Execució Informes Eines: Llenguatges de programació per a proves automàtics Eines per a registrar progrés de proves Frameworks de prova Recol·lecció organitzada de dades per a informe de defectesTema 5: Defectes Què és un defecte i com identificar-los Com reportar un defecte correctament Eines d'informe i traçabilitat de defectes Tema 6: CI per a productes embeguts Què ofereix una eina de CI en la validació de productes embeguts: Definició de treballs fàcilment repetibles Distribució dels treballs entre maquinari disponible Avantatges de tindre un CI automatitzat: Optimització de temps maquina Distribució de recursos Informes de resultats automàtics Gestió de bancs de prova: Coexistència entre automatització i ús manual de recursos Interacció dels components d'un |
|
Sistemes operatius en temps real (S3) |
TEORIA (10h) Conceptes generals d'arquitectura de computadorso L'arquitectura (ISA: Instruction Set Architecture) Diferències entre CISC i RISCo La #CPU (Unitat Central de Procés) Unitat de control ALU (Unitat Aritmètic-Lògica) Busos Cache d'instruccions Pipelining Registreso Coreso Memòria (#ROM, #RAM) Memòria caixeto Perifèrics d'entrada/eixida Interrupcionso Microcontroladors Conceptes generals de programario Llenguatges de programació Relació entre joc d'instruccions, codi objecte i llenguatge assembladoro Tipus d'arxiu executableo Compiladorso El linker o enlazador Linker scripts i scatter fileso Memòria estàtica i dinàmica El stack i el heapo El carregador d'arrencada o bootloader Temps real i conceptes de RTOSo RTOS vs GPOS Latencyo RTOS vs bare-metall (super loop)o Kernel / Scheduler preemptive estafe-slicing cooperative estafe-slicing Tick, Aneu-li task, Ticless aneu-lio Interrupcions maquinari i programario Tasques i fils thread stack prioritatso Paral·lelisme i concurrència Secció Crítica Semàfors, mutex i operacions atòmiques Cues de missatges o altres mecanismes Condition variables Problemes clàssics productor/consumidor condició de carrera inversió de prioritatso Processadors multi-core SMP (Symetric Multi-Processing) AMP (Asymmetric Multi-Processing)o Comunicació entre tasques Anàlisis dels RTOS més comunament usatso FreeRTOSo MicroC/US-II (uCOS)o ThreadXo RTEMSo Zephyro VxWorks RTOS en FPGAso Processadors softcore. Exemples Xilinx Microblaze Tensilica Xtensa Implementacions RISC-V (La meua-V RV32, NEORV32, FEMTORV32)LABORATORI (20h)Projecte d'un xicotet sistema controlat per RTOS:Control d'un ventilador accionat per motor #DC (PWM) de manera automàtica mitjançant sensor de temperatura i controlable mitjançant comandos per Ethernet. |
|
Projecte industrial en microelectrònica |
Els continguts del "Projecte Industrial en Microelectrònica" seran diferents depenent dels objectius concrets del projecte a realitzar. Poden ser objecte de tema d'aquells que siguen propis dels estudis del títol. En particular, es podran projectar tota classe de sistemes i dispositius microelectrónics per quants procediments permeta realitzar l'enginyeria actual. També podrà ser objecte del Projecte Industrial en Microelectrònica els treballs de recerca i desenvolupament, i el modelatge teòric o numèric dels dispositius, circuits o sistemes microelectrónics. Es podran considerar així mateix els estudis relacionats amb els continguts del títol relatius a equips, fàbriques, instal·lacions, serveis o la seua planificació, gestió o explotació. |
|