

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Comune I/O
<a name="common-io"></a>

**Importante**  <a name="deprecation-message-library"></a>
Questa libreria è ospitata nel Amazon-FreeRTOS repository che è obsoleto. Ti consigliamo di [iniziare da qui](freertos-getting-started-modular.md) quando crei un nuovo progetto. Se hai già un progetto FreerTOS esistente basato sul repository ora obsoleto, Amazon-FreeRTOS consulta il. [Amazon-FreeRTOS Guida alla migrazione del repository Github](github-repo-migration.md)

**Panoramica**

In generale, i driver dei dispositivi sono indipendenti dal sistema operativo sottostante e sono specifici per una determinata configurazione hardware. Un HAL (Hardware Abstraction Layer) fornisce un'interfaccia comune tra driver e codice applicativo di livello superiore. L'HAL estrae i dettagli del funzionamento di un driver specifico e fornisce un'API uniforme per controllare tali dispositivi. È possibile utilizzare le stesse API per accedere a vari driver di dispositivo attraverso schede di riferimento basate su più microcontroller (MCU).

[FreerTOS](https://docs.aws.amazon.com/freertos/latest/lib-ref/common-io/index.html) funge I/O comunemente da livello di astrazione hardware. Fornisce un set di API standard per l'accesso a dispositivi seriali comuni su schede di riferimento supportate. Queste API comuni comunicano e interagiscono con queste periferiche e consentono al codice di funzionare tra le piattaforme. Se non è comune I/O, scrivere codice per funzionare con dispositivi di basso livello è qualcosa di specifico del fornitore di silicio.

**Periferiche supportate**
+ UART
+ SPI
+ I2C

**Funzionalità supportate**
+ Sincrona read/write : la funzione non viene restituita finché non viene trasferita la quantità di dati richiesta. 
+ Asincrono read/write: la funzione ritorna immediatamente e il trasferimento dei dati avviene in modo asincrono. Al termine dell'operazione, viene richiamato un callback utente registrato.

**Specifico delle periferiche**
+ I2C: combina più operazioni in un'unica transazione. Utilizzato per eseguire operazioni di scrittura e quindi di lettura in una transazione. 
+ SPI: trasferimento di dati tra primario e secondario, il che significa che la scrittura e la lettura avvengono contemporaneamente.

**Portabilità**

Per ulteriori informazioni, consulta la [FreerTOS Porting Guide](https://docs.aws.amazon.com/freertos/latest/portingguide/).