1 Università di Pavia - corso di Calcolatori Elettronici PROGETTO DI UN SISTEMA BASATO SU P PROBLEMA REALE SVILUPPO HARDWARESVILUPPO SOFTWARE INTEGRAZIONE DEL SISTEMA
2 Università di Pavia - corso di Calcolatori Elettronici SVILUPPO HARDWARE SPECIFICHE PROGETTO DEL CIRCUITO SCHEDA DI PROVA REALIZZ. PROTOTIPO DEBUG HARDWARE
3 Università di Pavia - corso di Calcolatori Elettronici SVILUPPO SOFTWARE SPECIFICHE FLOW CHART STESURA SORGENTE ASSEMBLATORE/COMPILATORE LINKER DEBUG SW (SIMULAZIONE)
4 Università di Pavia - corso di Calcolatori Elettronici INTEGRAZIONE HW/SW INTEGRAZIONE RICERCA ERRORI (EMULAZIONE REAL TIME) ROM PROGRAM COSTRUZIONE HWSW
5 Università di Pavia - corso di Calcolatori Elettronici EMULAZIONE IN TEMPO REALE SISTEMA DI SVILUPPO MEMORIA DI EMULAZIONE ICE: In Circuit Emulator PROTOTIPO CPU MEMORIA DEL PROTOTIPO
6 Università di Pavia - corso di Calcolatori Elettronici CREAZIONE DI UN ESEGUIBILE Utilizzo di linguaggio assemblativo quando occupazione di memoria e velocità sono critici (sistemi embedded e applicazioni real time) Approccio ibrido con parti scritte in linguaggio ad alto livello e parti critiche scritte in linguaggio assemblativo Svantaggi: lunghezza, leggibilità, portabilità
7 Università di Pavia - corso di Calcolatori Elettronici Suddivisione in 3 segmenti: testo: istruzioni di programma a partire da 0x dati a partire da 0x (statici e dinamici) stack: a partire da 0x7fffffff (si espande in senso opposto all’area dati) MEMORIA
SPIM Simulatore: software che esegue programmi scritti in linguaggio assemblativo MIPS (debugging) Pseudoistruzioni che vengono tradotte in sequenze di istruzioni MIPS Interfaccia Windows/Unix Display dei registri Pulsanti di controllo (Unix) Segmento testo: istruzioni Segmenti dati e Stack Messaggi
9 Università di Pavia - corso di Calcolatori Elettronici SPIM: versione per Windows
10 Università di Pavia - corso di Calcolatori Elettronici Principali Direttive per l’assemblatore MIPS.asciistringa.asciizstringa.byteb 1, …, b n.data.floatf 1, …, f n.doubled 1, …, d n.globlsimbolo.text.wordw 1, …, w n.spacen
11 Università di Pavia - corso di Calcolatori Elettronici SYSCALL PROGRAMMA UTENTE PREPARAZIONE CHIAMATA CHIAMATA ESPLETAMENTO SERVIZIO RITORNO RISULTATI SPIM fornisce tramite System Call (Syscall) servizi analoghi a quelli del sistema operativo. Syscall vista come l’invocazione di una subroutine. Passaggio parametri alla syscall attraverso $a0-$a3, se interi, o $f12, se in virgola mobile; codice della chiamata attraverso $v0. Risultati restituiti in $v0, o $f0, se in virgola mobile. Se ci sono più parametri si usa la memoria. SPIM
12 Università di Pavia - corso di Calcolatori Elettronici Syscall - Esempio Per stampare sulla console “risposta =5”:. data#segmento dati str:.asciiz “risposta =“.text#segmento testo li $v0, 4#chiamata print_string la $a0, str#stringa da stampare syscall li $v0, 1#chiamata print_int li $a0, 5#intero da stampare syscall COMANDOCODICE CHIAMATA InputOutput Print_int1$a0 Print_float2$f12 Print_double3$f12 Print_string4Sa0 Read_int5$v0 Read_float6$f0 Read_double7$f0 Read_string8$a0=buffer $a1=lungh.