途中でデバッグできるように、Serial.print("some string text") コマンドを使用して多くのデバッグ メッセージを使用して (Eclipse で) 非常に大きな Arduino プロジェクトを進めています。
私が気づいたことの 1 つは、プロジェクトに含めることができるこれらの数が制限に達していることです。入れすぎると、プログラムは非常に奇妙な場所で停止します。つまり、多くの場合、印刷コマンドの最新の追加が実行されるずっと前です。
私のプロジェクトの .hex ファイルは、現時点で約 20k です。Arduino Uno は 30kb あたりに制限していますよね?したがって、大きすぎてはいけません。
したがって、実際の問題は、おそらくこれらのシリアルコマンドが私の sram をいっぱいにしている可能性があることだと思います。これはわずか2kbです。私は多くのライブラリを使用しています。
コマンド Serial.print("some string text") は SRAM を占有していますか? 確かにgccはこれらの文字列cnstantsをプログラム空間に置きますか? しかし、そうではないでしょうか?
それとも別のものですか?どこかにserial.printバッファがあるという別の理論があり、おそらくメッセージが多すぎるだけです。