SISTEMI INTEGRATI E MOBILI - a.a. 2017/2018 (pre-bozza) ======================================================== (prof. Sergio Carrato) Il corso e’ costituito da 3 parti, ognuna da 3 cfu. Programma del corso =================== Parte prima: Sistemi embedded (ing. Tuzzi) ----------------------------------------------------------------- Questo modulo si propone di fornire un approccio sistemico alla progettazione, realizzazione e verifica di applicazioni basate su sistemi embedded. Durante il modulo verranno discusse e fornite tecniche ed esempi di scrittura delle specifiche (SW/HW) per il sistema stesso, per le interfaccie utente e per la comunicazione con sistemi esterni, si approfondiranno gli ambienti di sviluppo (linguaggi compilatori, sistemi di sviluppo), insieme ai linguaggi, i sistemi operativi e le architetture dei microcontrollori. Parte integrante del modulo e' quella relativa al laboratorio, in cui partendo da una scheda embedded verranno sviluppate applicazioni collegando interfaccie utente (LCD ecc), sensori, sistemi di localizzazione (GPS), sistemi di connessione (Bus sistemi WiFi); la validazione SW/HW e l'ottimizzazione del codice saranno parte importante dei progetti realizzati. Parte seconda: DSP (prof. Carrato) ------------------------------------------------------------- Struttura e caratteristiche generali dei DSP (struttura della memoria e dei bus, indirizzamenti, MAC, pipeline, strutture tipo MMX, zero overhead looping...). Architetture VLIW. Il 'C5402 ed il 'C5510 della Texas Instruments (TI): struttura e caratteristiche. Programmazione del 'C5510 usando CCStudio. Esempi: gestione dell'I/O con l'host, gestione di I/O audio, implementazione di un FIR. Il 'C6748 della TI: struttura e caratteristiche. Esempi di programmazione. Software pipelining. * Esercitazioni Attivita' di laboratorio: programmazione dei DSP 'C5510 e 'C6711 su DSP Starter Kits della TI, con esempi spiegati a lezione. Parte terza: Android (ing. Tenze) ----------------------------------------------------------------- Android: linguaggio di programmazione e sistema di sviluppo. In particolare, con riferimento al libro di testo (v. sotto): Introduction to Android Welcome App: Dive-Into Android Studio: Introducing Visual GUI Design, Layouts, Accessibility and Internationalization. Tip Calculator App: Introducing GridLayout, EditText, SeekBar, Event Handling, NumberFormat, Customizing the App’s Theme and Defining App Functionality with Java. Flag Quiz App: Fragments, Menus, Preferences, Explicit Intents, Handler, AssetManager, Tweened Animations, Animators, Toasts, Color State Lists, Layouts for Multiple Device Orientations, Logging Error Messages for Debugging. Doodls App: 2D Graphics, Canvas, Bitmap, Accelerometer, SensorManager, Multitouch Events, MediaStore, Printing, Android 6.0 Permissions, Gradle. Esame ===== L'esame prevede un progetto e prove orali. Il progetto va svolto sugli argomenti di una delle tre parti, a scelta dello studente; gli orali invece sono tre, uno per ogni parte, e possono essere sostenuti in qualunque ordine (non necessariamente quindi parte prima, poi seconda, poi terza), anche in appelli e sessioni diverse. E' bene che lo studente - spedisca il codice sviluppato per il progetto al docente un paio di giorni prima dell'orale - si iscriva all'appello (anche se fa solo una parte). Il voto finale e' dato dalla media pesata dei voti delle parti (1/2 per la parte con progetto, 1/4 per ognuna delle altre due parti), e viene registrato dal titolare del corso. Testi ===== Parte "sistemi embedded" ------------------------ Contattare il docente Parte "DSP" ----------- Il materiale didattico e' disponibile sul sito del docente Parte "android" --------------- Android 6 for programmers : an app-driven approach Paul Deiter, Harvey Deitel, Alexander Wald. - 3. ed. - Boston : Prentice Hall, 2015. Bibl. Tecnico Scientifica, 22p/0153. Il materiale didattico e' disponibile sul sito del docente.