Indice Generale. Indice Analitico... i. Software Design Kit 1



Documenti analoghi
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

I/O su Socket TCP: read()

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Blocchi funzione: FbModbusAsciiMs

Esercizio 2. Client e server comunicano attraverso socket TCP

Impostazione dell'indirizzo IP del dispositivo di autenticazione di Xerox Secure Access Unified ID System Carta bianca

Note applicative AN001: Driver ModBus

Gestione di una UART SOFTWARE.

Introduzione alla programmazione in C

ESERCIZI DI PROGRAMMAZIONE C IN AMBIENTE UNIX

Indruduzione... 1 Il modulo Bluetooth HC Il firmware... 3 Collegamento della scheda... 4 Software PC e l applicazione Android...

Controllo comunicazioni

PD32. Interfacciamento con i dispositivi di I/O (V)

MANUALE CONFIGURAZIONE ED UTILIZZO GATEWAY MBUS-MODBUS (RTU/TCP) MODELLO PiiGAB M900

USART PIC 16F876. R/W-0 R/W-0 R/W-0 R/W-0 U-0 R/W-0 R-1 R/W-0 CSRC TX9 TXEN SYNC _ BRGH TRMT TX9D Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0

10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress.

Gestione dei File in C

Kit A72 MANUALE DEL SOFTWARE TWIDO PER IL DISTACCO UTENZE (CEI 0-16 ALLEGATO M)

7.16 Funzioni ed FB gestione modem

Studio Legale. Guida operativa

Sincronizzazione e comunicazione tra processi in Unix. usati per trasferire ad un processo l indicazione che un determinato evento si è verificato.

I file di dati. Unità didattica D1 1

IPC System V. Code di messaggi

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

Manuale Terminal Manager 2.0

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Arduino: Programmazione

Reti di Calcolatori. Il software

J+... J+3 J+2 J+1 K+1 K+2 K+3 K+...

Prima di generare l ambiente di sicurezza occorre configurare le Opzioni di sistema seguendo i passi riportati di seguito:

Software di base. Corso di Fondamenti di Informatica

Blue s Hotel Pro Il software che hai sempre desiderato per il tuo Hotel!

Pronto Esecuzione Attesa Terminazione

FrerEnergy: PROGRAMMA PER LA SUPERVISIONE DEI CONSUMI DI ENERGIA ELETTRICA

Protocolli di Comunicazione Elettronica dei Sistemi Digitali L-A Università di Bologna, Cesena

per(il(corso(di(architetture(dei(sistemi(di(elaborazione(

ALBRE24R2M3A. Descrizione pagina 2. Specifiche tecniche pagina 3. Layout pagina 4, 5. Mappe di cablaggio pagine 6, 7. Dimensioni pagina 8

Maschere di sottorete a lunghezza variabile

Scheduling della CPU Introduzione ai Sistemi Operativi Corso di Abilità Informatiche Laurea in Fisica

Esercitazione n 4. Obiettivi

Il protocollo MODBUS. Il protocollo MODBUS Pag. 1 di 11

Ing. Paolo Domenici PREFAZIONE

ISTITUTO TECNICO INDUSTRIALE STATALE LA GESTIONE DEI FILE DI TESTO IN C++

Corso di Sistemi di Elaborazione delle informazioni

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Mercoledì 2 Marzo 2005, ore 14.30

Guida alla configurazione

OE-TL100 SOFTWARE PER RACCOLTA ORDINI MAGAZZINO

Arduino Quick Ethernet library Reference

Configurazione & Programmazione Profibus DP. in Ambiente Siemens TIA Portal

Java Virtual Machine

Capitolo 8 - Protocollo Modbus RTU per Drive SIRCO

1. INTRODUZIONE ETH-BOX

Architettura di un calcolatore

Sistemi operativi. Esempi di sistemi operativi

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 7 Febbraio 2005, ore 15.00

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Le variabili di Visual Basic consentono di memorizzare temporaneamente valori durante

Thread: sincronizzazione Esercitazioni del 09 Ottobre 2009

SMS API. Documentazione Tecnica YouSMS SOAP API. YouSMS Evet Limited

Collegamento al sistema

LABORATORIO DI SISTEMI

HTTP adaptation layer per generico protocollo di scambio dati

Guida rapida Vodafone Internet Box

Istruzioni per la configurazione di IziOzi

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

MODULO SMS MANUALE UTENTE PER KONNEXION COD. KNX-SMS VERSIONE 2.0.2

Il tuo manuale d'uso. SONY ERICSSON K530I

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

Altri tipi di connessione

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE

FONDAMENTI di INFORMATICA L. Mezzalira

HARDWARE. Relazione di Informatica

MANUALE D USO SAREMA SF1000

PHP e MySQL. Guida scaricata da

Modulo plug&play MKMB-3-e-3. Interfaccia Modbus/RTU per contatori Iskraemeco MT831 / MT860

Aruba Sign 2 Guida rapida


Manuale di programmazione BerMar_Drive_Software

Stampa questa pagina

DTW DECODER. Per la gestione del servizio SMS, bisogna agire tramite il pannello di controllo posto a bordo delle macchine di ispezione:

BOZZA. cin per la comunicazione dal dispositivo di input standard, la tastiera, al programma (stream di input standard)

MANUALE UTENTE Fiscali Free

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati

Contatore d impulsi S0

STRUTTURE DEI SISTEMI DI CALCOLO

ZFIDELITY - ZSE Software & Engineering Pag.1 / 11

GUIDA DELL UTENTE IN RETE

Progetto NoiPA per la gestione giuridicoeconomica del personale delle Aziende e degli Enti del Servizio Sanitario della Regione Lazio

Manuale Utente PEC e Client di Posta tradizionale

Capitolo Silberschatz

1. Manuale d uso per l interfaccia web di Gestione PEC2

LIVELLO DATA LINK (DI LINEA)

Drivers. Introduzione Tipologie Struttura Interazione con il kernel

CONFIGURARE IL DISPOSITIVO DI TELEASSISTENZA

GENERAZIONE ARCHIVIO F24 AGENZIA ENTRATE

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Alcune regole di base per scrivere un programma in linguaggio C

Transcript:

Indice Generale Capitolo 1 Guida alle API... 1 1.1 Task Scheduler...1 1.1.1 funzioni Task Scheduler... 2 1.2 Serial Virtual Channel 1... 15 1.2.1 funzioni Serial Virtual Channel 1... 17 1.3 Serial Virtual Channel 2... 30 1.3.1 funzioni Serial Virtual Channel 2... 32 1.4 File System Driver... 47 1.4.1 funzioni File System Driver... 49 1.5 EEprom Driver... 63 1.5.1 funzioni EEprom Driver... 63 1.6 Connessione PPP... 66 1.6.1 funzioni Connessione PPP... 66 1.7 Funzioni TCP... 67 1.7.1 funzioni TCP... 68 1.8 Controllo I/O... 80 1.8.1 funzioni Controllo I/O... 81 1.9 SPI Bus I/F... 85 1.9.1 funzioni SPI Bus I/F... 86 Indice Analitico... i Software Design Kit 1

Capitolo 1 Guida alle API 1.1 Task Scheduler I task che vengono utilizzati in un'applicazione creata con questo sistema, devono sottostare ad un vincolo funzionale, determinato dal fatto che il sistema è multitasking non preemptive. Questo significa che il task in esecuzione ha il pieno controllo della CPU, quindi finché questa non viene rilasciata, gli altri task non vengono eseguiti. Il controllo viene rilasciato al task scheduler al termine dell'esecuzione della funzione associata al task. Ad ogni task sono associati: 1 timer 4 signal 8 flags Nel modulo kerneluser.h sono stati definite gli indici che identificano i task utilizzabili dall'utente, per un massimo di otto, chiamati TASK_1, TASK_2,, TASK_8. Attenzione: Per l'utilizzo delle funzioni di seguito elencate all'interno di un'applicazione Customer è necessario includere il file kerneluser.h. Tabella 1: Funzioni Task Scheduler Nome Funzione create_task start_task end_task self_end self_modify get_taskid Crea un task assegnando un ID specifico Crea un task assegnando il primo ID disponibile Termina il task associato all'id specificato Termina il task che ha chiamato la funzione Cambia il puntatore alla funzione del task che ha chiamato la funzione Ritorna l'identificativo assegnato al task chiamante Software Design Kit 1

Tabella 1: Funzioni Task Scheduler Nome Funzione start_timer stop_timer timer_expired timer_running get_timer signal get_signals get_selsignals read_signals set_flags clr_flags get_flags wait wait_switch task_switch Carica il timer del task con il valore di tempo specificato Ferma il timer del task Controlla se il timer associato al task è scaduto Controlla se il timer associato al task è attivo Ritorna il valore corrente del timer associato al task Viene settato uno dei quattro signal del task specificato Legge lo stato delle signal del task che ha chiamato la funzione Legge lo stato delle signal specificate relative al task che ha chiamato la funzione Legge lo stato delle signal del task che ha chiamato la funzione senza resettarle Setta uno degli otto flag del task specificato Resetta uno degli otto flag del task specificato Legge lo stato dei flag del task specificato Richiede di porre il task in uno stato di attesa, che verrà attuato al rilascio del controllo al task scheduler, e sbloccato da un'evento Richiede di porre il task in uno stato di attesa, che verrà attuato immediatamente con il rilascio del controllo al task scheduler, e sbloccato da un'evento Rilascia il controllo al task scheduler 1.1.1 funzioni Task Scheduler create_task unsigned char create_task ( unsigned char task_idx, funcptr activity_entry_point, unsigned cstacksize ) Crea un task assegnando un ID specifico. Software Design Kit 2

task_id unsigned char L'ID del task di cui settare il flag flag unsigned char Indica quale degli otto flag deve essere settato. I singoli flag sono definiti come: FLAG_0 FLAG_1 FLAG_2 FLAG_3 FLAG_4 FLAG_5 FLAG_6 FLAG_7 Ogni task possiede otto flags. clr_flags void clr_flags ( unsigned char task_id, unsigned char flags ) Resetta uno degli otto flag del task specificato. task_id unsigned char L'ID del task di cui settare il flag flag unsigned char Indica quale degli otto flag deve essere settato. I singoli flag sono definiti come: FLAG_0 FLAG_1 FLAG_2 FLAG_3 FLAG_4 FLAG_5 FLAG_6 FLAG_7 Software Design Kit 11

Ogni task possiede otto flags. get_flags unsigned char get_flags ( unsigned char task_id ) Legge lo stato dei flag del task specificato. task_id unsigned char L'ID del task di cui leggere lo stato dei flags Valore ritornato unsigned char La maschera di stato dei flags del task NESSUNA wait void wait ( unsigned char event,unsigned timeout ) Richiede di porre il task in uno stato di attesa, che verrà attuato al rilascio del controllo al task scheduler, e sbloccato da un'evento. Software Design Kit 12

event unsigned char Maschera degli eventi che sbloccano il task. Gli eventi configurabili sono: TOUT_EV 0x01 SIG_EV 0x02 timeout unsigned L'intervallo di tempo di attesa associato all'evento TOUT_EV (timeout event) La funzione di wait non ha un'effetto immediato, ma viene attivata al termine della funzione che il task sta eseguendo. wait_switch void wait_switch ( unsigned char event, unsigned timeout ) Richiede di porre il task in uno stato di attesa, che verrà attuato immediatamente con il rilascio del controllo al task scheduler, e sbloccato da un'evento. event unsigned char Maschera degli eventi che sbloccano il task. Gli eventi configurabili sono: TOUT_EV 0x01 SIG_EV 0x02 timeout unsigned L'intervallo di tempo di attesa associato all'evento TOUT_EV (timeout event) La funzione di wait_switch ha un'effetto immediato, sospende il task e rilascia il controllo al task scheduler. L'esecuzione del task verrà riattivata al verificarsi dell'evento specificato nella chiamata. Software Design Kit 13

task_switch void task_switch ( void ) Rilascia il controllo al task scheduler. Normalmente viene utilizzata all'interno di cicli di controllo che attendono che si verifichi un evento specifico. Esempio a) Int ModemRun; attivo // Flag che identifica che il modem è while ( ModemRun ) task_switch(); // Finchè il modem è attivo interrompe l'esecuzione della funzione Scheduler Esempio b) int Connection; // rilasciando il controllo al Task // Flag di stato connessione PPP start_timer( kmin );//Attiva un timer di un minuto do { //Controlla durante questo minuto if ( getpppstate() & PPPLINK_UP ) // se la connessione è andata attiva { Connection = 0N;//Setta il flag di connessione attiva break; //Esce dal ciclo di controllo } task_switch(); Scheduler //Rilascia il controllo al Task } while (!( getpppstate() & PPPLINK_UP ) &&!timer_expired() ); Software Design Kit 14

// Continua ad effettuare il ciclo di controllo finché la connessione non è attiva ed il timeout non è scaduto. sleep_switch void sleep_switch(unsigned timeout, unsigned char trigs) Richiede di porre il task in uno stato di attesa, che verrà attuato immediatamente con il rilascio del controllo al task scheduler, e sbloccato dagli eventi specificati, o dallo scadere del timeout impostato. timeout unsigned Il tempo durante il quale il task resta in stato dormiente trigs unsigned char La maschera per il controllo dei SIGNALS che sbloccano il task La funzione di sleep_switch ha un' effetto immediato, sospende il task e rilascia il controllo al task scheduler. L'esecuzione del task verrà riattivata al verificarsi degli eventi specificati nella maschera trigs. 1.2 Serial Virtual Channel 1 Modulo che consente al codice customer di colloquiare con l'interprete comandi AT del modem. Il Serial Virtual Channel 1 è un canale virtuale e risulta essere sempre aperto. Prevede due buffer circolari; uno di ricezione ed uno di trasmissione tramite il quale è possibile inviare comandi e ricevere risposte dalle altre applicazioni di basso livello. L'impostazione di questo canale di comunicazione per convenzione ha le seguenti caratteristiche (non modificabili dalla customer application): Velocità: 9600 bps Lunghezza: 8 bits Parità: Nessuna Stop Bit:1 Software Design Kit 15

Attenzione: Per l'utilizzo delle funzioni di seguito elencate all'interno di un'applicazione Customer è necessario includere il file VSC1.h. Le funzioni per la gestione di questo virtual channel a disposizione sono le seguenti: Tabella 2: Funzioni Serial Virtual Channel 1 Nome Funzione VSC1_Puts VSC1_PutsP VSC1_Putc VSC1_Write VSC1_Printf VSC1_ClearTx VSC1_ClearRx VSC1_TxEmpty VSC1_RxEmpty VSC1_Getch VSC1_TxCount VSC1_TxSize VSC1_RxCount VSC1_RxSize VSC1_Read VSC1_Dtr VSC1_Rts VSC1_GetDtr VSC1_GetRts VSC1_Dsr VSC1_Dcd VSC1_Ri VSC1_Cts Invia il contenuto di una stringa nel buffer circolare di trasmissione Invia il contenuto di una stringa presente in Flash nel buffer circolare di trasmissione Invia il contenuto di un byte sulla porta DTE esterna Invia il contenuto di un pacchetto di bytes sulla porta DTE esterna Invia il contenuto di una stringa formattata nel buffer circolare di trasmissione Flush del buffer circolare di trasmissione Flush del buffer circolare di ricezione Verifica se il buffer circolare di trasmissione è vuoto Verifica se il buffer circolare di ricezione è vuoto Preleva l'ultimo carattere presente nel buffer di ricezione e aggiorna l'indice di ricezione stesso Verifica se il buffer di trasmissione circolare è vuoto oppure contiene ancora dei dati da trasmettere Calcola il numero di bytes ancora inseribili nel buffer di trasmissione Verifica se il buffer di ricezione circolare è vuoto oppure contiene ancora dei dati Calcola il numero di bytes ancora ricevibili nel buffer di ricezione Lettura di un pacchetto di dati presenti nel buffer circolare di ricezione Modifica lo stato del DTR Modifica lo stato dell'rts Verifica lo stato del DTR Verifica lo stato del RTS Verifica lo stato del DSR Verifica lo stato del DCD Verifica lo stato dell'ri Verifica lo stato del CTS Software Design Kit 16

uiaddress Word Indirizzo in EEprom del byte che si vuole leggere Byte Valore ritornato Ritorna il valore presente in EEprom NESSUNA EEread Byte EEread ( Word addr, Byte *pb, Word len ) Lettura di uno o più bytes contigui dall'eeprom a partire dall'indirizzo specificato. addr Word Indirizzo in EEprom da cui si vuole partire a leggere pb Byte * Puntatore al buffer in cui inserire i bytes letti dall'eeprom len Word Numero di bytes da leggere Byte Valore ritornato Ritorna True a lettura eseguita NESSUNA EEput void EEput ( Word uiaddress, Byte cvalue ) Software Design Kit 64

PortD0 Byte Configura il modo di funzionamento del segnale associato al bit 0 PortD1 Byte Configura il modo di funzionamento del segnale associato al bit 1 Byte Valore ritornato Ritorna True se l'operazione ha avuto esito positivo Ritorna False se l'operazione ha avuto esito negativo Per configurare i due segnali nel modo desiderato utilizzare le costanti, IO_LINE_FOR_WRITE e IO_LINE_FOR_READ. IO_Read Char IO_Read ( void ) Legge lo stato dei due bit di I/O presenti nel registro di direzione della porta di I/O (DDRD). Char Valore ritornato Ritorna il valore letto dal registro se l'operazione ha avuto esito positivo Ritorna -1 se l'operazione ha avuto esito negativo Ritorna lo stato del bit 0 e del bit 1 del registro di direzione della porta di I/O. Software Design Kit 84

IO_Write Char IO_Write ( Byte mask, Byte data ) Permette la scrittura dei due bit di I/O presenti nel registro di direzione della porta di I/O (DDRD). mask Byte Maschera che identifica su quale/i bit effettuare l'operazione data Byte Dato da scrivere Char Valore ritornato Ritorna 0 se l'operazione ha avuto esito positivo Ritorna un valore < 0 se l'operazione ha avuto esito negativo Se la funzione ha esito negativo il valore ritornato può assumere i seguenti valori: - 1 = problemi nella scrittura del bit 0-2 = problemi nella scrittura del bit 1-3 = problemi nella scrittura di entrambi i bit di I/O - 4 = linee utilizzate per IIC Bus 1.9 SPI Bus I/F Funzioni orientate alla gestione della periferica SPI. Nel caso si voglia utilizzare la periferica SPI integrata nel microcontrollore per pilotare un dispositivo esterno, è necessario disporre di un segnale di output per gestire il corretto funzionamento della stessa, in considerazione del fatto che la periferica SPI viene anche utilizzata per accedere alla dataflash interna. Esistono due segnali utilizzabili per questa funzione: SS (Slave Select) Uno dei due segnali di I/O disponibili configurato come Output L'altro segnale di I/O a disposizione può essere configurato come Input o come Output a seconda delle necessità dell'applicazione. Software Design Kit 85

Indice Analitico Indice Analitico A API 1 C closedir 61 clr_flags 11 Connessione PPP 66 funzioni 66 Controllo I/O 80 funzioni 80, 81 create_task 2 E EEget 63 EEPROM Driver 63 funzioni 63 EEput 64 EEread 64 EEuser.h 63 EEwrite 65 end_task 4 F ffclose 51 ffdelete 52 ffeof 58 ffget 53 ffileuser.h 48 ffindfile 62 ffinit 49 ffmove 52 ffopen 50 fformat 49 ffput 53 ffputs 54 ffread 54 ffreespace 62 ffseek 56 ffsize 58 fftell 57 ffwrite 55 File System Driver 47 funzioni 48, 49 Funzioni Connessione PPP getpppstate PPPclose PPPopen Funzioni Controllo I/O IIC_Open IIC_Read IIC_Write IO_Open IO_Read IO_Write Funzioni EEPROM Driver EEget EEput EEread EEwrite Funzioni File System Driver closedir ffclose ffdelete ffeof ffget ffindfile ffinit ffmove ffopen fformat ffput ffputs ffread ffreespace ffseek ffsize fftell ffwrite opendir readdir readwdir Funzioni Serial Virtual Channel 1 VSC1_ClearRx VSC1_ClearTx Software Design Kit i

Indice Analitico VSC1_Cts VSC1_Dcd VSC1_Dsr VSC1_Dtr VSC1_ExecutingCommand VSC1_Getch VSC1_GetRts VSC1_Printf VSC1_Putc VSC1_Puts VSC1_PutsP VSC1_Read VSC1_Ri VSC1_Rts VSC1_RxCount VSC1_RxEmpty VSC1_RxSize VSC1_TxCount VSC1_TxEmpty VSC1_TxSize VSC1_Write Funzioni Serial Virtual Channel 2 VSC2_ClearRx VSC2_ClearTx VSC2_Close VSC2_Cts VSC2_Dcd VSC2_Dsr VSC2_Dtr VSC2_Getch VSC2_GetCts VSC2_GetDcd VSC2_GetDsr VSC2_GetRi VSC2_Open VSC2_Printf VSC2_Putc VSC2_Puts VSC2_PutsP VSC2_Read VSC2_Ri VSC2_Rts VSC2_RxCount VSC2_RxEmpty VSC2_RxSize VSC2_TxCount VSC2_TxEmpty VSC2_TxSize VSC2_Write Funzioni SPI Bus I/F SPI_ClkPulse SPI_Close SPI_DisableSS SPI_EnableSS SPI_Open SPI_Read SPI_Write Funzioni Task Scheduler clr_flags create_task end_task get_flags get_selsignals get_signals get_taskid get_timer read_signals self_modify self_task set_flags signal sleep_switch start_task start_timer stop_timer task_switch timer_expired timer_running wait wait_switch Funzioni TCP TCPabort TCPABreadIn TCPactiveOpen TCPbufferFlush TCPbufferSpace TCPclose TCPfindSocket TCPget TCPlistenPort TCPpassiveOpen TCPread TCPreadIn TCPsend TCPsend_P TCPsize TCPstop G get_flags 12 get_selsignals 9 get_signals 8 get_taskid 5 get_timer 7 Software Design Kit ii