SSブログ

大きな配列を取ると怒られるぅ~~~ [ESP32]

またもやM5Stackである。

uint16_t bitMap[ (80 * 3 * 60 * 3) ];
こんな風に配列を取ると、リンカーに「オーバーフローだクソ野郎」って怒られるようになってしまった。
、、、region `dram0_0_seg' overflowed by 2744 bytes、、、

色々試すと、配列のサイズが40000を超えたあたりでエラーになっている。人によって違うだろうけれど。
リンカースクリプトのdram0_0_segのサイズ設定がしょぼいからだろうけれど、どこを直すと良いのか判らん。

とりあえずHEAP領域から確保すれば怒られない。まだ動かしていないけれど。
uint16_t *bitMap;
bitMap = new uint16_t[ 80 * 3 * 60 * 3 ];

大きな配列を取れないのは、320×240ピクセルで16bitカラーのLCDを持つ装置としては、「どうなんだそれ?」って感じだが。

無理矢理「解決」にされていて、草!
https://www.esp32.com/viewtopic.php?t=1831

どうでもイイが、Arduinoの環境設定のボードマネージャーに、
http://www.M5Stack.com/download/package_m5stack_index.json
は、もう書かなくてもイイらしい。どうせ書いても変なファイルを引っ張ってくるだけだし。

nice!(0)  コメント(0) 

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。