

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à.

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

**Importante**  <a name="deprecation-message-library"></a>
Questa libreria è ospitata nel repository Amazon-FreeRTOS che è obsoleto. Ti consigliamo di [iniziare da qui quando crei un nuovo progetto](freertos-getting-started-modular.md). Se disponi già di un progetto FreeRTOS esistente basato sull'ormai obsoleto repository Amazon-FreerTOS, consulta il. [Guida alla migrazione del repository Github di Amazon-FreeRTOS](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. Puoi utilizzarlo per accedere APIs a vari driver di dispositivo su più schede di riferimento basate su microcontrollori (MCU).

L'I/O [comune di FreerTOS](https://docs.aws.amazon.com/freertos/latest/lib-ref/common-io/index.html) funge da livello di astrazione hardware. Fornisce un set di standard APIs per l'accesso ai dispositivi seriali comuni sulle schede di riferimento supportate. Questi comuni APIs comunicano e interagiscono con queste periferiche e consentono al codice di funzionare su più piattaforme. Senza I/O comune, la scrittura di codice per funzionare con dispositivi di basso livello è specifico dei fornitori di componenti.

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

**Funzionalità supportate**
+ Lettura/scrittura sincrona: la funzione non ritorna finché non viene trasferita la quantità di dati richiesta. 
+ Lettura/scrittura asincrona: 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/).