2. micropythonのボードごとの設定ファイルの作り方
micropython で新しいボードを追加するための整理された情報がなかなか見つからない。
copilotにたずねるとイロイロ情報が出てくるが、「公式ドキュメントはありません」と言い出す始末。
仕方がないので既存のファイルを見比べながら修正して make V=1 で verbose モードにしてトライ&エラーでなんとかできた。
参考にしたのは以下のフォルダにあるファイル。
・設定ファイル: ports/rp2/boards
RPI_PICO2とWEACTSTUDIO_RP2350B_CORE
・ヘッダファイル:lib/pico-sdk/src/boards/include/boards
pico2.h とwaveshare_rp2350_plus_16mb.h
ボード追加の段取り
1.ボード名を決めて ports/rp2/boards の下に大文字でディレクトリを作る。
今回は RP2350_PIZERO
2.必要なファイルを格納する。
mpconfigboard.cmake
mpconfigboard.h
pins.csv
rp2350_pizero.h (ボード名を小文字にしたヘッダファイル)
意外にもこれだけで大丈夫だった。board.jsonは要らないようだ。何に使うんだろ?
ファイル作成時に必須と思うポイントは以下。
(他にも追加しているが要否は不明、動いてるので触りたくない)
mpconfigboard.cmake
・RP2350-PiZERO が使ってる RP2350B はGPIO数が多いので以下を追加。
set(PICO_NUM_GPIOS 48)
machine.Pin()は、この値を参照してエラーチェックしている。
・作ったヘッダファイルを読み込むように PATH を追加
list(APPEND PICO_BOARD_HEADER_DIRS ${MICROPY_BOARD_DIR})
これが無いと pico-sdk のフォルダだけを探しに行く。
・FlashROMサイズを追加
set(MICROPY_FLASH_SIZE 16384K)
mpconfigboard.h
・FlashROMサイズとストレージサイズを追加(ファームウエア用に 2MB 確保する)
#define PICO_FLASH_SIZE_BYTES (16 * 1024 * 1024)
#define MICROPY_HW_FLASH_STORAGE_BYTES (PICO_FLASH_SIZE_BYTES - (2 * 1024 * 1024))
pins.csv
使うGPIO29以降を追加し、LED を削除
rp2350_pizero.h
micropython のデフォルト設定値を PiZEROのGPIOピンヘッダの設定に合わせて変更。
・UART
CH=1, TXPIN=4, RXPIN= 5
・I2C
CH=1, SDAPIN=2, SCLPIN=3
・SPI
CH=1, SCKPIN=10, TXPIN=11, RXPIN=12, CSNPIN=13
ビルド手順
通常通りにボードを指定する。
cd ports/rp2
make BOARD=RP2350_PIZERO clean
make BOARD=RP2350_PIZERO submodules
make BOARD=RP2350_PIZERO
念のため中身を確認する
cd build-RP2350_PIZERO
_deps/picotool/picotool info -a firmware.uf2
以下の行でファイルシステムのサイズを確認する。
embedded drive: 0x10200000-0x11000000 (14336K): MicroPython
起動したら問題なく動いてる。大丈夫そう。




