

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

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

**Importante**  <a name="deprecation-message-library"></a>
Essa biblioteca está hospedada no Amazon-FreeRTOS repositório que está obsoleto. Recomendamos [começar aqui](freertos-getting-started-modular.md) ao criar um novo projeto. Se você já tem um projeto FreeRTOS existente baseado no repositório agora Amazon-FreeRTOS obsoleto, consulte o. [Amazon-FreeRTOS Guia de migração do repositório Github](github-repo-migration.md)

**Visão geral**

Em geral, os drivers de dispositivo são independentes do sistema operacional subjacente e são específicos de uma determinada configuração de hardware. Uma camada de abstração de hardware (HAL) fornece uma interface comum entre drivers e código de aplicação de nível superior. A HAL abstrai os detalhes de como um driver específico funciona e fornece uma API uniforme para controlar esses dispositivos. Você pode usar as mesmas APIs para acessar vários drivers de dispositivo em placas de referência baseadas em múltiplos microcontroladores (MCU).

Os FreeRTOS [normalmente](https://docs.aws.amazon.com/freertos/latest/lib-ref/common-io/index.html) atuam como essa I/O camada de abstração de hardware. Ela fornece um conjunto de APIs padrão para acessar dispositivos seriais comuns em placas de referência compatíveis. Essas APIs comuns se comunicam e interagem com esses periféricos e permitem que seu código funcione entre plataformas. Sem o comum I/O, escrever código para funcionar com dispositivos de baixo nível é específico do fornecedor de silício.

**Periféricos compatíveis**
+ UART
+ SPI
+ I2C

**Recursos compatíveis**
+ Síncrono read/write — A função não retorna até que a quantidade solicitada de dados seja transferida. 
+ Assíncrono read/write — A função retorna imediatamente e a transferência de dados ocorre de forma assíncrona. Quando a ação for concluída, um retorno de chamada de usuário registrado é chamado.

**Específico do periférico**
+ I2C: combina várias operações em uma transação. Usado para realizar as ações de gravação e leitura em uma transação. 
+ SPI: transfere dados entre primário e secundário, o que significa que a gravação e a leitura ocorrem simultaneamente.

**Portabilidade**

Para obter mais informações, consulte o [Guia de portabilidade do FreeRTOS](https://docs.aws.amazon.com/freertos/latest/portingguide/).