VSCode отключает оптимизацию компиляции Arduino для отладки - PullRequest
0 голосов
/ 02 марта 2020

В конфигурации VSCode Arduino по умолчанию компилятор оптимизирует сгенерированный код как полностью оптимизированный, поэтому отладка с помощью Cortex-Debug практически невозможна, поскольку код оптимизирован, а скачки перемещаются повсюду.

Любые указатели на как отключить все оптимизации компилятора?

1 Ответ

0 голосов
/ 04 апреля 2020

Я не знаю, какую плату разработки вы используете, я использую Adafruit M0 Express. У Adafruit есть опции для создания плат, так как я думаю, что это большинство их плат SAMD. Если вы редактируете файлboards.txt. На рисунке ниже показан стандартный селектор плат для VSCode Arduino для Feather M0 Express, обратите внимание на дополнительную опцию отладки. Adafruit реализовал более широкий выбор для оптимизации на своих платах M4. На примере этого примера можно переключать отладку и оптимизацию отдельно.

Нажмите здесь , чтобы увидеть пример в VSCode

Мои доски Adafruit находятся здесь: C: \ Users \ GregTerrell \ AppData \ Local \ Arduino15 \ packages \ adafruit \ hardware \ samd \ 1.5.11

Файлboards.txt по умолчанию для .menu.debug.on.build.flags.debug=-g

Измените его на .menu.debug.on.build.flags.debug=-g -O0

Если вы посмотрите на детали сборки, командные строки компилятора будут иметь -Os и позже вы должны найти "-g -O0". Документация G CC гласит, что если встречается несколько вхождений флага, для сборки используется последняя версия флага компилятора.

Примечания:

  1. Вам придется перезапустите VSCode, чтобы изменения вступили в силу.
  2. Сделайте резервную копию или сделайте заметки о том, как вы изменяете файлыboards.txt. Обновление ваших досок в Arduino IDE перезапишет ваши изменения.
...