@yamatarou7610

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

SRAMの容量を超えるデータの処理に関して

初歩的な質問で恐縮です。

初めてマイコンを触っているのですが、
RaspberryPiのPico Wに画像を送って電子ペーパーに表示させるというプログラムを作る途中に問題が発生しました。
どうにも送る画像データをかなり小さくしないとメモリがオーバーフローするようです。

Pico Wの仕様を見たところ、
フラッシュメモリが2MBで、SRAMが264kBでした。

プログラムは画像をスマホでバイナリデータを送ってPico Wで受け取るだけのシンプルなものなのですが
SRAMのサイズより小さいサイズの画像しか受け取れないという事になるのでしょうか?

例えば1MBの画像を分割して送ったとしても、その結合処理を行うときにSRAMの容量を超えるので処理ができない。
また、電子ペーパーに画像を表示させようとしても、同様に表示させることができない。

それを行うには、SRAMを増築するしかない、という認識であっていますでしょうか。

0 likes

2Answer

「どうにも送る画像データをかなり小さくしないとメモリがオーバーフローするようです。」
と書かれているので既にお気付きと思いますが、、、

そもそもMMUが使えなけば仮想メモリも使えないわけで、よって、扱えるメモリの上限=物理メモリの上限になるかと。

プログラムを「分割して受信して、じわじわと電子ペーパーに書く」ような構造にしたらば、理屈上は解決するんじゃないですかね。情報が少ないのでよくわかりませんけど。

0Like

Comments

  1. @yamatarou7610

    Questioner

    ご回答ありがとうございます。
    無知が故、原因に確証が持てませんでした。
    「分割してじわじわと書き込む」というアイディアは素晴らしいですね。
    なるほど!と思いました。

RaspberryPi Pico W ですか?
pythoは魅力的ですが?

ESP32 は検討しましたか?
お勧めしませんがMicroPythonは動きます。

SRAMを増築するより、PSRAM対応ボードに乗り換えた方が楽ですよ!

メモリ空間の節約に要する時間より、700円UPで解決してはどうでしょうか?

0Like

Comments

  1. @yamatarou7610

    Questioner

    ご回答ありがとうございます。
    店頭で目の前にあったのがRaspberryPi Pico Wだったので、そこから始めてみました。
    ESP32というものもあるのですね!
    他のモジュールも検討してみます

  2. 1MBの画像を分割して送った
    close文に返信はマナー違反ですが、一言

    電子ペーパーの諸元をみて、1MBの画像をそのまま、送信するのでなく、電子ペーパーの画質、サイズに落とし、指定された電送方式で送信して下さい。

  3. @yamatarou7610

    Questioner

    いえいえ、補足ありがとうございます。

    予めサイズを落とすことも視野に入れていたのですが、
    画像サイズを256KBよりも小さくすることが難しそうなので
    アドバイス頂いた通り、別のボードを選択しようと思います。

Your answer might help someone💌