arduino環境が例外をサポートするかどうかについてanswer to a questionによれば、Arduinoボードで「例外的」バイナリを実行することは理論的に可能です。Arduino環境で例外を有効にする
これを許可するにはどうすればArduino IDEを変更できますか?具体的には、コンパイラを呼び出すときにIDEが-fno-exceptions
フラグを含まないようにするにはどうすればよいですか?
arduino環境が例外をサポートするかどうかについてanswer to a questionによれば、Arduinoボードで「例外的」バイナリを実行することは理論的に可能です。Arduino環境で例外を有効にする
これを許可するにはどうすればArduino IDEを変更できますか?具体的には、コンパイラを呼び出すときにIDEが-fno-exceptions
フラグを含まないようにするにはどうすればよいですか?
Arduino IDEは-fno-exceptions
をコンパイラに渡します(avr-gcc
)。これは、コンパイラのドキュメントで必要と指定されているためです(http://www.nongnu.org/avr-libc/user-manual/FAQ.html#faq_cplusplus参照)。
コンパイラが正しく機能するためには、このパラメータが(正しくまたは間違って)必要であるため、Arduino IDEではこれを変更する方法はありません。
しかし、このパラメータを削除すると、Arduinoソースコード(現在は589行目のhttps://github.com/arduino/Arduino/blob/master/app/src/processing/app/debug/Compiler.java)を編集し、IDEを再構築する必要があります。
コンパイラavr-gccを簡単に移動し、コンパイラを間接的に呼び出す前にフラグをフィルタするスクリプトで置き換えます。 –
Pragmatic Bookshelf [Advanced Arduino Hacking] [1]の記事には、 "...ランタイムオーバーヘッドが大きすぎるため、例外をサポートしていません。 おそらくそれを有効にすることは良い考えではありません。 [1]:https://pragprog.com/magazines/2011-04/advanced-arduino-hacking –