このプロジェクトについて
TinyUSBは、組み込みシステム向けのオープンソース・クロスプラットフォームUSBホスト/デバイススタックです。メモリ安全性(動的メモリ割り当てなし)とスレッド安全性(すべての割り込みを非ISRタスク関数に遅延)を重視し、50以上のMCUファミリにわたる移植性、小さなフットプリント、リアルタイム性能を強調しています。
主な機能には、ISRイベント用の中央キューによるスレッドセーフな動作、動的メモリ割り当てなしの静的バッファ、多くのMCUファミリへの移植性、CDC、HID、MSC、Audio、ホスト機能のサポートが含まれます。ベアメタル、FreeRTOS、RT-Thread、Mynewtで動作します。
リポジトリ構成には、ドキュメント、makeおよびcmakeビルドシステムを備えた例、ハードウェアBSPおよびMCUドライバ、サードパーティライブラリ、スタックソース、テスト(ユニット、ファジング、ハードウェア)、内部ツールが含まれます。
デバイススタックは、動的USBディスクリプタによる複数設定、サスペンド、レジューム、リモートウェイクアップなどの低電力機能、Audio 1.0/2.0、BTH HCI、CDC、DFU、HID、Printer、複数LUN対応MSC、MIDI、MTP/PTP、RNDIS/ECM/NCMネットワーク、USBTMC、UVC(開発中)、ベンダー固有クラス、WebUSBなどのクラスをサポートします。カスタムクラスドライバはusbd_app_driver_get_cb()で追加できます。
ホストスタックは、CDC-ACM、ベンダーシリアルover USB(FTDI、CP210x、CH34x、PL2303)、HID、MSC、MIDI、マルチレベルハブをサポートします。カスタムホストドライバはusbh_app_driver_get_cb()で追加できます。
電力供給スタック(USB Type-C対応PD3.0)は非常に初期段階にあり、テスト目的のみで、STM32 G4でのみ利用可能です。
OS抽象化レイヤーはすべてのISRイベントを中央キューにプッシュし、非ISRコンテキストで処理し、共有リソースにはセマフォ/ミューテックスを使用します。サポートされるOSにはNo OS、FreeRTOS、RT-Thread、Mynewtが含まれます。
サポートされるCPUは、Allwinner、Analog、Artery AT32、Bridgetek、Broadcom、Dialog、Espressif、Geehy、GigaDevice、HPMicro、Infineon、MicroChip、MindMotion、NordicSemi、Nuvoton、NXP、Puya、Raspberry Pi、Renesas、Silabs、Sony、ST STM32、TI、ValentyUSB、WCHなど多くのメーカーにわたり、デバイス、ホスト、高速モードのサポートはそれぞれ異なります。
無償提供される開発ツールには、IAR Build Tools、JetBrains CLion、PVS-Studio静的解析ツールが含まれます。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.