Ciao a tutti ragazzi, ho tantissimi problemi con questo esercizio:
Un sistema basato sul microprocessore MIPS R2000 (clock pari a 250 MHz) è incaricato della trasmissione seriale asincrona di una serie di caratteri ASCII memorizzati in un banco dell’area dati del sistema che funge da buffer di trasmissione. In particolare, il programma di cui si richiede la scrittura deve permettere di effettuare la trasmissione seriale asincrona mediante la linea 15 della cella di memoria INOUT. Detta linea deve essere mantenuta al livello logico alto quando non ci sono dati da trasmettere, mentre, quando un dato deve essere trasmesso, deve essere portata al livello logico basso per un tempo pari al tempo concesso per la trasmissione di un bit. Successivamente devono essere trasmessi in sequenza i singoli bit (dal più significativo al meno significativo), ciascuno con la durata riservata ai bit. Al termine della trasmissione del carattere ASCII, dovrà essere spedita la parità del messaggio (pari o dispari) e lo stop equivalente ad un livello logico alto per un tempo pari a 1 o 1.5 o 2 tempi di bit. Dopo aver trasmesso il bit di stop, potrà aver luogo la trasmissione del prossimo carattere.
La linea 7 della cella di memoria a 16 bit INOUT fornisce l’informazione relativa alla velocità di trasferimento:
0 = 9600 bit/s (104 µs per bit)
1 = 19200 bit/s (52 µs per bit).
La linea 3 della cella INOUT fornisce l’informazione relativa alla parità:
0 = parità pari;
1 = parità dispari.
Le linee 0 e 1 della cella INOUT forniscono l’informazione relativa alla durata da associare al bit di stop:
00 = 1 tempo
01 = 1.5 tempi
10 o 11 = 2 tempi.
Il programma da scrivere dovrà prelevare 32 caratteri ASCII memorizzati nella zona di memoria adibita a buffer di trasmissione e dovrà poi trasferirli serialmente.
Alle celle di memoria sopra menzionate si assegnino indirizzi arbitrari che cadano, però, nell’area dei dati dell’architettura MIPS.
NON USARE SYSCALL, UN CARATTERE ASCII = 8 BIT.
In particolare non capisco se devo dare io un indirizzo al buffer (e se si, come si fa?) e come inviare i caratteri ascii alla linea 15.
Riuscite a darmi una mano?
Grazie in anticipo