----------------------------------------------------------------------
　　　　Interface2022年10月号
　　　　特集　USBホスト＆デバイス　ラズパイPico［プログラム集］
　　　　
　　　　ダウンロード・データ
　　　　IF2210TS
　　　　Interface編集部
　　　　CQ出版(株)
　　　　公開：2022年8月25日
----------------------------------------------------------------------

====================================
ダウンロード・サービスご利用者各位
====================================
　毎度，小誌ご愛読を賜り，誠にありがとうございます．
　このたびはダウンロード・サービスをご利用いただき，誠にありがとうございます．
　筆者のご厚意により，本記事の関連データをこのアーカイブに収録しました．

================
概要
================
　このアーカイブには，表題の記事の中で作成したプログラム・ファイルやデータ・ファイルが収録されています．
　詳しくは該当記事を参照してください．
　アーカイブは，ZIP形式によって圧縮されています．

================
動作確認
================
　プログラムは筆者の元で動作を確認済みです．

=================
アーカイブの内容
=================

pico_projects
├  readme.txt - このファイル
├  build.sh - ビルド用スクリプト
├  CMakeLists.txt - cmakeへのインプットテキストファイル
├  Makefile - build.shから呼び出されるcmakeを実装するためのMakefile
├  :
│
├─build (ビルド時に作成される)
├─lib
│  ├─FreeRTOS-Kernel
│  │    https://github.com/FreeRTOS/FreeRTOS-Kernel
│  ├─tinyusb
│  │    https://github.com/hathach/tinyusb.git
│  └─tinyusb_220724_bulk_patch
│        第5部第2章の変更ファイルのみ
├─pico-sdk
│  └─tools
│      ├─elf2uf2
│      │    CMakeLists.txt ビルドのpatch
│      └─pioadm
│            CMakeLists.txt ビルドのpatch
└─projects
    ├─cdc_hid
    │    第3部第1章 USB HIDクラスを利用したMCP2221
    ├─i2c_tiny_usb
    │    第3部第2章 USB Vendorクラスを利用したi2c-tiny-usb
    ├─pico_cdc_msc_hid
    │    第3部第2章 MSCクラスを利用しUSBメモリへのアクセスにトライ
    ├─pico_host_hid_to_device_cdc
    │    第3部第2章 デバイス＆ホスト機能を同時に実現する(デバッグ用)
    ├─template
    │    第2部第1章 開発環境
    └─template_freertos
          第3部第1章 開発環境

=================
ビルド手順
=================

Windows 10環境
Eclipse IDE for C/C++ Developers Version: 2022-03 (4.23.0)(筆者使用バージョン)

1. 本文に従い、MSYS2-Mingw64環境を構築する
2. 本文に従い、Eclipse環境を構築する
3. Eclipseを起動し、File-New-Makefile Project with Existing Codeを選択し
   pico_projectsフォルダを指定して、プロジェクトを作成する
   または、本文に従い、上記フォルダを一から作成し、各プロジェクトを作成する
4. pico-sdkを適当なディレクトリにダウンロードする
   仮にc:\pico\pico-sdkとする
　 cd c:\pico\pico-sdk
   git submodule update --init lib/tinyusb
5. MSYS2-Mingw64コンソールを起動し、pico_projectsフォルダに移動する
   仮にc:\pico\pico_projectsとする
   cd /c/pico/pico_projects
6. pico-sdkのインストールパスをCMakeLists.txtファイル中に設定する
   例 set(PICO_SDK_PATH ${CMAKE_SOURCE_DIR}/../pico-sdk)
   または、CMakeLists.txtファイル中の"set(PICO_SDK_PATH ...)"の行をコメントアウトして
　 環境変数を設定する
   export PICO_SDK_PATH=/c/pico/pico-sdk
7. CMakeLists.txt中で、ビルドするプロジェクト以外のフォルダをコメントアウトする
   デフォルトでは、すべてのプロジェクトがビルドされます。
8. ビルドします。
   ./build.sh で実行します   

=================
ビルド結果
=================

ビルドで作成されたファイルは、buildフォルダ中に作成されます

- 第2章のTinyUSBのサンプルファイルは、tinyusb_examplesフォルダの下にに作成されます
  ファルダはルートフォルダのCMakeLists.txtファイル中のTinyUSB_EXAMPLES_PATHで指定しています
- 第2章以外のサンプルファイルは、projectsフォルダの下に作成されます

=================
補足
=================

tinyusbは、lib/tinyusbフォルダの下にgit submoduleとして登録しましたが、一部変更しています

===========
著作権
===========
　収録したプログラム，データおよびドキュメントなどの著作権は，各著作権者（すなわち筆者）にあります．
　Copyright (C) 2022 Kentaro Sekimoto

