Low level programming
|
|
|
- Eloisa Campana
- 10 anni fa
- Просмотров:
Транскрипт
1 Low level programming Federico Terraneo 22 ottobre 2011 F. Terraneo Low level programming 1/ 1
2 Introduzione In questo talk si parlerà di come scrivere software che si interfaccia direttamente con l'hardware. I concetti qui presentati sono orientati alla programmazione di microcontrollori, anche se si ritrovano con poche modiche anche per la scrittura di driver per periferiche in ambiente PC, quindi per sistemi operativi come GNU/Linux. Ci saranno anche esempi pratici, sempre tratti dal mondo dei microcontrollori. La scelta di portare esempi relativi ai microcontrollori è dovuta sia a ragioni di semplicità (le periferiche dei microcontrollori sono più semplici di quelle di un PC), sia per il fatto che quando si usano microcontrollori è più frequente doversi sporcare le mani con programmazione di basso livello. Inne, saranno introdotti dei programmi free software/open source che consentono di sviluppare software per microcontrollori in ambiente GNU/Linux. F. Terraneo Low level programming 2/ 1
3 Come interfacciarsi con l'hardware Molti programmatori, anche esperti, non hanno un idea precisa di come il software interagisca con l'hardware. Questa slide si propone di risalire i vari livelli di astrazione all'interno di un sistema operativo come GNU/Linux, no al punto che ci interessa, l'interazione diretta con l'hardware. Libreria userspace. E' normalmente il livello di astrazione a cui i programmatori sono maggiormente abituati. Ad esempio, se un programmatore volesse interagire con la USB su GNU/Linux, utilizzerebbe libusb. ( Ok, ma... come fanno queste librerie a interagire con l'hardware? Facendo chiamate al kernel del sistema operativo. Ok, ma... come sono implementate nel kernel queste chiamate? Facendo altre chiamate ad un driver di periferica. (ci stiamo avvicinando...) Ok, ma... come sono implementati i device driver?, come comunicano con l'hardware? F. Terraneo Low level programming 3/ 1
4 Registri di periferica Il metodo più comune è quello dei registri di periferica. Le periferiche hardware si presentano al software come un set registri, che non sono altro che locazioni di memoria mappate a specici indirizzi nello spazio di indirizzamento, e quindi accessibili tramite software. Caveat: I registri di periferica non vanno confusi coi registri della CPU. I registri di periferica sono mappati ad indirizzi sici, non virtuali, quindi nei sistemi operativi con protezione della memoria (Linux, Mac, Windows) sono accessibili solo da dentro il kernel. Nei microcontrollori, invece, sono sempre accessibili. F. Terraneo Low level programming 4/ 1
5 Registri di periferica I registri di periferica sono per certi versi paragonabili a delle variabili allocate in RAM, in quanto sono accessibili allo stesso modo (essendo mappati nello stesso spazio di indirizzamento) in molti casi sono leggibili e scrivibili dal software (alle volte però capita di avere a che fare con registri read-only). hanno una dimensione, solitamente di 8, 16 o 32bit, esattamente come gli unsigned char, unigned short e unsigned int. F. Terraneo Low level programming 5/ 1
6 Registri di periferica Ciononostante, ci sono delle dierenze fondamentali tra i registri di periferica e le variabili Quello che viene scritto in questi registri causa azioni nel mondo reale (l'accensione di un LED, l'attivazione di un ADC, l'invio di un carattere tramite una porta seriale, etc.) Si trovano a specici indirizzi di memoria. Quando una variabile viene allocata sullo stack o sull'heap, al programmatore non importa se viene allocata all'indirizzo 0xbc60 o 0xbe12, mentre se il registro di periferica si trova all'indirizzo 0x101e5018 occorre essere sicuri di stare scrivendo esattamente a quell'indirizzo, o non si otterranno i risultati voluti. I registri di periferica non sono ad uso esclusivo del programmatore, come le variabili. Sono condivisi tra il software e l'hardware. Per esempio l'hardware puo` decidere di ippare bit all'interno dei registri per segnalare eventi specici, cosa che non succede con le normali variabili. F. Terraneo Low level programming 6/ 1
7 Registri di periferica Come si fa a sapere quali periferiche si hanno a disposizione, quali registri ha una specica periferica, a che indirizzo sono mappati e come usarli? Per un microcontrollore le periferiche disponibili sono documentate dal produttore in un documento, solitamente chiamato datasheet o programming guide. I datasheet sono in genere disponibili sul sito del produttore del microcontrollore. Per esempio il datasheet dell'atmega328, il microcontrollore usato nell'arduino, si trova sul sito della Atmel, mentre il datasheet dei microcontrollori stm32 si trova sul sito di ST. F. Terraneo Low level programming 7/ 1
8 Come accedere ai registri di periferica Metodo 1: Assumiamo che nel micrcontrollore che stiamo usando ci sia un registro a 32bit, chiamato IODIR0 all'indirizzo 0xe , e che vogliami scriverci zero. Come si fa? void clearreg() { (*((volatile unsigned int *) 0xe )) = 0; } Ok, un minimo di spiegazione, dato che il codice potrebbe non essere così intuitivo. Prima l'indirizzo viene castato a volatile unsigned int *, ossia un puntatore a un intero a 32bit. Poi il * sulla sinistra dereferenzia il puntatore. Inne, il valore zero viene scritto in quella locazione di memoria. Il volatile serve ad evitare ottimizzazioni del compilatore, come il reordering delle istruzioni, che possono creare problemi in quanto il compilatore non è a conoscenza dei side eect nel mondo reale causati dall'accesso ai registri di periferica. F. Terraneo Low level programming 8/ 1
9 Come accedere ai registri di periferica Per aumentare la leggibilità del codice, si può usare una macro come: #define IODIR0 (*((volatile unsigned short *) 0xe )) Così facendo, il codice può essere riscritto in questo modo void clearreg() { IODIR0 = 0; } Questo codice rende meglio l'idea di quello che sta succedendo, ossia l' assegnamento del valore zero al registro IODIR0. Inoltre, l'uso del nome simbolico del registro (IODIR0) invece che dell'indirizzo di memoria (0xE ) rende il codice self documenting in quanto per sapere cosa sta succedendo basta aprire il datasheet e cercare cosa fa il registro IODIR0. E` pratica comune raggruppare tutte le macro che danno nomi simbolici ai registri di periferica in un header, e usare una #include le.h in tutti i sorgenti che devono accedere alle periferiche. Ancor meglio, alcuni produttori di microcontrollori rendono disponibili degli header già pronti, da scaricare e includere nei propri progetti. F. Terraneo Low level programming 9/ 1
10 Come accedere ai registri di periferica Metodo 2: Raramente una periferica, come un ADC o una seriale, ha un solo registro. Il caso tipico è quello in cui ogni periferica viene controllata da un insieme di registri, che spesso sono mappati ad indirizzi di memoria consecutivi. Questo rende possibile raggrupparli in una struct, come questa struct GpioPeripheral { volatile unsigned int CRL; volatile unsigned int CRH; volatile unsigned int BSRR; volatile unsigned int BRR; }; #define GPIO ((struct GpioPeripheral *)0xfeeeaba0) La struct denisce in un sol colpo tutti i registri della periferica, mentre la macro da un nome self documenting ad un puntatore alla struct, mappato all'indirizzo corretto. F. Terraneo Low level programming 10/ 1
11 Come accedere ai registri di periferica Usando questo metodo il codice per azzerare il registro CRL della periferica GPIO è questo void clearreg() { GPIO->CRL = 0; } Non ci sono dierenze, neanche di performance tra i due metodi, entrambi portano allo stesso risultato. Alcuni produttori forniscono header con questa rappresentazione delle periferiche, altri con solo le macro, quindi è necessario conoscere entrambi i metodi. F. Terraneo Low level programming 11/ 1
12 Come accedere ai registri di periferica La gura mostra un tipico registro di periferica così come viene documentato nei datasheet. Tra le informazioni disponibili ci sono il nome del registro (REGEXAMPLE) e l'indirizzo del registro (0xE ). Come si può vedere ci sono tre bit leggibili e scrivibili (indicati come rw), e tre bit solo leggibili (r). Ci sono inne due bit inutilizzati. Una possibile rappresentazione in codice di questo registro può essere #define REGEXAMPLE (*((volatile unsigned char *) 0xe )) #define REGEXAMPLE_EN (0x01) #define REGEXAMPLE_CNF1 (0x02) #define REGEXAMPLE_CNF2 (0x04) #define REGEXAMPLE_FLAGA (0x10) #define REGEXAMPLE_FLAGB (0x20) #define REGEXAMPLE_FLAGC (0x40) La prima macro denisce il registro, le altre sono opzionali e servono per dare un nome anche ai bit all'interno del registro. F. Terraneo Low level programming 12/ 1
13 Come accedere ai registri di periferica Il fatto che all'interno di un registro ci siano più bit con funzioni indipendenti fa sorgere la necessità di alterare un singolo bit all'interno di un registro. Il codice per fare ciò non è dicile, ma può essere non poi così immediato la prima volta che lo si vede. Questo è un esempio di codice che setta a 1 il bit EN lasciando inalterati gli altri REGEXAMPLE = REGEXAMPLE_EN; Mentre questo è il codice per settare a 0 lo stesso bit REGEXAMPLE &= ~REGEXAMPLE_EN; Inne, il codice per testare se il bit FLAGA è a 1 è il seguente if(regexample & REGEXAMPLE_FLAGA) { [...] } Il trucco sta nell'usare le operazioni logiche di or ed and con una bitmask. F. Terraneo Low level programming 13/ 1
14 Esempio #1: GPIO del microcontrollore ATmega32 I GPIO sono una delle periferiche più semplici, il nome sta per General Purpose Input/Output e la loro funzione è quella di poter controllare il livello logico su dei piedini di un circuito integrato tramite software. La gura a destra mostra il microcontrollore ATmega328, quello usato nell'arduino. Come si può notare, ai lati ci sono due le da 14 contatti elettrici, detti piedini. Sulla sinistra è evidenziata la funzione di questi piedini. F. Terraneo Low level programming 14/ 1
15 Esempio #1: GPIO del microcontrollore ATmega32 A parte alcuni piedini necessari a formire l'alimentazione al microcontrollore (indicati con VCC, AVCC e GND), ed un piedino specico per l'adc (AREF), tutti gli altri sono usabili come GPIO. Caratteristiche dei GPIO sono congurabili in software come uscita, in questa modalità di funzionamento è possibile produrre sotto controllo software una tensione di uscita di zero Volt (livello logico 0), oppure una tensione pari a quella di alimentazione del microcontrollore, solitamente 5V o 3.3V (livello logico 1). La corrente che possono fornire è limitata, ma comunque suciente ad accendere un LED, oppure......sono congurabili come ingresso, in questa modalità è possibile leggere via software se la tensione ai loro capi è un livello logico 0 oppure 1. Sono raggruppati in porte, in modo da poter leggere/scrivere più GPIO contemporaneamente. Spesso le porte sono indicate con delle lettere, mentre i singoli GPIO all'interno delle porte con dei numeri. Quindi i GPIO hanno dei nomi come PA0, PA1, PB0, PB1. Le porte sono solitamente composte da 8, 16 o 32 GPIO. F. Terraneo Low level programming 15/ 1
16 Esempio #1: GPIO del microcontrollore ATmega32 In software, i GPIO sono visti come registri di periferica. Nell'ATmega32 ogni porta ha tre registri a 8bit: PORTx, PINx e DDRx. Quindi la porta B è accessibile tramite i registri PORTB, PINB e DDRB, mentre la porta C tramite PORTC, PINC e DDRC. All'interno di ogni registro ogni bit si riferisce a un singolo GPIO, quindi il bit 0 di PORTB, PINB e DDRB si riferiscono a PB0, mentre il bit 1 a PB1. Ok, quindi ci sono tre bit per GPIO, in tre distinti registri. Il loro signicato è il seguente, Se il bit 0 di DDRB è zero, PB0 è un ingresso. Leggendo in software il registro PINB, il bit 0 di tale registro consente di sapere le l'ingresso è a livello logico 0 oppure 1. Se il bit 0 di DDRB è uno, PB0 è un uscita. Scrivendo in software il registro PORTB, il bit 0 consente di decidere se generare un livello logico zero oppure uno. Queste considerazioni si applicano allo stesso modo anche agli altri 7 bit di DDRB/PORTB che controllano i GPIO PB1..PB7, e anche alle altre porte. F. Terraneo Low level programming 16/ 1
17 Esempio #1: GPIO del microcontrollore ATmega32 Un esempio di codice per far lampeggiare un LED su PB0 è il seguente #define F_CPU UL //Richiesto da delay.h #include <avr/io.h> //Definizioni dei registri di periferica #include <util/delay.h> //Funzione _delay_ms() int main() { DDRB=0x01; // b : PB0=uscita, tutti gli altri=ingresso for(;;) { PORTB = 0x01; //Setta il bit 0 di PORTB, uscita a livello 1 _delay_ms(500); PORTB &= ~0x01; //Resetta il bit 0 di PORTB, uscita a livello 0 _delay_ms(500); } } Da notare l'uso di = e &= introdotti prima, per alterare un solo bit. F. Terraneo Low level programming 17/ 1
18 Esempio #1: GPIO del microcontrollore ATmega32 In questo esempio invece PB1 è congurato come uscita, e il valore prodotto è il not logico del valore di PB0, congurato come ingresso. #include <avr/io.h> int main() { DDRB=0x02; // b : PB0=ingresso, PB1=uscita, tutti gli altri=ingresso for(;;) { if(pinb & 0x01) PORTB &= ~0x02; else PORTB = 0x02; } } Anche in questo caso è interessante notare l'uso di una bitmask nell'if per eettuare il check sul solo bit 0 di PINB. F. Terraneo Low level programming 18/ 1
19 Esempio #2: Timer 7 del microcontrollore STM32 Un timer è una periferica che genera eventi periodicamente. In genere questi eventi possono fare scattare degli interrupt. Un interrupt, è un evento hardware che porta la CPU a sospendere temporanemanete l'esecuzione del codice che stava eseguendo, e ad eseguire al suo posto una routine, detta ISR Interrupt Service Routine. Una volta conclusa l'isr la CPU riprende ad eseguire il codice precedente. Semplicando al massimo, un interrupt è uno strumento che consente all'hardware di chiamare una funzione (la ISR) scritta in un linguaggio di programmazione come il C. F. Terraneo Low level programming 19/ 1
20 Esempio #2: Timer 7 del microcontrollore STM32 Il microcontrollore STM32F100RB è dotato di più di un timer, l'esempio si concentra sul timer 7. Questo timer prende in ingresso la frequenza di clock della CPU, pari a 24MHz, e la divide per un numero congurabile tramite il registro PSC. La frequenza ottenuta viene poi usata per alimentare un contatore hardware. Questo contatore, accessibile tramite il registro CNT conta in avanti no a raggiungere un valore programmabile tramite un terzo registro, ARR. Quando ciò avviene il contatore viene azzerato, e viene generato un evento. Esiste inne un registro di controllo, CR1 il cui bit zero serve ad abilitare o meno il contatore, e un registro di gestione dell'interrupt (DIER) che consente di attivare o meno la generazione di un interrupt in seguito a un evento. F. Terraneo Low level programming 20/ 1
21 Esempio #2: Timer 7 del microcontrollore STM32 Questo è uno schema a blocchi di come funziona il timer 7 F. Terraneo Low level programming 21/ 1
22 Esempio #2: Timer 7 del microcontrollore STM32 Prima di continuare è necessario spiegare brevemente come dichiarare una routine di interrupt. I metodi più comuni sono 2 Occorre dichiarare una funzione con un nome specico, il compilatore riconosce che è un interrupt dal nome. Occorre salvare un puntatore alla funzione all'interno di un registro di periferica. L'STM32 utilizza il primo metodo, e la ISR del timer 7 si deve chiamare void TIM7_IRQHandler(); Dopo aver introdotto brevemente i timer e gli interrupt, nella prossima slide verrà mostrato un esempio di codice che fa lampeggiare un LED usando un timer. F. Terraneo Low level programming 22/ 1
23 Esempio #2: Timer 7 del microcontrollore STM32 #include "stm32f10x.h" void TIM7_IRQHandler() { TIM7->SR=0; static int status=0; if(status) ledon(); else ledoff(); status=1-status; } int main() { //Enable peripherals clock gating RCC->APB1ENR = RCC_APB1ENR_TIM7EN; } //Configure TIM7 TIM7->DIER=TIM_DIER_UIE; TIM7->PSC= ; TIM7->ARR=2400-1; TIM7->CNT=0; TIM7->CR1=TIM_CR1_CEN; //Enable TIM7 interrupts NVIC_SetPriority(TIM7_IRQn,10); NVIC_EnableIRQ(TIM7_IRQn); for(;;) ; F. Terraneo Low level programming 23/ 1
24 Esempio #2: Timer 7 del microcontrollore STM32 Il codice comincia includendo stm32f10x.h, l'header con la denizione dei registri di periferica. Poi c'è la routine di interrupt, che tramite una semplice statemachine a due stati accende/spegne il LED. Per semplicità si assume che esistano due funzioni ledon() e ledo() che si prendono cura di interagire coi registri dei GPIO. Il main() invece inizia con l'abilitare la periferica TIM7 (per ragioni di minimizzazione del consumo negli stm32 le periferiche sono tutte disattivate al boot. Poi congura il timer in modo da generare un interrupt ogni secondo, chiama due funzioni, NVIC_SetPriority() e NVIC_EnableIRQ() per congurare un'altra periferica non descritta qui, l'interrupt controller in modo da abilitare l'accettazione dell'interrupt. Inne entra in un loop innito, tanto la routine di interrupt sarà chiamata in automatico una volta al secondo. F. Terraneo Low level programming 24/ 1
25 Tool opensource per programmazione di microcontrollori GCC, il compilatore più usato sotto Linux è anche in grado di essere usato come crosscompilatore, ossia compilatore che gira su una macchina (ad esempio un PC) ma genera binari per una altra CPU (ad esempio quella di un micrcontrollore). E' possibile avere installato più di una istanza di GCC, per diverse architetture. Questo perchè le versioni di GCC per crosscompilazione sono contraddistinte da un presso, ad esempio avr-gcc è il GCC per AVR, mentre arm-eabi-gcc è il GCC per architettura ARM. GDB+OpenOCD, una combo molto usata per fare in circuit debugging, ossia poter eseguire il codice single step, mettere breakpoint e analizzare il contenuto delle variabili, il tutto mentre il codice sta girando sull'hardware vero e proprio, non in un simulatore. OpenOCD è orientato all'architettura ARM. Vari tool, come avrdude, stm32ash, versaloon etc. per poter ashare i microcontrollori, ossia trasferire un rmware, ossia un binario al loro interno. F. Terraneo Low level programming 25/ 1
26 Sessione live di in circuit debugging Se avanza tempo, sessione live di in circuit debugging. F. Terraneo Low level programming 26/ 1
27 Problem? F. Terraneo Low level programming 27/ 1
SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09
SISTEMI OPERATIVI Prof. Enrico Terrone A. S: 2008/09 Che cos è il sistema operativo Il sistema operativo (SO) è il software che gestisce e rende accessibili (sia ai programmatori e ai programmi, sia agli
Architettura hardware
Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione
A/D CON PIC 16F877. Sommario INTRODUZIONE... 2 SELEZIONARE I BANCHI... 2 ADCON0... 4 ADCS1, ADCS0... 4 CH2, CH1 E CH0... 5 GO/DONE... 6 ADON...
A/D CON PIC 16F877 Sommario INTRODUZIONE... 2 SELEZIONARE I BANCHI... 2... 4 ADCS1, ADCS0... 4 CH2, CH1 E CH0... 5 GO/DONE... 6 ADON... 7 ESEMPIO 1... 7 ADCON1... 8 ADFM... 8 PGF3, PGF1 E PGF0... 9 ESEMPIO
Introduzione a Dev-C++
Introduzione a Dev-C++ Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Note: Dev-C++ richiede Windows 95/98/NT/2000/XP
Dispensa di Informatica I.1
IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.
Introduzione alla programmazione in C
Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale
Arduino: Programmazione
Programmazione formalmente ispirata al linguaggio C da cui deriva. I programmi in ARDUINO sono chiamati Sketch. Un programma è una serie di istruzioni che vengono lette dall alto verso il basso e convertite
Laboratorio di Ingegneria del software Sistema di controllo di un ascensore Requisisti preliminari
Laboratorio di Ingegneria del software Sistema di controllo di un ascensore Requisisti preliminari A.A. 2012 2013 1 Introduzione Questo documento raccoglie i requisiti preliminari per il software di controllo
Chapter 1. Circuiti sequenziali: macchine a stati
Chapter 1 Circuiti sequenziali: macchine a stati Nella prima parte del corso ci siamo occupati dei circuiti combinatori. In un circuito combinatorio con un ouput Z funzione degli input X 1 ; : : : X n,
Ing. Paolo Domenici PREFAZIONE
Ing. Paolo Domenici SISTEMI A MICROPROCESSORE PREFAZIONE Il corso ha lo scopo di fornire i concetti fondamentali dei sistemi a microprocessore in modo semplice e interattivo. È costituito da una parte
Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli
CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per
LABORATORIO DI SISTEMI
ALUNNO: Fratto Claudio CLASSE: IV B Informatico ESERCITAZIONE N : 1 LABORATORIO DI SISTEMI OGGETTO: Progettare e collaudare un circuito digitale capace di copiare le informazioni di una memoria PROM in
Gestione di una UART SOFTWARE.
Corso di BASCOM 8051 - (Capitolo 3 1 ) Corso Teorico/Pratico di programmazione in BASCOM 8051. Autore: DAMINO Salvatore. Gestione di una UART SOFTWARE. Capita, a volte in alcune applicazioni, di avere
La memoria centrale (RAM)
La memoria centrale (RAM) Mantiene al proprio interno i dati e le istruzioni dei programmi in esecuzione Memoria ad accesso casuale Tecnologia elettronica: Veloce ma volatile e costosa Due eccezioni R.O.M.
Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.
Algoritmo Formalmente, per algoritmo si intende una successione finita di passi o istruzioni che definiscono le operazioni da eseguire su dei dati (=istanza del problema): in generale un algoritmo è definito
Il Sistema Operativo (1)
E il software fondamentale del computer, gestisce tutto il suo funzionamento e crea un interfaccia con l utente. Le sue funzioni principali sono: Il Sistema Operativo (1) La gestione dell unità centrale
Esame di INFORMATICA
Università di L Aquila Facoltà di Biotecnologie Esame di INFORMATICA Lezione 4 MACCHINA DI VON NEUMANN Anni 40 i dati e i programmi che descrivono come elaborare i dati possono essere codificati nello
COME PARLARE DI DISLESSIA IN CLASSE.
COME PARLARE DI DISLESSIA IN CLASSE. UNA METAFORA PER SPIEGARE I DSA La psicologa americana ANIA SIWEK ha sviluppato in anni di pratica professionale un modo semplice ed efficace di spiegare i DSA ai bambini,
Laboratorio di Architettura degli Elaboratori - A.A. 2012/13
Università di Udine - Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Informatica Laboratorio di Architettura degli Elaboratori - A.A. 2012/13 Circuiti logici, lezione 1 Sintetizzare
Gestione della memoria centrale
Gestione della memoria centrale Un programma per essere eseguito deve risiedere in memoria principale e lo stesso vale per i dati su cui esso opera In un sistema multitasking molti processi vengono eseguiti
Architetture Applicative
Alessandro Martinelli [email protected] 6 Marzo 2012 Architetture Architetture Applicative Introduzione Alcuni esempi di Architetture Applicative Architetture con più Applicazioni Architetture
Arduino UNO. Single board microcontroller
Arduino UNO Single board microcontroller Che cos è Arduino? Arduino è una piattaforma hardware basata su un microcontrollore, per lo sviluppo di applicazioni che possono interagire con il mondo esterno.
Esercizi su. Funzioni
Esercizi su Funzioni ๒ Varie Tracce extra Sul sito del corso ๓ Esercizi funz_max.cc funz_fattoriale.cc ๔ Documentazione Il codice va documentato (commentato) Leggibilità Riduzione degli errori Manutenibilità
TUTORIAL: COME USARE UN LM35 PER MISURARE UNA TEMPERATURA SU TUTTA LA SCALA CENTIGRADA
TUTORIAL: COME USARE UN LM35 PER MISURARE UNA TEMPERATURA SU TUTTA LA SCALA CENTIGRADA Molte persone (io compreso) che comprano la prima volta un LM35, lo fanno perché sono spinti da come sia facile da
1. opzione 1, ubuntu accanto a windows
INSTALLARE UBUNTU LINUX Per installare Ubuntu, si possono scegliere 3 diverse opzioni: 1. installazione accanto (o al posto) di windows 2. installazione all'interno di windows tramite Wubi 3. installazione
La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)
La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema
clock DATA BUS ADDRESS BUS CONTROL BUS In realtà il bus del microprocessore si compone di 3 bus diversi: Bus indirizzi Bus di controllo
Schede a microprocessore Seconda parte Mondo esterno clock MEMORIA CPU PERIFERICA ADATTATORE DATA BUS ADDRESS BUS CONTROL BUS In realtà il bus del microprocessore si compone di 3 bus diversi: Bus dati
Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.
Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell
Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.
Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella [email protected] Prestazioni Si valutano in maniera diversa a seconda dell
Sistema operativo. Sommario. Sistema operativo...1 Browser...1. Convenzioni adottate
MODULO BASE Quanto segue deve essere rispettato se si vuole che le immagini presentate nei vari moduli corrispondano, con buona probabilità, a quanto apparirà nello schermo del proprio computer nel momento
Visual basic base Lezione 01. L'ambiente di sviluppo
L'ambiente di sviluppo L'ambiente di sviluppo Visual basic è un linguaggio di programmazione Microsoft. In questo corso prenderemo in considerazione, l'ultima versione. net di questo linguaggio. Microsoft
introduzione I MICROCONTROLLORI
introduzione I MICROCONTROLLORI Definizione Un microcontrollore è un dispositivo elettronico programmabile Può svolgere autonomamente diverse funzioni in base al programma in esso implementato Non è la
EM3 SoftCom Software di comunicazione fra EM3 e PC Versione 2.019
EM3 SoftCom Software di comunicazione fra EM3 e PC Versione 2.019 Via Serraglio, 48 - Imola (BO) - Italy Tel. 0542 641770 - Fax 0542 641761 www.elcotronic.it - [email protected] Pagina 1 di 17 Pagina
Come masterizzare dischi con Nero 11
Come masterizzare dischi con Nero 11 Non c è dubbio che Nero è diventato un sinonimo di masterizzatore di dischi, data la lunga esperienza sul mercato. Molte persone pensano in questo programma nel momento
09-05-07. Introduzione ai microcontrollori PIC
09-05-07 Introduzione ai microcontrollori PIC Daniele Beninato: Nicola Trivellin: [email protected] [email protected] Che cosa è un microcontrollore? Un microcontrollore è un sistema a microprocessore
Corso di Sistemi di Elaborazione delle informazioni
Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi Francesco Fontanella Complessità del Software Software applicativo Software di sistema Sistema Operativo Hardware 2 La struttura del
C. P. U. MEMORIA CENTRALE
C. P. U. INGRESSO MEMORIA CENTRALE USCITA UNITA DI MEMORIA DI MASSA La macchina di Von Neumann Negli anni 40 lo scienziato ungherese Von Neumann realizzò il primo calcolatore digitale con programma memorizzato
Variabili e tipi di dato
Variabili e tipi di dato Tutte le variabili devono essere dichiarate, specificandone il tipo La dichiarazione deve precedere l uso Il tipo è un concetto astratto che esprime: L allocazione di spazio per
Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione
IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza
PLC Sistemi a Logica Programmabile Il linguaggi di programmazione
PLC Sistemi a Logica Programmabile Il linguaggi di programmazione Prof. Nicola Ingrosso Guida di riferimento all applicazione applicazione dei Microcontrollori Programmabili IPSIA G.Ferraris Brindisi nicola.ingrosso
Alla scoperta della nuova interfaccia di Office 2010
Alla scoperta della nuova interfaccia di Office 2010 Una delle novità più eclatanti della versione 2007 era la nuova interfaccia con la barra multifunzione. Office 2010 mantiene questa filosofia di interfaccia
CONCETTI BASE dell'informatica Cose che non si possono non sapere!
CONCETTI BASE dell'informatica Cose che non si possono non sapere! Pablo Genova I. I. S. Angelo Omodeo Mortara A. S. 2015 2016 COS'E' UN COMPUTER? È una macchina elettronica programmabile costituita da
Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011
Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Installazione SOFTWARE JDK ECLIPSE 03/03/2011 2 ALGORITMI E PROGRAMMI PROBLEMA ALGORITMO PROGRAMMA metodo risolutivo linguaggio di
Uso di base delle funzioni in Microsoft Excel
Uso di base delle funzioni in Microsoft Excel Le funzioni Una funzione è un operatore che applicato a uno o più argomenti (valori, siano essi numeri con virgola, numeri interi, stringhe di caratteri) restituisce
Corso di Informatica
Corso di Informatica Modulo T2 3-Compilatori e interpreti 1 Prerequisiti Principi di programmazione Utilizzo di un compilatore 2 1 Introduzione Una volta progettato un algoritmo codificato in un linguaggio
Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput
Valutazione delle Prestazioni Architetture dei Calcolatori (Lettere A-I) Valutazione delle Prestazioni Prof. Francesco Lo Presti Misura/valutazione di un insieme di parametri quantitativi per caratterizzare
Biblioteca di Cervia NOZIONI BASE DI INFORMATICA
Biblioteca di Cervia NOZIONI BASE DI INFORMATICA NOZIONI DI INFORMATICA Il PC è composto solitamente di tre parti principali: - Il Case, ovvero il contenitore del cuore del computer, da qui si accende
Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche
Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica
Laboratorio microcontrollori e open source Terza parte
Laboratorio microcontrollori e open source Terza parte Politecnico Open unix Labs 20 aprile 2012 POuL Laboratorio microcontrollori e open source Terza parte 1/ 43 Introduzione Per chi si è perso le prime
INFORMATICA 1 L. Mezzalira
INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello
Le Mappe di Karnaugh.
Le Mappe di Karnaugh. Introduzione Le mappe di Karnaugh rappresentano un metodo grafico-sistematico per la semplificazione di qualsiasi funzione booleana. Questo metodo si basa su poche regole e se applicate
Il database management system Access
Il database management system Access Corso di autoistruzione http://www.manualipc.it/manuali/ corso/manuali.php? idcap=00&idman=17&size=12&sid= INTRODUZIONE Il concetto di base di dati, database o archivio
GUIDA ALLE SOLUZIONI
Guida per Windows XP : Alcune periferiche USB ( Grabby, Aureon Dual USB, etc.. ) necessitano a volte di installare il driver Microsoft " USB Speakers " o per Windows 7 USB Audio, detto anche generic USB
IRSplit. Istruzioni d uso 07/10-01 PC
3456 IRSplit Istruzioni d uso 07/10-01 PC 2 IRSplit Istruzioni d uso Indice 1. Requisiti Hardware e Software 4 1.1 Requisiti Hardware 4 1.2 Requisiti Software 4 2. Installazione 4 3. Concetti fondamentali
Teoria delle code. Sistemi stazionari: M/M/1 M/M/1/K M/M/S
Teoria delle code Sistemi stazionari: M/M/1 M/M/1/K M/M/S Fabio Giammarinaro 04/03/2008 Sommario INTRODUZIONE... 3 Formule generali di e... 3 Leggi di Little... 3 Cosa cerchiamo... 3 Legame tra N e le
Vlan Relazione di Sistemi e Reti Cenni teorici
Cosa sono le Vlan? Vlan Relazione di Sistemi e Reti Cenni teorici Le Vlan sono un tipo di rete particolare che permettono di creare tante reti logiche a partire da una singola rete fisica. Questo significa
Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche
Input/Output n Grande varietà di periferiche gestiscono quantità di dati differenti a velocità diverse in formati diversi n Tutti più lenti della CPU e della RAM n Necessità di avere moduli di I/O Moduli
COMUNICAZIONE UTENTI SISTEMI-PROFIS INSTALLAZIONE GE.RI.CO. 2015 e PARAMETRI2015
COMUNICAZIONE UTENTI SISTEMI-PROFIS INSTALLAZIONE GE.RI.CO. 2015 e PARAMETRI2015 Vicenza, 3 giugno 2015 Gentile cliente, si ricorda che a partire dall aggiornamento PROFIS 2011.1 è stato automatizzato
FONDAMENTI di INFORMATICA L. Mezzalira
FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software
Registratore Dati Umidità e Temperatura
Manuale d'istruzioni Registratore Dati Umidità e Temperatura Modello RHT Introduzione Congratulazioni per aver acquistato questo Registratore Dati di Temperatura e Umidità. Con questo strumento, si possono
MERIDESTER SOFTWARE DI COMUNICAZIONE PER PC
MERIDESTER SOFTWARE DI COMUNICAZIONE PER PC Requisiti del sistema sistema operativo Windows XP o Vista processore Pentium 4 o equivalente RAM 512 Mb Video 1024x768 Porta USB USB 1.1 o 2.0 full speed Scheda
30 giorni di prova gratuiti, entra nel sito www.mypckey.com scarica e installa subito mypckey
DA OGGI NON IMPORTA DOVE SEI, IL TUO PC DELL UFFICIO E SEMPRE A TUA DISPOSIZIONE! Installa solo un semplice programma (nessun hardware necessario!), genera la tua chiavetta USB, e sei pronto a prendere
MESSA IN SCALA DI ALGORITMI DIGITALI
Ingegneria e Tecnologie dei Sistemi di Controllo Laurea Specialistica in Ingegneria Meccatronica MESSA IN SCALA DI ALGORITMI DIGITALI Cristian Secchi Tel. 0522 522235 e-mail: [email protected]
. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi
Capitolo Terzo Primi passi con Microsoft Access Sommario: 1. Aprire e chiudere Microsoft Access. - 2. Aprire un database esistente. - 3. La barra multifunzione di Microsoft Access 2007. - 4. Creare e salvare
ESERCITAZIONI PRATICHE: Ø Creazione di un decoder BCD/DEC con porte logiche. Ø Esercitazione con decoder 4511 e display 7 segmenti.
BCD 7 SEGMENTI Il display BCD 7 segmenti è un visualizzatore di numeri che possono andare da zero a nove, ed è un dispositivo optoelettrico, cioè fornisce luce all applicazione di tensione ai suoi capi.
INSTALLAZIONE DEL NUOVO SERVIZIO VPN VIRTUAL PRIVATE NETWORK (sistemi Windows e Android)
INSTALLAZIONE DEL NUOVO SERVIZIO VPN VIRTUAL PRIVATE NETWORK (sistemi Windows e Android) In questa guida trovi le istruzioni per installare il nuovo servizio di VPN su dispositivi con sistema operativo
Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)
Strutture Strutture e Unioni DD cap.10 pp.379-391, 405-406 KP cap. 9 pp.361-379 Strutture Collezioni di variabili correlate (aggregati) sotto un unico nome Possono contenere variabili con diversi nomi
STAMPA DI UNA PAGINA SEMPLICE
Pagina 11 copiati nel proprio sistema (disco fisso o floppy). Questa operazione è detta download o scaricamento. Il modo più semplice per effettuare un download di un file (a meno che non sia specificato
Acronis Universal Restore
Acronis Universal Restore MANUALE UTENTE Sommario 1 Che cos'è Acronis Universal Restore...3 2 Installazione di Acronis Universal Restore...3 3 Creazione di supporto di avvio...3 4 Utilizzo di Acronis Universal
Manuale di programmazione BerMar_Drive_Software
Invert er LG Manuale di programmazione BerMar_Drive_Software Mot ori elet t ric i Informazioni preliminari... 2 Installazione... 3 Avvio del programma... 4 Funzionamento Off-Line... 7 Caricamento di una
Reti sequenziali. Esempio di rete sequenziale: distributore automatico.
Reti sequenziali 1 Reti sequenziali Nelle RETI COMBINATORIE il valore logico delle variabili di uscita, in un dato istante, è funzione solo dei valori delle variabili di ingresso in quello stesso istante.
LA MOLTIPLICAZIONE IN CLASSE SECONDA
LA MOLTIPLICAZIONE IN CLASSE SECONDA Rossana Nencini, 2013 Le fasi del lavoro: 1. Proponiamo ai bambini una situazione reale di moltiplicazione: portiamo a scuola una scatola di biscotti (. ) e diamo la
Il Computer 1. A cosa serve un Computer? Scrivere, Calcolare, Disegnare, Giocare, Ricercare informazioni, Comprare
Il Computer 1 A cosa serve un Computer? Scrivere, Calcolare, Disegnare, Giocare, Ricercare informazioni, Comprare Com'è fatto Unità centrale All'interno si trovano tutti i componenti Monitor Tastiera Mouse
GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.
*+33(GLWRU GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. Il programma si basa su un architettura di tasti funzionali presenti
Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.
Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record
Guida rapida Vodafone Internet Box
Guida rapida Vodafone Internet Box Benvenuti nel mondo della connessione dati in mobilità di Vodafone Internet Box. In questa guida spieghiamo come installare e cominciare a utilizzare Vodafone Internet
EW1051 Lettore di schede USB
EW1051 Lettore di schede USB 2 ITALIANO EW1051 Lettore di schede USB Contenuti 1.0 Introduzione... 2 1.1 Funzioni e caratteristiche... 2 1.2 Contenuto della confezione... 2 2.0 Installazione del EW1051
Breve guida a Linux Mint
Breve guida a Linux Mint Il Desktop. Il "desktop" (scrivania) è la parte del sistema operativo che è responsabile per gli elementi che appaiono sul desktop: il Pannello, lo sfondo, il Centro di Controllo,
Corso Base Arduino ed Elettronica
Corso Base Arduino ed Elettronica Secondo incontro Saldatura e Relatore: Roberto Beligni [email protected] L'ambiente di sviluppo L'ambiente di sviluppo di Arduino (Chiamato IDE) facilita la
COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware COS È UN LINGUAGGIO? Un linguaggio è un insieme di parole e di metodi di combinazione delle
CAPITOLO 7 - SCAMBIO DI MESSAGGI
CAPITOLO 7 - SCAMBIO DI MESSAGGI Lo scambio di messaggi è una forma di comunicazione nel quale un processo richiede al sistema operativo di mandare dei dati direttamente ad un altro processo. In alcuni
Appunti sulla Macchina di Turing. Macchina di Turing
Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso
Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C
Università degli Studi di Cagliari Corso di Laurea in Ingegneria Biomedica (Industriale), Chimica, Elettrica, e Meccanica FONDAMENTI DI INFORMATICA 1 http://www.diee.unica.it/~marcialis/fi1 A.A. 2010/2011
Software per Helpdesk
Software per Helpdesk Padova - maggio 2010 Antonio Dalvit - www.antoniodalvit.com Cosa è un helpdesk? Un help desk è un servizio che fornisce informazioni e assistenza ad utenti che hanno problemi nella
Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione
Il sistema di I/O Hardware di I/O Interfacce di I/O Software di I/O Introduzione 1 Sotto-sistema di I/O Insieme di metodi per controllare i dispositivi di I/O Obiettivo: Fornire ai processi utente un interfaccia
Il calendario di Windows Vista
Il calendario di Windows Vista Una delle novità introdotte in Windows Vista è il Calendario di Windows, un programma utilissimo per la gestione degli appuntamenti, delle ricorrenze e delle attività lavorative
Office 2007 Lezione 02. Le operazioni più
Le operazioni più comuni Le operazioni più comuni Personalizzare l interfaccia Creare un nuovo file Ieri ci siamo occupati di descrivere l interfaccia del nuovo Office, ma non abbiamo ancora spiegato come
Lezione 4 La Struttura dei Sistemi Operativi. Introduzione
Lezione 4 La Struttura dei Sistemi Operativi Introduzione Funzionamento di un SO La Struttura di un SO Sistemi Operativi con Struttura Monolitica Progettazione a Livelli di un SO 4.2 1 Introduzione (cont.)
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16. Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16 Pietro Frasca Lezione 15 Martedì 24-11-2015 Struttura logica del sottosistema di I/O Processi
Architettura dei computer
Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore (CPU) la memoria principale (RAM) la memoria secondaria i dispositivi di input/output Il processore
Informatica - A.A. 2010/11
Ripasso lezione precedente Facoltà di Medicina Veterinaria Corso di laurea in Tutela e benessere animale Corso Integrato: Matematica, Statistica e Informatica Modulo: Informatica Esercizio: Convertire
PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1
PROGRAMMA GESTIONE TURNI MANUALE UTENTE INDICE 1 PREMESSA 3 2 COMANDI COMUNI 3 3 SEDI 3 4 FESTIVITÀ 4 5 PERIODI TURNI 4 6 COD. TURNI 6 7 TURNI SPORTIVI 9 8 COD. EQUIPAGGI 9 9 DISPONIBILITÀ 10 10 INDISPONIBILITÀ
Laboratorio di Informatica
per chimica industriale e chimica applicata e ambientale LEZIONE 4 - parte II La memoria 1 La memoriaparametri di caratterizzazione Un dato dispositivo di memoria è caratterizzato da : velocità di accesso,
Mon Ami 3000 Produzione interna/esterna Gestione della produzione interna/esterna
Mon Ami 3000 Produzione interna/esterna Gestione della produzione interna/esterna Introduzione Questa guida illustra tutte le funzioni e le procedure da eseguire per gestire correttamente un ciclo di produzione
