最終更新日:2023/1/13
アールFフィルハワー氏版RP2040開発環境(Arduino-Pico)ではLittleFSというファイルシステムを構築することが出来ます。
https://github.com/earlephilhower/arduino-pico-littlefs-plugin
ところが、これはArduinoIDE1xしかダメのようです。.javaで書かれているみたいです公開されているjarファイルの入ったZIPをダウンロードし、解凍し、「picolittlefs.jar」を
「C:\Program Files (x86)\Arduino\tools\PicoLittleFS\tool」の中にコピーすれば、ツールメニューのところに「Pico LittleFS Data Upload」という項目が増えます。そして、スケッチのフォルダの下にdataというフォルダができるので、ここにファイルを入れておくとコピーできるようになるそうです。
RP2040には2MBのフラッシュメモリモデルがあります。これまでSTM32F1用にコーディングしたスケッチサイズは64kBは優に超えるモノのなんとか128kBに納めてきました。しかし、マイコン上でWebSerberを構築しようとするとHTMLのコードを内挿するためそこそこフラッシュサイズが必要になります。グラフ等の表示をさせるためにSCRIPTファイルまで内挿しようとすると128kBでは納まりません。
実際、Chart.jsを使う場合、CDSJSにアクセスすることで事なきを得ていますが、ESP32何かだとフラッシュ内にファイルシステムを構築して、マイコン内で完結するような仕組みが実現出来ています。この考えをRP2040にも応用することが出来るはずです。ArduinoIDEのFlushSizeの設定でスケッチ1MB、FS1MBを選択することで、スケッチ領域を1MBにすることは確認出来ています。後はFS1MBにアクセス出来る検討が必要です。
https://github.com/earlephilhower/arduino-pico-littlefs-plugin
からZIPファイルをダウンロードし、展開します。ReadMeを読むと以下のように書かれていました。
スケッチ データ フォルダを LittleFS ファイルシステム イメージにパックする Arduino プラグイン、 イメージを Raspberry Pi Pico RP2040 フラッシュ メモリにアップロードします。 <br> ## インストール - Arduino IDE のサポートされているバージョンのいずれかを使用し、Arduino-Pico コア (https://github.com/earlephilhower/arduino-pico) がインストールされていることを確認してください。 - (https://github.com/earlephilhower/arduino-pico-littlefs-plugin/releases) からツール アーカイブをダウンロードします。 - Arduino sketchbook ディレクトリに tools ディレクトリがまだ存在しない場合は作成します。 - ツールを tools ディレクトリに解凍します (パスは `<home_dir>/Arduino/tools/PicoLittleFS/tool/picolittlefs.jar のようになります)`。 - Arduino IDE を再起動します。 OS X では、`~/Documents/Arduino/` に tools ディレクトリを作成し、そこにファイルを展開します。 ## 使用法 - スケッチを開きます (または新しいスケッチを作成して保存します)。 - スケッチ ディレクトリに移動します ([スケッチ] > [スケッチ フォルダを表示] を選択します)。 - `data` という名前のディレクトリと、そのファイル システムに必要なファイルを作成します。 - ボードとポートが選択されていることを確認してください。 - シリアル モニターを閉じます。そうしないと、ツールがファイル システムをアップロードできなくなります。 - 「ツール > Pico LittleFS データ アップロード」メニュー項目を選択します。 これにより、フラッシュ ファイル システムへのファイルのアップロードが開始されます。 完了すると、IDE ステータス バーに LittleFS Image Uploaded メッセージが表示されます。 ファイル システムのサイズが大きい場合は、数分かかる場合があります。 ## スクリーンショット  ## クレジットとライセンス - Copyright (c) 2015 Hristo Gochkov (ficeto at ficeto dot com) - GPL v2 ([テキスト](LICENSE)) に基づくライセンス - LittleFS 用に Earle F. Philhower, III によって変更ところが、ArduinoIDE2では、認識しません。ArduinoIDE2の場合、インストールするフォルダパスは、64bit版という事も有り、
「C:\Program Files\Arduino IDE\tools\PicoLittleFS\tool」
となるはずで、この中にプラグインファイル「picolittlefs.jar」をインストールしてもツールメニューに「Pico LittleFS Data Upload」は現れません。ArduinoIDE2はJavaで作成されたモノではないので認識しないのかなと思います。
さて、どうすべきなのか?調査を進める必要があります。
ArduinoIDE1.8.19にてPicoLittleFSの確認をすべきだと思いました。
まずはExampleを動作させてみます。Pico SpeedTestというExampleを実行して見ました。
コンパイルは通ります。
実行したところ以下のような結果を得ました。
10:07:29.284 -> Beginning test 10:07:29.351 -> Creating 256KB file, may take a while... 10:07:32.712 -> ==> Time to write 256KB in 256b chunks = 3345 milliseconds 10:07:32.712 -> ==> Created file size = 262144 10:07:32.712 -> Reading 256KB file sequentially in 256b chunks 10:07:32.746 -> ==> Time to read 256KB sequentially in 256b chunks = 47 milliseconds = 5.58 MB/s 10:07:32.746 -> Reading 256KB file MISALIGNED in flash and RAM sequentially in 256b chunks 10:07:32.814 -> ==> Time to read 256KB sequentially MISALIGNED in flash and RAM in 256b chunks = 48 milliseconds = 5.46 MB/s 10:07:32.814 -> Reading 256KB file in reverse by 256b chunks 10:07:32.916 -> ==> Time to read 256KB in reverse in 256b chunks = 115 milliseconds = 2.28 MB/s 10:07:32.916 -> Writing 64K file in 1-byte chunks 10:07:34.037 -> ==> Time to write 64KB in 1b chunks = 1116 milliseconds = 58.72 KB/s 10:07:34.037 -> Reading 64K file in 1-byte chunks 10:07:34.231 -> ==> Time to read 64KB in 1b chunks = 208 milliseconds = 315.08 KB/s 10:07:34.231 -> done
LittleFS領域へのファイルのUpdateですが、シリアル経由で実現します。
Uploadしたいファイルをスケッチと同じ階層に“data”フォルダを作成し、その中に保存します。
ツールメニュー>「Pico LittleFS Data Upload」を実行することでUploadされます。
以後、フラッシュ領域を変更しない限り、ここにUploadしたファイルは維持されるようです。実行結果は以下の通り※シリアルモニタに表示されます。
13:03:18.707 -> FS format done, took 105 ms! 13:03:18.809 -> 13:03:18.809 -> Enter 'F' to format, 'L' to list the contents of the FS ・・・・フォーマット実行後にリスト表示 13:03:28.009 -> Listing contents... 13:03:28.043 -> 0 files/dirs total 13:03:28.111 -> 13:03:28.111 -> Enter 'F' to format, 'L' to list the contents of the FS ・・・・ここでUpload 13:06:18.404 -> Listing contents... 13:06:18.404 -> Chart.bundle.js (455297 Bytes) 13:06:18.404 -> favicon.ico (2238 Bytes) 13:06:18.404 -> utils.js (3443 Bytes) 13:06:18.404 -> 3 files/dirs total 13:06:18.506 -> 13:06:18.506 -> Enter 'F' to format, 'L' to list the contents of the FS
免責事項
本ソフトウエアは、あなたに対して何も保証しません。本ソフトウエアの関係者(他の利用者も含む)は、あなたに対して一切責任を負いません。
あなたが、本ソフトウエアを利用(コンパイル後の再利用など全てを含む)する場合は、自己責任で行う必要があります。本ソフトウエアの著作権はToolsBoxに帰属します。
本ソフトウエアをご利用の結果生じた損害について、ToolsBoxは一切責任を負いません。
ToolsBoxはコンテンツとして提供する全ての文章、画像等について、内容の合法性・正確性・安全性等、において最善の注意をし、作成していますが、保証するものではありません。
ToolsBoxはリンクをしている外部サイトについては、何ら保証しません。
ToolsBoxは事前の予告無く、本ソフトウエアの開発・提供を中止する可能性があります。
商標・登録商標
Microsoft、Windows、WindowsNTは米国Microsoft Corporationの米国およびその他の国における登録商標です。
Windows Vista、Windows XPは、米国Microsoft Corporation.の商品名称です。
LabVIEW、National Instruments、NI、ni.comはNational Instrumentsの登録商標です。
I2Cは、NXP Semiconductors社の登録商標です。
その他の企業名ならびに製品名は、それぞれの会社の商標もしくは登録商標です。
すべての商標および登録商標は、それぞれの所有者に帰属します。