2021年2月26日金曜日

Raspberry Pi PicoのC/C++ 環境をWSL2上に構築する



絶賛就活中の中の人です.この度Raspberry Pi Pico(RPi Pico)が運良く入手できたので,開発環境を整えてみたいと思います.

この記事は@kmakさんのRaspberry Pi Pico を WSL からあつかうをWSL2(Ubuntu 20.04)向けにアレンジしたものになります.



1.RPi Picoの開発環境


RPi PicoはRaspberry Pi財団が開発したRP2040を使用した開発ボード的なものです.
RP2040はCortex-M0+を2つ搭載したいわゆるデュアルコアマイコンで,いろいろな特徴があります(詳しくはデータシートで).
公式サイト上ではMicroPython SDK,C/C++ SDKが公開されており,このほかにもRustなどを用いることができるようです.
今回はベーシックにC/C++を使っていきます.

参考:
Raspberry Pi財団, "Getting started with Raspberry Pi Pico", https://datasheets.raspberrypi.org/pico/getting-started-with-pico.pdf
@kmak, "Raspberry Pi Pico を WSL からあつかう",

2.WSL2の下ごしらえ


今回はWSL2上にC/C++ SDKを突っ込むわけですが,SDKを入れる前に必要なものを入れます.必要なものは以下の4つ.

  • gcc-arm-none-eabi
  • cmake (>=3.13)
  • git
  • build-essential

ubuntu 20.04であれば,これらをaptでインストールすればいいようです.ubuntu18.04ではcmakeをaptで入れると古いバージョンがインストールされるので,自前でビルドしましょう.

3.SDKのインストール


ドキュメント通りにインストールする.


# SDKとサンプルを入れるpicoフォルダを作成する
$ cd ~/
$ mkdir pico
$ cd pico

# SDKをクローン
$ git clone -b master https://github.com/raspberrypi/pico-sdk.git
$ cd pico-sdk
$ git submodule update --init
$ cd ..

上記でSDK自体は入ったのですが,環境変数PICO_SDK_PATHにSDKの場所を追加する必要があります.

$ export PICO_SDK_PATH=/(pico-sdkを入れたフォルダの絶対パス)/pico-sdk

これでSDKの準備は完了です.

4.サンプルコードを入れてコンパイル


SDKの動作確認もかねてサンプルコードをクローンしてコンパイルします.


$ git clone -b master https://github.com/raspberrypi/pico-examples.git
$ cd pico-examples
$ mkdir build
$ cd build
$ cmake -G "Unix Makefiles" ..
$ make

これにはそこそこ時間(i5-7200Uで2hぐらい)がかかるので気長に待ちましょう.
(全部のサンプルコードをビルドしているためで,どれか一つだけであればここまで時間はかからない)
ビルドの成果物は./pico-examples/build内に生成されており,Lチカのコードであれば./pico-examples/build/blink/に入っています.この時,ボードに入れるファイルは.uf2になります.

5.ボードに入れる


RPi PicoはBOOTSELを押したままの状態でPCとつなげるとストレージとして認識されます.ここに先ほど作成したuf2ファイルを入れると自動的にストレージとしての認識が解除され,コードの実行を開始します.
bashか何かで自動的にボードに投げ込んでもいいのですが,ここでは脳死でGUIのエクスプローラを使って入れました(もう少し考えたいところ).


 
©2021 shts All Right Reserved.


0 件のコメント:

コメントを投稿