

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# FreeRTOS 共通 IO API
<a name="freertos-common-io"></a>

共通 IO API は、ドライバーと上位レベルのアプリケーションコード間の共通のインターフェイスを提供するハードウェア抽象化レイヤー (HAL) として機能します。FreeRTOS Common IO は、サポートされているリファレンスボード上の共通シリアルデバイスにアクセスするための標準 API セットを提供します。これらの API の実装は含まれていません。これらの共通 API は、これらの周辺機器と通信、相互作用し、プラットフォーム間でコードを機能させることができます。共通 IO がない場合、低レベルデバイスで動作するコードの記述は、シリコンベンダー固有です。

**注記**  
FreeRTOS は、機能するために Common IO API の実装を必要としませんが、ベンダー固有の API の代わりに、マイクロコントローラーベースのボード上の特定の周辺機器とインターフェイスする方法として Common IO API を使用しようとします。

一般に、デバイスドライバーは基盤となるオペレーティングシステムに依存せず、特定のハードウェア構成に固有です。HAL は、特定のドライバーの動作の詳細を抽象化し、そのようなデバイスを制御するための統一された API を提供します。同じ API を使用して、複数のマイクロコントローラー (MCU) ベースのリファレンスボード間でさまざまなデバイスドライバーにアクセスできます。

## ライブラリ
<a name="freertos-common-io-libraries"></a>

現在、FreeRTOS は、共通 IO - ベーシックと共通 IO - BLE の 2 つの共通 IO ライブラリを提供しています。

### 共通 IO - ベーシック
<a name="freertos-common-io-libraries-basic"></a>

*概要*  
[共通 IO - ベーシック](https://aws.github.io/common-io-basic/)は、MCU ベースのボードに搭載されている基本的な I/O 周辺機器や機能を処理する API を提供します。共通 IO - ベーシックのリポジトリは [GitHub](https://github.com/aws/common-io-basic) で公開されています。

*サポートされている周辺機器*  
+ ADC
+ GPIO
+ I2C
+ PWM
+ SPI
+ UART
+ Watchdog
+ Flash
+ RTC
+ EFUSE
+ Resets
+ I2S
+ パフォーマンスカウンター
+ ハードウェアプラットフォーム情報

*サポートされている機能*  
+ 同期読み取り/書き込み

  要求された量のデータが転送されるまで、関数は戻りません。
+ 非同期読み取り/書き込み

  関数はすぐに戻り、データ転送は非同期的に行われます。アクションが完了すると、登録されたユーザーコールバックが呼び出されます。

*周辺機器固有*  
+ I2C

  複数のオペレーションを 1 つのトランザクションに結合します。1 つのトランザクションで書き込みおよび読み取りアクションを実行するために使用されます。
+ SPI

  プライマリとセカンダリの間でデータを転送します。つまり、書き込みと読み取りが同時に行われます。

*API リファレンス*  
完全な API リファレンスについては、「[Common IO - basic API reference](https://aws.github.io/common-io-basic/)」をご覧ください。

### 共通 IO - BLE
<a name="freertos-common-io-libraries-BLE"></a>

*概要*  
共通 IO - BLE は、製造元の Bluetooth Low Energy スタックからの抽象化を提供します。デバイスの制御、GAP および GATT 操作の実行に使用できる以下のインターフェイスを提供します。共通 IO - BLE のリポジトリは [GitHub](https://github.com/aws/common-io-ble) で公開されています。

*Bluetooth デバイスマネージャー:*  
Bluetooth デバイスの制御、デバイス検出操作、その他の接続関連タスクを実行するためのインターフェイスを提供します。

*BLE アダプターマネージャー:*  
BLE 固有の GAP API 関数のインターフェイスを提供します。

*Bluetooth クラシックアダプターマネージャー:*  
デバイスの BT クラシック機能を制御するためのインターフェイスを提供します。

*GATT サーバー:*  
Bluetooth GATT サーバー機能を使用するためのインターフェイスを提供します。

*GATT クライアント:*  
Bluetooth GATT クライアント機能を使用するためのインターフェイスを提供します。

*A2DP 接続インターフェイス:*  
ローカルデバイスの A2DP ソースプロファイル用のインターフェイスを提供します。

*API リファレンス*  
完全な API リファレンスについては、「[Common IO - BLE API reference](https://aws.github.io/common-io-ble/)」をご覧ください。

## Amazon 共通ソフトウェア用の共通 IO
<a name="freertos-common-io-acs"></a>

共通 IO API は、[デバイス用 Amazon 共通ソフトウェア](https://developer.amazon.com/acs-devices)に必要な実装の一部であり、特にベンダーのデバイス移植キット (DPK) に実装する必要があります。

### ACS とは
<a name="freertos-common-io-acs-what"></a>

デバイス用 Amazon 共通ソフトウェア (ACS) は、Amazon デバイス SDK をデバイスにすばやく統合できるようにするソフトウェアです。ACS は、接続、デバイス移植キット (DPK)、多層テストスイートなどの一般的な機能のための、統一された API 統合レイヤー、事前検証済みでメモリ効率の高いコンポーネントを提供します。

### 認定プログラム
<a name="freertos-common-io-acs-qualification"></a>

「[Amazon Common Software for Devices](https://developer.amazon.com/acs-devices)」の認定プログラムでは、特定のマイクロコントローラーベースの開発ボード上で動作する ACS DPK (Device Porting Kit) のビルドが、プログラムが公開しているベストプラクティスと互換性があり、認定プログラムで指定された ACS が義務付けているテストに合格できるほど堅牢であることを検証します。

このプログラムの対象となるベンダーは、「[ACS Chipset Vendors](https://developer.amazon.com/avs-silicon-vendors)」のページに記載されています。

認定の詳細については、「[ACS for Devices](https://developer.amazon.com/acs-devices)」を参照してください。