ESERCITAZIONE 7_1 - Ricerca Max (14/12/16)
-------------------------------------------------------------------------------------------------------------
ESERCITAZIONE 6_1 - Operazioni tra vettori
-------------------------------------------------------------------------------------------------------------
ESERCITAZIONE 5_1 - Swap tra due variabili in assembler
-------------------------------------------------------------------------------------------------------------
ESERCITAZIONE 4_1 - Sottrazione e salto condizionato
-------------------------------------------------------------------------------------------------------------
OBIETTIVI DISCIPLINARI
- Installazione dell'ide Keil uVision5
- Familiarizzazione con l'ide Keil uVision5
Ricercare il valore massimo all'interno di un vettore di byte caricato in rom
OBIETTIVI DISCIPLINARI
- Le direttive dell'assemblatore AREA, DCB, SPACE, EQU
- Chiamate a subroutine in assembler
OBIETTIVI DISCIPLINARI
- Le direttive dell'assemblatore AREA, DCB, SPACE, EQU
- Chiamate a subroutine in assembler
PROCEDIMENTO / SPECIFICHE INIZIALI
Analisi
Scrivere un programma che:
Analisi
Progettazione
- realizzare il diagramma di flusso che descrive l'algoritmo
- caricare in rom un vettore di 10 byte usando le direttive AREA e DCB
- riservare uno spazio di memoria in ram di 1 byte dove caricare il valore massimo trovato
Collaudo
- descrivere in maniera estremamente sintetica come si è svolto il collaudo
- allegare la cattura della finestra di debug dove si vede il valore massimo torvato e scritto in ram
Collaudo
- descrivere in maniera estremamente sintetica come si è svolto il collaudo
- allegare la cattura della finestra di debug dove si vede il valore massimo torvato e scritto in ram
GRIGLIA DI VALUTAZIONE:
[3 punti] - diagramma di flusso
[4 punti] - programma in assembler
[3 punti] - collaudo
[4 punti] - programma in assembler
[3 punti] - collaudo
RIFERIMENTI / LINK
- Template del progetto keil con l'inizializzazione del vettore
- Template del progetto keil con l'inizializzazione del vettore
- Draw.io
ESERCITAZIONE 6_1 - Operazioni tra vettori
ESERCITAZIONE 5_1 - Swap tra due variabili in assembler
ESERCITAZIONE 4_1 - Sottrazione e salto condizionato
ESERCITAZIONE 3_1 - Installazione e configurazione di Keil uVision 5
- Installazione dell'ide Keil uVision5
- Familiarizzazione con l'ide Keil uVision5
PROCEDIMENTO / SPECIFICHE INIZIALI
- Scaricare e installare Keil uVision, scaricare e installare TivaC MDK5 Software Packs
- Installare i drivers Stellaris ICDI Drivers per l'In-Circuit Debug Interface
- Creare un nuovo progetto Keil, scegliendo come device TM4C123GH6PM
- copiare il file c:\Keil_v5\ARM\Pack\Keil\TM4C_DFP\1.1.0\Device\Source\ARM\startup_TM4C123.s nella cartella del progetto appena creato e aggiungere il file ai sorgenti del progetto
- modificare le opzioni del target (menu flash--> configure...), impostando nel debug "use Simulator", nella scheda target disabilitare il Floating Point Hardware
ESERCITAZIONE 2_1 - Istruzioni di spostamenti dati (13/10/16)
Esercizi sull'utilizzo delle istruzioni LDR, STR, MOV e ADD.
OBIETTIVI
- familiarizzare con l'IDE Keil uVision
- comprendere l'utilizzo delle istruzioni di spostamento dati
- debug delle istruzioni
PROCEDIMENTO / SPECIFICHE INIZIALI
- Creare la cartella di lavoro (D:\Lavori\2016-17\4H\CognomeNome\)
- Fare una copia del progetto di esempio fornito
- All'interno dell'area istruzioni del template testare i seguenti frammenti di codice
;FRAMMENTO_CODICE
;caricamento di numeri immediati a 16 bit in esadecimale o ottale
;R0=0xF ;hex number
;R0=0xF0 ;hex number
;R0=0xF00 ;hex number
;R0=0xF010 ;hex number
;R0=10 ;octal number =0x8
;R0=101 ;octal number =0x41
;FRAMMENTO_CODICE
;caricamento di un numero immediato a 32 bit
;utilizzando le istruzioni MOV e MOVT
;R0=0xABB1FEDE
;FRAMMENTO_CODICE
;eseguire la somma di due dati immediati a 16 bit,
;usando le istruzioni MOV e ADD.
;Tradurre il seguente pseudo codice:
;R0=0x1
;R1=0xFF
;R0+=R1
;FRAMMENTO_CODICE
;eseguire la somma di due dati immediati a 32 bit,
;usando le istruzioni MOV, MOVT e ADD.
;Tradurre il seguente pseudo codice:
;R0=0x12AA34BB
;R1=0x11020301
;R0=R0+R1
;FRAMMENTO_CODICE
;Usare R0 come puntatore alla memoria e inizializzarlo con 0x20000000, istr. MOV e MOVT
;Usare R1 come puntatore alla memoria e inizializzarlo con 0x20000004, istr. MOV e MOVT
;Usare R2 come puntatore alla memoria e inizializzarlo con 0x20000008, istr. MOV e MOVT
;tramite il memory browser dell'IDE caricare all'indirizzo 0x20000004 il numero 12341234
;tramite il memory browser dell'IDE caricare all'indirizzo 0x20000008 il numero 43214321
;Caricare in R4 il valore della cella di memoria puntata da R1, istr. LDR
;Caricare in R5 il valore della cella di memoria puntata da R2, istr. LDR
;Calcolare la somma di R4 e R5 e scrivere il risultato nella cella di memoria
;puntata da R0, istr. ADD e STR
;tramite il memory browser di CCS verificare che all'indirizzo 0x20000000 sia stato
;caricato correttamente il risultato della somma tra R4 e R4
;R0=0x20000000
;R1=0x20000004
;R2=0x20000008
;tramite il memory browser dell'IDE caricare all'indirizzo 0x20000004 il numero 12341234
;tramite il memory browser dell'IDE caricare all'indirizzo 0x20000008 il numero 43214321
;(R1)->R4
;(R2)->R5
;R3=R4+R5
;R3->(R0)
;tramite il memory browser di CCS verificare che all'indirizzo 0x20000000 sia stato
;caricato correttamente il risultato della somma tra R4 e R4
RIFERIMENTI / LINK
- slide del corso
-------------------------------------------------------------------------------------------------------------ESERCITAZIONE 1_1: Progetto di un moltiplicatore a 4bit
(27/09/16 - Definizione specifiche del progetto)
(11/10/16 - Definizione della macchina a stati della unità di controllo)
OBIETTIVI / ARGOMENTI TRATTATI
- Ripasso della sintassi del linguaggio VHDL
- gli automi
PROCEDIMENTO / SPECIFICHE INIZIALI
- Consegnare la relazione tecnica
- Scrivere il codice vhdl di eventuali altri blocchi composti (ci dovrà essere corrispondenza perfetta tra gli schemi e le dichiarazione delle entity in vhdl)
- Per l'Unità di Controllo, spiegarne il funzionamento, disegnare lo schema della macchina a stati e scrivere i codice vhdl corrispondente
(Consegnare per il 14/19/16)
- Per Martedì 25/10/16 consegnare la relazione tecnica:
1) Descrivere brevemente gli obiettivi da raggiungere
2) Realizzare gli schemi dettagliati del progetto complessivo
3) Descrivere il funzionamento dell'unità di controllo
3) Realizzare il diagramma degli stati e descrivere il funzionamento dell'automa
4) Scrivere il codice vhdl dell'unità di controllo
5) Scrivere il codice del test bench per l'U.C. motivando gli stimoli inseriti e descrivendo gli output ottenuti
-------------------------------------------------------------------------------------------------------------
ESERCITAZIONE
OBIETTIVI / ARGOMENTI TRATTATI
PROCEDIMENTO / SPECIFICHE INIZIALI
GRIGLIA DI VALUTAZIONE:
[2 punti] - relazione: premesse teoriche/specifiche - come va inizializzato l'hw
[2 punti] - relazione: diagramma di flusso
[2 punti] - implementazione del codice in assembler (blinky_white, blinky_switch)
[2 punti] - utilizzo dell'ambiente di sviluppo (creazione progetto, debug)
[1 punto] - convenzioni di scrittura codice (intestazione, commenti, nomi var, ...)
[1 punto] - relazione: collaudo
RIFERIMENTI / LINK
Versione iniziale del 27/09/16
OBIETTIVI / ARGOMENTI TRATTATI
PROCEDIMENTO / SPECIFICHE INIZIALI
[2 punti] - relazione: premesse teoriche/specifiche - come va inizializzato l'hw
[2 punti] - relazione: diagramma di flusso
[2 punti] - implementazione del codice in assembler (blinky_white, blinky_switch)
[2 punti] - utilizzo dell'ambiente di sviluppo (creazione progetto, debug)
[1 punto] - convenzioni di scrittura codice (intestazione, commenti, nomi var, ...)
[1 punto] - relazione: collaudo
RIFERIMENTI / LINK
RIFERIMENTI
- ARM® Cortex®-M4F Based MCU TM4C123G LaunchPad™ Evaluation Kit
- [PDF] Tiva™ C Series TM4C123G LaunchPad Evaluation Board - User Guide
- [PDF] Tiva™ C Series TM4C123GH6PM Microcontroller Data Sheet (Rev. E)
- Convenzioni per la scrittura di codice C nei sitemi embedded
- http://users.ece.utexas.edu/~valvano/Volume1/E-Book/C6_MicrocontrollerPorts.htm
- https://github.com/filippo-bilardo
- [PDF] TM4C123G LaunchPad Workshop
- Getting Started with the TI Tiva TM4C123GXL LaunchPad Evaluation Board
- ARM® Cortex®-M4F Based MCU TM4C123G LaunchPad™ Evaluation Kit
- [PDF] Tiva™ C Series TM4C123G LaunchPad Evaluation Board - User Guide
- [PDF] Tiva™ C Series TM4C123GH6PM Microcontroller Data Sheet (Rev. E)
- Convenzioni per la scrittura di codice C nei sitemi embedded
- http://users.ece.utexas.edu/~valvano/Volume1/E-Book/C6_MicrocontrollerPorts.htm
- https://github.com/filippo-bilardo
- [PDF] TM4C123G LaunchPad Workshop
- Getting Started with the TI Tiva TM4C123GXL LaunchPad Evaluation Board
-------------------------------------------------------------------------------------------------------------
Nessun commento:
Posta un commento