質問: お世話になります。 Arduino IDEを使ってspresenseのプログラムにチャレンジしています。 コンパイルした時に、spresenseのメインメモリは1.5MBのはずなのに、半分ほどしか使われていないことに気づきました。 デフォルト設定のようです。 また、プログラムが大きくなると動作不安定や書き込めないことが起こるようです。 せっかく1.5MBあるので、有効利用したいのですが、使用領域を変更する方法がわかりません。 プログラム書き込みの領域を変更する方法はあるのでしょうか?よろしくお願いいたします。 今後、spresenseがバージョンアップされて、メインメモリが大きくなればいいなと思います。
回答: Arduino IDEの場合、メモリエリアの半分を共有メモリと呼んで、 SubCoreなどに使うようになっているようです。 MulitiCoreのライブラリを使うことで、このエリアを使用るすることができます。 ここを参照すると良いようです。 MP.AllocSharedMemory() で共有メモリからメモリのエリアをとることができます。 ここに、画像や音声、センサデータや、AIのnnbなどのファイルを置くことで、 かなりのメモリを削減できるようなります。 ご参考になれば。