トップ «前の日記(2021-05-21(Fri)) 最新 次の日記(2021-05-23(Sun))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2021-05-22(Sat) 嘘のようにやんで、それから

まずは定番のLチカから

ドキュメント(Chapter3)を頼りに試行錯誤。

本体のblink(Lチカ)は、pico-examples/blink/の下にソースがあった。
RasPi3にUSB接続すると、/media/pi/RPI-RP2 の下にマウント される(Bootselモード)。

$ df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/root         15G  7.5G  6.3G   55% /
devtmpfs         404M     0  404M    0% /dev
tmpfs            437M   42M  395M   10% /dev/shm
tmpfs            437M   18M  420M    4% /run
tmpfs            5.0M  4.0K  5.0M    1% /run/lock
tmpfs            437M     0  437M    0% /sys/fs/cgroup
/dev/mmcblk0p1   253M   48M  205M   19% /boot
tmpfs             88M  8.0K   88M    1% /run/user/1000
/dev/sda1        128M  8.0K  128M    1% /media/pi/RPI-RP2

blinkのバイナリは、 epico-examples/build/blink/の下でmake -j4 すると できた
blink.uf2 を/media/pi/RPI-RP2 にコピーすれば、アンマウント、そして実行 にと、自動で流れた。
このあたり、micro:bitと同じか。

別のプログラムをインストールしたかったら、一旦抜いて、 Pico本体のリセットボタンを押しながらUSB接続する。
また最初同様にBootselモードになり、マウントされた。

実は一昨日ぐらいにここまでやっていた。

いちいち抜き差しは面倒くさいし、端子が劣化する

pico and pi connector

そう考えることは、ドキュメントはお見通しであった。
Chapter5へ。

Picoでリセットとプログラムのインストールが同時にできるよう、 Debugポートを通じて操作する。
ついでにシリアルポート接続もできるようにする。

RasPiとの接続はこんな風に。
例によって 思いっきり汚くできた。

PI                      PICO
8(GPIO 14: TXD)         2(GPIO 1)
10(GPIO 15: RXD)        1(GPIO 0)
14(Ground)              3(Ground)
18(GPIO 24)             D3(SWDIO)
20(Ground)              D2(Ground)
22(GPIO 25)             D1(SWCLK)

コマンドはこんな風に。

pi and pico connector

pico/openocd/tcl $ openocd  \
>  -f interface/raspberrypi-swd.cfg \
>  -f target/rp2040.cfg  \
>  -c "program  ../../pico-examples/build/blink/blink.elf \
> verify reset exit"

すると このようなメッセージが出て、新しいblink (少し書き換えて確認)がインストールされた。
ドキュメントはこのあたり、少々分かりづらかった。

Pi3にPicoを直接挿すと、

[土  5月 22 14:28:25 2021] Under-voltage detected! (0x00050005)                
[土  5月 22 14:28:29 2021] Voltage normalised (0x00000000)  

のような警告が。
セルフパワーのUSBハブを経由すると出ないけど。

ちなみに電流/電圧計を介してみたら、ずっと"0.00A"であった。

Chapter4に戻って、Hello, World!

USBとSerialのふた通りが用意されていた。
ビルドしてインストール。
USBなら特に何も用意することなくできた。

$ minicom -b 115200 -o -D /dev/ttyACM0
minicom へようこそ 2.7.1
 
オプション: I18n 
コンパイルされた日時は:  Aug 13 2017, 15:25:34.
ポート /dev/ttyACM0, 18:19:10
 
CTRL-A Z を押すと、説明画面になります。
 
Hello, usb world!
Hello, usb world!
Hello, usb world!
.
.

Serialもできた。raspi-configでシリアルログインを不可にして 再起動。

$ minicom -b 115200 -o -D /dev/serial0
minicom へようこそ 2.7.1
 
オプション: I18n 
コンパイルされた日時は:  Aug 13 2017, 15:25:34.
ポート /dev/serial0, 18:40:00
 
CTRL-A Z を押すと、説明画面になります。
 
Hello, serial world!
Hello, serial world!
Hello, serial world!
.
.

汚いながらもはんだがうまくできたことを、ようやく確認。

picotool

BootselモードのPicoにインストールしたプログラムの様子を見たり、 uf2でダウンロードしたりできるらしい。

$ sudo picotool info -a
Program Information
 name:          blink
 web site:      https://github.com/raspberrypi/pico-examples/tree/HEAD/blink
 binary start:  0x10000000
 binary end:    0x10005014
 
Fixed Pin Information
 none
 
Build Information
 sdk version:       1.1.2
 pico_board:        pico
 boot2_name:        boot2_w25q080
 build date:        May 22 2021
 build attributes:  Debug
 
Device Information
 flash size:   2048K
 ROM version:  2
$ sudo picotool save newblink.uf2
Saving file: [==============================]  100%
Wrote 41472 bytes to newblink.uf2
$ sha256sum newblink.uf2 
49f70919cf086c5ddb66a919908e3046fca6f62db281f6b8ac8f4ab427534aa3 
 newblink.uf2
$ sha256sum pico-examples/build/blink/blink.uf2 
49f70919cf086c5ddb66a919908e3046fca6f62db281f6b8ac8f4ab427534aa3 
 pico-examples/build/blink/blink.uf2

elf形式は駄目だった。


リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。

index.htmlは ここから。