aki_iic’s blog

己の欲せざる処人に施す事無かれ、狂人の真似するは即ち狂人なり

RP2040-GEEKでFUZIX0.5

 最近FUZIXのソースを徘徊しているのですが(ビルドが上手くいかず試行錯誤の婉曲表現:)rpipico(RP2040/RP2350)系は他のプロセサとビルド手続きが異なる様で前述の如く徘徊(老人故:)していたのですが下記サイトに基づいてビルドしたら上手く行ったのでリアルターゲットとして死蔵してたRP2040-GEEKを使ってみようというお話。

 いきなり脱線してしまいますがgemini2.5にFUZIX OSの基本設計技術をレポートに纏めてもらい、それをNotebookLMでポッドキャストにしてもらいました(男女の対話形式)↓

docs.google.com

そしてこちらがNotebookLMが生成した対話形式のポッドキャスト(お試しあれ)。

drive.google.com

 

 話を戻して、RP2040-GEEKをネタにする理由は手元にあり、マイクロSD(中華的にはTFcard)を持っている為です。つまりマイクロSDにrootfsを置きたいという事。

※注記:本件はpico(RP2040)に関するものです。pico2(RP2350)ではありません

RP2040-GEEKwww.switch-science.com

www.waveshare.com

 幸い回路図が上記Waveshareのwikiで公開されているので引用↓

https://files.waveshare.com/wiki/RP2040-GEEK/RP2040-GEEK-Schematic.pdf

 

RP2040-GEEK 回路図(Waveshare wiki

 rpipico用のFUZIX0.5のビルドは以下のサイトを参考(というか板書)させて頂きました(感謝):

scrapbox.io

 

fuzix.uf2 for rpipico (RP2040)

まづはそのままの状態でfuzix.uf2をRP2040-GEEKに書込むと書込終了後、fuzixが立ち上がります↓

fuzix0.5 rpipico (RP2040)

 hda はpicoのNAND Flashのrootfsです(約1.3MB)。

 SD drive 0: no card foundのメッセージが出ていますがSD周りのハードウェア構成(というか結線)の違いによりこのままではRP2040-GEEKでは動作しません。有り難い事にRP2040-GEEKのSD周り含めた情報が公開されていたのでそれを参考にさせて頂き、上記回路図とも突合して確認致しました(感謝)。

logikara.blog

RP2040-GEEK SD(TF)card pin assign

 次にFUZIXのソースの何処にSDカードのピン定義があるかですが、〇〇の一つ覚え:)でgemini2.5さまに尋ねてみたら:

FUZIXでSDcardのピン定義部分(gemini2.5のお告げ:)

 あなありがたや、gemini2.5さまのお告げの通りでございました:)これで変更すべき内容と場所が分かったので早速修正します。実際には config.h、devsdspi.cの2つを修正します。

devsdspi.c

 具体的には51〜54行をRP2040-GEEKのSD(TF)cardのSPI0に修正した形になります。次にconfig.hの修正(というかコメントアウト)は、

config.h

 具体的には29行をコメントアウトする形になります。理由はdevsdspi.cで何も定義されていないと最後に上記SDカードのpin定義になるので。直接devsdspi.cを書く変えるのも有りですが何か半端な修正(動けばOk、みたいな)ではあります:)

 準備が出来たので platform-rpipicoのディレクトリで make world -j4 ; make image -j4 ; でビルドして作成されたfuzix.uf2をRP2040-GEEKに書き込むと、

RP2040-GEEKでマイクロSD(TF)カードが認識された

のようにSD drive0: hdb1 hdb2が認識される様になります。実はPicoCalcのSDカードのコピーなのでFuzixのrootfsはhdb2にあるのでhdb2をrootfsに指定しています(上図)。

という事でRP2040-GEEKのfuzix0.5でSD(TF)カードが認識出来る様になりました。

 自分でビルド出来る環境を構築すると色々徘徊:)出来るので老後の楽しみには大変具合が良いです。

 fuzixは軽量なだけにビルドも速くCore-m5のThinkPat X1Tabletでも然程ストレスにならない(年の功か気長になったのかもしれません)気がするのも由です。

fuzix0.5 RP2040-GEEK

 最後にRP2040-GEEKで内蔵TFカード(マイクロSDカード)をアクセス出来るfuzix.uf2を置いておきます。無論、無保証といふことで。

drive.google.com

drive.google.com

 

次のステップ:

aki-iic.hatenablog.com

RP2350-GEEKの方はこちら:

aki-iic.hatenablog.com