Japaneseついに8MBのSPI-SRAMを搭載した技適マーク付きのESP32-WROVER-Bが日本でも買えるようになりました。2018mrubyを存分に動かすには、ESP32-WROOM2では不足を感じていたので、発売を期待して待っていました。いうわけで、スイッチサイエンスさんから早速購入してみました。ESP32-WROVER-B今は技術書典の準備とかでじっくり触ることはできないので、まず主題のSRAMの拡張についてだけ確認してみました。WROVER用のDevkitボードなどはまだないので1、簡単にソフトの書き込みが確認できる環境を作ってみました。WROOMのDevkitの回路図を参考2に、3.3V電源とリセット関係のスイッチだけ実装しました。ESP32-WROVER-B今は書き込みのたびにボタン押してDLモードへ変更必要ですが、あとでDTR,RTS使った自動モード切り替えにも対応しておこうと思います。WROOMと同じ手順でHelloWorldを書き込んでみると、無事起動して、シリアルに文字列が出力されていることを確認できました。必要な設定を行います。詳細はこんな感じです。SRAMを利用するようになるようです。実際メモリが確保できるのかどうか、下のようなプログラムを走らせてみます。esp_restart();}結果はこちらのようになります。Task1[2]4MB分mallocしたところで、それ以上はメモリ確保できなくなっていることがわかります。0x0これは、ESP32の仕様によるものです。Manualには次のように書かれています。SRAMのサイズは4MBとなっています。SRAMが乗っています。SRAMの最大が4MBであるためです。記述を見ると、PIDでマッピング先を切り替えて、残りの4MBにもアクセスできるように見えたので、テストコードでは別コアで動かすタスク(task2)上でmalloc()を呼んでみています。別タスク上でも4MB以上のメモリを確保することに失敗しています。4MBは使えないのか?と思ってForumを少し調べてみると、関係していそうなコメントがいくつか見つかりました。though.https://www.esp32.com/viewtopic.php?f=12&t=5450&hilit=external+SPIRAM#p23667リファレンスにあるように、CPUごとにアドレス空間を振り分けたり、バンク切り替えのような形でマッピングを切り替えることは可能だけれども、ESP-IDFではサポートしていない模様。are.https://www.esp32.com/viewtopic.php?f=12&t=6957&hilit=external#p30347最新の中の人のコメントによると、近い内にESP-IDFに更新がありそう。PIDを見て自動で切り替わるわけではなく、バンク切り替え的な方法でしかアクセスできないようなので、8MBフルに使おうと思ったとき、アプリ側でメモリの配置先を意識して設計する必要がありそうです。ESP-IDFに更新あれば確認してみましょう。APIが実装されており、4MB以上の外付けメモリ空間にもアクセスできるようになっていました。https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/system/himem.htmlゴツいのはあったりします。直近の体外的な活動予定を記載しています。LTEでmruby/cを動かすArduinoライブラリを作った英語版はこちら。コメントをキャンセルメールアドレスが公開されることはありません。*ウェブサイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。上に表示された文字を入力してください。直近の体外的な活動予定を記載しています。...冬コミC97にサークル参加してみた去る2019/12/31、コミケに初参加してきました。...技術書典7でESP32とmruby関連の新刊出します技術書典7もいよいよ明日になりました。さんコメントに気づくのが大変遅くなってすみません。Transcoderは自身でコンパイルする必要があります。さんお忙しい中失礼します。