Corso di Informatica Applicata Introduzione Università degli studi di Cassino Corso di Laurea in Ingegneria della Produzione Industriale Ing. Saverio De.

Slides:



Advertisements
Presentazioni simili
CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione.
Advertisements

1 Introduzione ai calcolatori Parte II Software di base.
Dalla scrittura all’esecuzione
Gestione della memoria
Procedure In assembler.
Gestione Input Output A. Ferrari.
Definizione e tipi di implementazione
Il Sistema Operativo.
Gestione della Memoria
Gestione della Memoria
1 Processi e Thread Meccanismi di IPC, Inter Process Communication (1)
DAL MICROPROCESSORE AI SISTEMI EMBEDDED Informatica per lAutomazione II (Informatica B o II) Anno accademico 2008/2009 Prof. Giuseppe Mastronardi Ing.
Comandi ai dispositivi di I/O + Si usano due metodi per mandare informazioni a un dispositivo: –Istruzioni specifiche di I/O –I/O mappato in memoria (memory.
Time Sharing Il termine “Time Sharing” proviene dall'inglese e significa letteralmente “partizione di tempo”. Questa è una tecnica sviluppatasi negli.
Operating System Concepts
2 luglio 2006URM2 – ING- OOP0304 OL G. Cantone e A. Lomartire 1 Programmazione Orientata agli Oggetti Processi, task e thread Java (ed esempi) Università
Laboratorio di informatica: ASSEMBLER
CALCOLATORI ELETTRONICI Gestione delle subroutine.
Gestione delle subroutine
Corso di Informatica Applicata - Lezione 3 - © 2005 Saverio De Vito Corso di Informatica Applicata Lezione 3 Università degli studi di Cassino Corso di.
Corso di Informatica Applicata Lezione 6
Struttura dei sistemi operativi (panoramica)
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
2) Trattamento dell'informazione. Lab.Calc. I AA 2002/03 - cap.22 Esempio Supponiamo di volere calcolare X, per uno o più possibili valori di Y, in base.
Primi Elementi di Programmazione in C++
2) Sistemi operativi Lab. Calc. AA2004/05 - cap.2.
Sistemi Operativi GESTIONE DEI PROCESSI.
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
Il sistema operativo Vito Perrone
Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per lambiente e il territorio Ambienti di programmazione Stefano Cagnoni e Monica Mordonini.
Ingresso/Uscita u Materiale in: –Queste trasparenze, non basta il testo! –Tanenbaum 2.4.1, 5.6.4, 5.6.5,
Esercizio 18 – Le eccezioni Creare un trap-handler che gestisca opportunamente le eccezioni 7 (Bus error durante accesso ad area dati/stack ) e 12 (overflow)
TECNICHE DI INPUT/OUTPUT
Modulo 1 - Concetti di base della Tecnologia dell'Informazione
L' ARCHITETTURA DI VON NEUMANN
Introduzione al linguaggio assembly del microprocessore a parte
Introduzione al linguaggio assemby del microprocessore a parte
Architettura degli elaboratori
I vettore interruzioni
Laboratorio di Linguaggi lezione VII: variabili Globali e Locali Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali.
Introduzione al linguaggio assembly del microprocessore a parte
Threads.

Sistema Operativo (Software di base)
Nota (rif. alla lezione precedente): Vector vs ArrayList Le classi generiche Vector e ArrayList sono sostanzialmente equivalenti, ma: I metodi.
Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori.
Gli interrupt Quando una periferica richiede attenzione alla cpu genera un segnale detto di interrupt.
I processi.
Il µP Intel 8086 Marco Lettieri 3 C Informatica A.S. 2009/2010 All’attenzione del Professor Claudio Gatto.
1 Gestione della Memoria. 2 Idealmente la memoria dovrebbe essere –grande –veloce –non volatile Gerarchia di memorie –Disco: capiente, lento, non volatile.
Gestione del processore (Scheduler)
Allievi Elettrici - AA Le funzioni ricorsive in C
Algoritmi e Strutture Dati Strutture Dati Elementari.
Gestione dei dispositivi di I/O:
Calcolatori Elettronici Valutazione delle Prestazioni Francesco Lo Presti Rielaborate da Salvatore Tucci.
Sistemi Elettronici Programmabili
MICROPROCESSORI Un processore è un circuito integrato in grado di effettuare operazioni di calcolo o di elaborazione dell'informazione Il circuito contiene.
Informatica Lezione 8 Scienze e tecniche psicologiche dello sviluppo e dell'educazione Anno accademico:
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
1 Gestione della Memoria Capitolo Introduzione alla gestione della memoria 4.2 Swapping 4.3 Memoria virtuale 4.4 Implementazione 4.5 Algoritmi di.
Gestione della Memoria
Concetti Fondamentali sulla Programmazione
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
1 1. Introduzione alla gestione della memoria 2. Swapping 3. Memoria virtuale 4. Implementazione 5. Algoritmi di sostituzione Gestione della Memoria.
Informatica Generale Marzia Buscemi
Corso di Laurea in Informatica Architettura degli elaboratori a.a Programmazione Assembly: procedure (1) Supporto hardware alle procedure Passaggio.
Gli interrupt Richiesta di attenzione alla cpu. Viene generato un segnale detto di interrupt diretto alla cpu.
Corso di Informatica Applicata - Lezione 4 - © 2005 Saverio De Vito Corso di Informatica Applicata Introduzione Università degli studi di Cassino Corso.
 Ogni processo che deve essere eseguito da un sistema di elaborazione, deve essere caricato e risiedere almeno parzialmente nella memoria centrale 
Transcript della presentazione:

Corso di Informatica Applicata Introduzione Università degli studi di Cassino Corso di Laurea in Ingegneria della Produzione Industriale Ing. Saverio De Vito Tel.:

MACROs; Chiamate a Sottoprocedura; Modalità di I/O; Introduzione agli Interrupt; Contenuti della lezione

Struttura codice assembly La struttura di un programma assembly è data tipicamente da tre sezioni: a) Direttive all' assemblatore, definizioni b) Codice per la logica di business (implementazione algoritmica) c) Sezione di chiusura

Direttive al compilatore Il nostro PIC può lavorare in diverse “modalità”. In pratica l' output di un codice sorgente è influenzato dallo “stato” definito anche dalle “direttive all' assemblatore”, frasi di codice che addestrano il compilatore a “programmare” lo stato del PIC (es.: definire la locazione di memoria programma in cui caricare il codice)

Direttiva al compilatore ORG Un esempio di direttiva è la ORG ORG viene utilizzata per forzare il caricamento delle successive istruzioni in locazioni specifiche della memoria programma Utilizzo: Riservare locazioni di memoria per –Tabelle –Vettori di interrupt –Localizzazione di segmenti di codice

Definizioni di Macro La direttiva #DEFINE è disegnata per la definizione di macro ossia per definire segmenti di codice da associare all' utilizzo di una stringa particolare. Il compilatore sostituirà ogni occorrenza della stringa data con il segmento di codice associato. Attenzione si tratta di semplice sostituzione

Esempio: #DEFINE PAGE0 BSF 3,5 In questo caso ad ogni occorrenza della stringa PAGE0 il code preprocessore (scanner) delll' assemblatore sostituirà l' istruzione BSF 3,5. Tale istruzione causerà il setting della memoria sul banco 0. In tal modo il programma risulterà + leggibile.

Direttiva EQU EQU è una direttiva che permette di associare ad una stringa un valore numerico. E' utile quando si vogliono definire valori numerici di particolare importanza, che occorrono numerose volte nel codice sorgente o semplicemente per motivi di leggibilità.

Direttiva Include L' utilizzo di tali direttive può ad esempio portare alla definizione di file di testo in cui sono collezionate numerose definizioni di particolare importanza per un particolare PIC target. Tale file potrà essere incluso con l' utilizzo di una invocazione della direttiva INCLUDE in ogni file.ASM relativo a codive per quel particolare PIC evitando di ricodificare ogni volta definizioni ovvie (Indirizzo porte A e B, Indirizzo del registro di stato etc.).

Chiamate a sottoprocedura Spesso, alcune operazioni di varia complessità, implementate con diverse istruzioni assembly, devono essere ripetute più volte ed operare con dati diversi al fine della soluzione del problema algoritmico assegnato. I segmenti di codice relativi, inoltre, necessitano di attenzioni particolari in quanto influenzerebbero il codice sorgente relativo in più punti. E' possibile definire delle sottoprocedure che implementano le suddette operazioni e possono essere richiamate quando è necessario.

Chiamate a sottoprocedura In assembly PIC una sottoprocedura è delimitata da una locazione di memoria programma associata eventualmente ad una label e da una istruzione di ritorno da sottoprocedura (RETURN, RETLW). L' istruzione per invocare una sottoprocedura è la CALL. Es.: CALL ValveControl Per implementare la chiamata a sottoprocedura (eventualmente innestata) è necessaria una struttura dati particolare ad accesso ristretto: lo STACK

Lo Stack Lo Stack (pila) è una struttura di memoria ad accesso contollato con una politica LIFO (Last In First Out). Questa politica permette l' accesso in lettura (estrazione, pop), ma anche la scrittura (push), alla sola locazione di memoria alla testa dello Stack. Pertanto l' ultimo valore immesso è l' unico accedibile in lettura. Al verificarsi di una chiamata a sottoprocedura occorre salvare sullo stack l' indirizzo di ritorno che al termine dell' esecuzione della sottoprocedura potrà esser richiamato e utilizzato per caricare l' IR.

Chiamata a Sottoprocedura Meccanismo di salvataggio dell' IP: yy 12h xx 10h 13h 12h 11h BTFSS Pippo CALL Calc ADDLW 10h MOVWF LOC Push Pop 30h 33h 32h 31h BTFSS PippoXXX XX YYY YY,w ZZZ RETURN Al termine della Subprocedure l' IP viene caricato con il TOS (Top of Stack). Grazie a questo meccanismo e alle dimensioni dello stack è possibile rendere disponibili diversi livelli di chiamate a sottoprocedur innestate. Quando lo spazio nello stack si esaurisce si verifica un errore di stack overflow.

Ritorno da Sottoprocedura (RETLW) L' istruzione RETLW permette di ritornare da una procedura caricando il registro w con un valore letterale, utile come valore di ritorno semplice e per il controllo dell' andamento delle computazioni che avvengono durante l' esecuzione della sottoprocedura.

Corso di Informatica Applicata - Lezione I - © 2005 Saverio De Vito Modalità di indirizzamento per I/O Attualmente possiamo distinguere due modalità principali di indirizzamento I/O: –Port Mapped –Memory Mapped

Corso di Informatica Applicata - Lezione I - © 2005 Saverio De Vito Indirizzamento Memory Mapped Nello schema di indirizzamento Memory Mapped, ogni dispositivo di I/O, o meglio il suo porto associato sono indirizzati attraverso la memoria. Ogni dispositivo ha infatti un indirizzo che rientra nello spazio di indirizzamento della memoria principale. E’ questa la modalità utilizzata dal PICMicro 16f84. Es.: La Porta B è mappata sull’ indirizzo 06h

Corso di Informatica Applicata - Lezione I - © 2005 Saverio De Vito Indirizzamento Port Mapped Nello schema di indirizzamento Port Mapped, lo spazio di indirizzamento dei porti I/O è separato da quello della memoria principale e il processore tipicamente utilizza un bus separato ad-hoc per indirizzare i dispositivi I/O. A differenza dell’ I/O memory mapped, la scrittura e la lettura da un dispositivo I/O vengono espletate tramite un subset di istruzioni ad hoc. Un esempio tipico è dato dalle architetture Intel che dispongono delle istruzioni IN e OUT.

Corso di Informatica Applicata - Lezione I - © 2005 Saverio De Vito Port vs Memory Mapping I/O Memory Mapped è più semplice da realizzare quindi meno costi e più spazio a disposizione on chip I/O Port Mapped è più semplice da programmare e influenza positivamente la leggibilità del codice, libera spazio in memoria principale, l’ hardware comunque necessario per implementarlo è + costoso.

Interrupts : Concetti generali Il concetto di interrupt si basa sulla necessità di richiamare l' attenzione del processore su eventi asincroni che si verificano al suo intorno. Questi eventi necessitano di immediate azioni di regolazione e/o servizio da parte del processore stesso. Nel nostro caso questi eventi particolari possono essere ad esempio legati ad azioni di controllo che un microcontrollore deve intraprendere in risposta al loro verificarsi (controllo di parametri significativi di un microimpianto, apertura airbags etc.)

Interrupts : Concetti generali Un altro utilizzo fondamentale nell' ambito della programmazione general purpose è il servizio di interrupts legati all' I/O. In origine sistemi di calcolo primitivi o molto semplici gestivano l' I/O in una modalità molto poco efficiente... il polling. Un sistema di I/O veniva interrogato regolarmente dal processore per ottenere informazioni circa lo stato del dispositivo (presenza di un carattere in ingresso da un terminale, termine di una scrittura su disco etc.) Questa modalità porta allo spreco di cicli macchina che sono impiegati di fatto per aspettare una sincronizzazione con il dispositivo.

Interrupts : Concetti generali Gli interrupts, possono essere invece utilizzati per lanciare operazioni di I/O e lasciare il controllo delle stesse ad un dispositivo di I/O che richiederà l' attenzione del processore allorquando l' operazione sarà stata fisicamente portata a termine. Es.: scrittura su disco di blocchi di memoria. Nel frattempo il processore potrà eseguire altro codice senza doversi fermare in attesa attiva. Quando l' operazione sarà terminata il processore sarà avvisato da un opportuno interrupt.