Вопрос по c++, ide, exception, arduino – Включить исключения в среде Arduino

3

По словамответ на вопрос Относительно того, поддерживает ли среда Arduino исключения, теоретически возможно запустить «исключительный». двоичные файлы на плате Arduino.

Как бы я изменил свою Arduino IDE, чтобы позволить это? В частности, как я могу предотвратить IDE от включения-fno-exceptions флаг при вызове компилятора?

В статье Pragmatic Bookshelf [Advanced Arduino Hacking] [1] говорится, что "... она не поддерживает исключения, потому что их накладные расходы во время выполнения будут слишком большими." Так что, вероятно, не стоит включать их. [1]:pragprog.com/magazines/2011-04/advanced-arduino-hacking Filippo De Luca

Ваш Ответ

1   ответ
3

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 и заменить его скриптом, который фильтрует флаги перед косвенным вызовом компилятора.

Похожие вопросы