SSブログ

macOSからPi Picoを使う - その15 [Pi Pico]

急遽、TinyUSBを真面目にみることにした。前回はとりあえずソースディレクトリのトップレベルがどうなってるか見た。ディレクトリ構造は浅くて、サブディレクトリを持つのはUSBのデバイスクラス別の記述だけのようなので、それほど悩むことはなさそうに思える。今日は残りの部分を見てみる....

15.2.2  examplesディレクトリ

参考のため、examplesディレクトリの中を見てみる。
├── midi_test
│   ├── CMakeLists.txt
│   ├── Makefile
│   └── src
│       ├── main.c
│       ├── tusb_config.h
│       └── usb_descriptors.c
├── msc_dual_lun
│   ├── CMakeLists.txt
│   ├── Makefile
│   └── src
│       ├── main.c
│       ├── msc_disk_dual.c
│       ├── tusb_config.h
│       └── usb_descriptors.c

などとなっていて、かならずtusb_config.hとusb_descriptors.cというファイルが含まれている。このtusb_config.hのほうはsrc/tusb_option.hの中で
// Allow to use command line to change the config name/location
#ifdef CFG_TUSB_CONFIG_FILE
  #include CFG_TUSB_CONFIG_FILE
#else
  #include "tusb_config.h"
#endif
のように読み込まれている。名前を変えたい時のためにCFG_TUSB_CONFIG_FILEを定義するとそっちが読まれる、というぐあいになっている。これに設定を書き込め、ということだと考えられる。

tusb_config.hをみるとボード個別の定義があるかどうかをチェックしたあと
//--------------------------------------------------------------------
// DEVICE CONFIGURATION
//--------------------------------------------------------------------

#ifndef CFG_TUD_ENDPOINT0_SIZE
#define CFG_TUD_ENDPOINT0_SIZE    64
#endif

//------------- CLASS -------------//
#define CFG_TUD_CDC              1
#define CFG_TUD_MSC              1
#define CFG_TUD_HID              0
#define CFG_TUD_MIDI             0
#define CFG_TUD_VENDOR           0

// CDC FIFO size of TX and RX
#define CFG_TUD_CDC_RX_BUFSIZE   (TUD_OPT_HIGH_SPEED ? 512 : 64)
#define CFG_TUD_CDC_TX_BUFSIZE   (TUD_OPT_HIGH_SPEED ? 512 : 64)

// CDC Endpoint transfer buffer size, more is faster
#define CFG_TUD_CDC_EP_BUFSIZE   (TUD_OPT_HIGH_SPEED ? 512 : 64)

// MSC Buffer size of Device Mass storage
#define CFG_TUD_MSC_EP_BUFSIZE   512

などとなっている。デフォルトのend pointのバッファサイズを決めたあと、どのクラスに対応するか、を0、1で書くようになっている。

usb_descriptors.cのほうはCMakelists.txtの中にライブラリソースファイルとして入っているので、別に名前はこの通りでなくてもいいけど、名前からしてUSBのdescriptorを書くことになっているようである。
nice!(0)  コメント(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。