表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
4/13

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


起動したら問題なく動いてる。大丈夫そう。

評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

↑ページトップへ