PORTALE DELLA DIDATTICA

PORTALE DELLA DIDATTICA

PORTALE DELLA DIDATTICA

Elenco notifiche



Integrazione di sistemi embedded

01SOKOQ

A.A. 2019/20

Lingua dell'insegnamento

Italiano

Corsi di studio

Corso di Laurea Magistrale in Ingegneria Elettronica (Electronic Engineering) - Torino

Organizzazione dell'insegnamento
Didattica Ore
Lezioni 30
Esercitazioni in laboratorio 30
Tutoraggio 25
Docenti
Docente Qualifica Settore h.Lez h.Es h.Lab h.Tut Anni incarico
Ruo Roch Massimo Professore Associato IINF-01/A 15 0 15 0 3
Collaboratori
Espandi

Didattica
SSD CFU Attivita' formative Ambiti disciplinari
ING-INF/01 6 C - Affini o integrative Attività formative affini o integrative
2018/19
Il corso e' tenuto in italiano. Insegnamento facoltativo per la laurea magistrale in Ingegneria Elettronica, collocato al primo periodo didattico del I anno. Questo corso pone l'accento sulle metodologie e sugli strumenti di sviluppo utilizzati nella progettazione del firmware dei sistemi embedded, nonche' nel test degli stessi. In particolare sara’ descritta nel dettaglio la struttura di una applicazione, sia nel caso di integrazione diretta sull’hardware (bare-metal) sia nel caso essa debba essere inserita in un sistema real-time, piuttosto che in un dispositivo Linux embedded. Queste conoscenze saranno integrate dalla descrizione degli strumenti utilizzati per costruire l’ambiente software, partendo dai cross-compilatori, fino agli strumenti automatici di generazione del codice binario, della gestione delle versioni, e della installazione e test dello stesso sul sistema embedded, eventualmente interfacciato ad un personal computer. Infine, saranno descritte metodologie utilizzabili per l’analisi delle prestazioni del software realizzato, e per l’analisi dei requisiti di memoria, banda di I/O e potenza di calcolo.
The course is taught in Italian. The course is optional for the MSc-level programme in Electronic Engineering and will be offered in the first period of the first year. This course presents methodologies and development tools used in embedded systems firmware design and test. In more details, applications structure will be described, both for bare-metal and OS supported systems (Real Time or Linux). These knowledges will be completed with a descriptions of the tools used to build the software environment, starting from cross-compilers, up to automatic tools for binary code generation, versioning management, deployment and test of the embedded system. Last, code profiling methodologies will be described, to analyze memory, I/O and CPU requirements.
- Conoscenza della struttura di una applicazione per sistemi embedded, sia bare-metal, che RTOS o Linux - Conoscenza di tecniche di programmazione C e C++ specificamente orientate ai sistemi embedded - Capacita’ di scrivere codice corretto per definizione - Capacita’ di progettare una applicazione per sistemi embedded - Capacita’ di analizzare le prestazioni del firmware di un sistema embedded, al fine di ottimizzare le sezioni critiche dal punto di vista dell’utilizzo delle risorse hardware del sistema - Capacita’ di definire procedure di test modulare per il firmware di un sistema embedded - Conoscenza di sistemi per la creazione automatica di distribuzioni firmware - Capacita’ di gestire un sistema software complesso ed in evoluzione, mediante tecniche di versioning - Capacita’ di sviluppare software in team, con il supporto di software di versioning e multibranching - Capacita' di produrre procedure automatizzate per il test e la verifica di architetture digitali mediante scripting - Conoscenza di base dei principali tipi di linguaggi di scripting - Conoscenza approfondita di linguaggi di shell (Bash) - Conoscenza approfondita di un linguaggio di scripting a oggetti (Python)
- Knowledge of the architecture of an application running on embedded systems (bare-metal, RTOS or Linux based) - Knowledge of C and C++ programming techniques oriented to embedded systems - Ability to write code corrected by definition - Ability to design an embedded system application - Ability to profile firmware performances, to optimize hardware resources usage - Knowledge of automated firmware build tools - Ability to manage a complex and evolving software system, with versioning - Ability to develop software in a team, with versioning and multibranching tools - Ability to develop automated testing and verification procedure for digital architectures through scripting - Basic knowledge of main scripting languages - Detailed knowledge of shell languages (Bash) - Detailed knowledge of object oriented scripting language (Python)
E’ necessaria la conoscenza dell’architettura di un sistema di elaborazione dati. In particolare e’ necessario conoscere l’architettura ed i meccanismi di funzionamento di un microprocessore, del sistema di memoria, e dei principali tipi di periferiche (porte seriali, parallele, timer, convertitori A/D e D/A) Inoltre e’ necessaria la conoscenza del linguaggio di programmazione ‘C’. E’ utile anche la conoscenza della programmazione ad oggetti, e, possibilmente, del linguaggio ‘C++’.
Knowledge of the architecture of a computing system is mandatory. In details, the architecture and working principles of a microprocessor must be known, as memory system nad main I/O subsystem ones (serial and parallel ports, timers, A/D and D/A converters) Besides, the knowledge of C is needed. The knowledge of object oriented programming, as well as C++ is recommended.
- Programmazione di sistemi embedded (2,5 CFU) - Struttura del codice eseguibile - Processo di compilazione e cross-compilazione - Struttura di una applicazione in sistemi bare-metal - Struttura di una applicazione in sistemi real-time - Boot loader e kernel - Filesystem nei sistemi embedded - Organizzazione del firmware (1 CFU) - Procedure di test e test units - Automazione del processo di compilazione - Gestione delle versioni - Distribuzione del firmware (deployment) - Linguaggi interpretati (2,5 CFU) - Linguaggi di scripting - panoramica - Shell (Bash) - Programmi di utilita’ (sed, awk, grep, lex, yacc) - Scripting orientato agli oggetti per l'automazione di processi simulativi, di testing e GUI (Python)
- Embedded systems programming (2,5 CFU) - Executable code structure - Compiling and cross-compiling - Bare-metal system application structure - Real time system application structure - Boot loader and kernel - Embedded systems filesystems - Firmware organization (1 CFU) - Test procedures and test units - Building process automation - Version management - Firmware deployment - Scripting languages (2,5 CFU) - Scripting languages - overview - Shell (Bash) - Utility programs (sed, awk, grep, lex, yacc) - Object oriented scripting for simulation, testing and GUI (Python)
Le esercitazioni in aula riguardano piccoli progetti, relativi a quanto trattato nelle lezioni immediatamente precedenti. E' richiesto l'uso di calcolatrici scientifiche (personali). Le esercitazioni sperimentali di laboratorio comprendono nella prima parte lo sviluppo di firmware in accordo con la metodologia descritta a lezione, ed il test dello stesso su schede a microcontrollore mentre nella seconda parte verteranno sull'uso dei linguaggi di scripting nel progetto di sistemi embedded. Per l'esecuzione delle esercitazioni sperimentali sono disponibili delle schede basate su FPGA e microcontrollori. Il numero di esercitazioni previste e' 9 e sono condotte in laboratorio da gruppi di 2-4 studenti. Il lavoro prevede la realizzazione di homework propedeutici al laboratorio stesso durante i quali gli studenti prepareranno il progetto richiesto di volta in volta per poi verificarlo durante le sessioni di laboratorio. Ogni laboratorio richiede la redazione di una relazione che concorrerà al conseguimento del voto finale.
Practice classes will focus on small firmware designs (personal calculator required). Lab sessions consist, in the first part of the course, in the development of firmware applications, according to the methodologies described in classroom, and its test on microcontroller based boards. In the second part lab classes will focus on the use of scripting languages for the design of embedded systems. Evaluation boards will be available to test the designs. Nine lab sessions will be provided by groups of 2 to 4 students. Homeworks are required to prepare the lab sessions. A report is required for the lab sessions and will be considered in the final grade.
I testi che coprono buona parte degli argomenti del corso sono: F.Vahid, T. Givargis, "Embedded System Design: A Unified Hardware/Software Introduction", John Wiley and Sons M. Lutz, D. Ascher, Learning Python", O'Reilly Media, Inc Sono disponibili copie dei lucidi utilizzati nelle lezioni, e i manuali per le esercitazioni di laboratorio, corredati delle caratteristiche dei componenti utilizzati. Tutto il materiale didattico e' scaricabile attraverso il portale della didattica.
The learning material used for the lessons is made available through the course website. Notes provided by the professor. Reference books: F.Vahid, T. Givargis, "Embedded System Design: A Unified Hardware/Software Introduction", John Wiley and Sons M. Lutz, D. Ascher, Learning Python", O'Reilly Media, Inc
Modalità di esame: Prova scritta (in aula); Prova orale obbligatoria; Progetto di gruppo;
Exam: Written test; Compulsory oral exam; Group project;
... L'esame consiste in una prova scritta (2 ore e 30 minuti ) sui linguaggi di scripting ed una prova orale divisa in due parti, relative rispettivamente alla progettazione del firmware di sistemi embedded e ai linguaggi di scripting per l'automazione della verifica. Ciascuna parte orale ha una durata di 15-20 minuti e riguarda tutti gli argomenti trattati a lezione, nei laboratori e nei lavori assegnati, comprese le relazioni svolte. Il voto finale e' una media pesata della valutazione delle due parti. Il candidato deve essere sufficiente in ambedue le parti. L'ammissione alla prova orale e' condizionata dall'avvenuta consegna delle relazioni di laboratorio, svolte in gruppo, che deve avvenire almeno sette giorni prima dell'appello. La valutazione delle relazioni si basera' sulla corretta applicazione della metodologia di progetto presentata in aula, e sulla chiarezza di esposizione di quanto elaborato dai candidati.
Gli studenti e le studentesse con disabilità o con Disturbi Specifici di Apprendimento (DSA), oltre alla segnalazione tramite procedura informatizzata, sono invitati a comunicare anche direttamente al/la docente titolare dell'insegnamento, con un preavviso non inferiore ad una settimana dall'avvio della sessione d'esame, gli strumenti compensativi concordati con l'Unità Special Needs, al fine di permettere al/la docente la declinazione più idonea in riferimento alla specifica tipologia di esame.
Exam: Written test; Compulsory oral exam; Group project;
Final evaluation is based on a written test covering scripting languages (2h30m) and an oral examination splitted into two parts related respectively to the design of firmware for embedded systems and scripting languages for verification automation. Each one is a 15-20 minutes test, and concerns topics explained in lessons, labs, and homeworks, including written reports. Final result is a weighted average of the two parts. The applicant must be passing grade in both parts. Condition for oral examination submission is the delivery of written laboratory reports, at least seven days before the official exam day. Report evaluation is based on right application of the design methodology described in the course, and on clarity of project description.
In addition to the message sent by the online system, students with disabilities or Specific Learning Disorders (SLD) are invited to directly inform the professor in charge of the course about the special arrangements for the exam that have been agreed with the Special Needs Unit. The professor has to be informed at least one week before the beginning of the examination session in order to provide students with the most suitable arrangements for each specific type of exam.
Esporta Word