Amazon FreeRTOSにCommon IO Librariesというものが追加されたようですね(昨年の年末のことだったようです)

こんにちは。NoMaYです。

Amazon FreeRTOSに共通 I/O ライブラリというものが追加されたようですね。([追記]昨年の年末のことだったようです。) Arduinoやmbed OSがC++言語ベースのAPI関数であるのに対して、こちらは(良くも悪くも?)C言語ベースのAPI関数の筈ですね。

共通 I/O ライブラリの移植
docs.aws.amazon.com/ja_jp/freertos/latest/portingguide/freertos-porting-commonio.html

FreeRTOS 共通 I/O は、ハードウェア抽象化レイヤーとして機能します。一連の標準 API が用意されているため、サポートされているリファレンスボード間で共通のシリアルデバイスにアクセスできます。これらの API は、一般的な周辺機器と通信、相互作用し、アプリケーションがプラットフォーム間でコードを機能させることを可能にします。共通 I/O がない場合、低レベルのデバイスで動作するために必要なコードは、シリコンベンダー固有です。

サポートされている周辺機器
・UART
・SPI
・I2C

サポートされている機能

・同期読み取り/書き込み – リクエストされた量のデータが転送されるまで、関数は返されません。
・非同期読み取り/書き込み – 関数はすぐに返され、データ転送は非同期的に行われます。関数の実行が完了すると、登録ユーザーのコールバックが呼び出されます。

周辺機器に固有

・I2C – 複数のオペレーションを 1 つのトランザクションに結合します。通常、1 つのトランザクションで書き込みと読み取りのオペレーションを行います。
・SPI – プライマリとセカンダリの間でデータを転送します。つまり、書き込みと読み取りのオペレーションが同時に行われます。


[補足]

C言語ベースのAPI関数ということではLinux FoundationのZephyrもそうですね。

Zephyr
www.zephyrproject.org/