19-12-2023, 07:15
Bład powodowało przekazanie dziwnego tekstu {compiler.optimization_flags} jako argumentu do kompilacji, więc postanowiłem poszukać napisu optimization_flags w plikach arduino. W ukrytym podkatalogu ".arduino15", w katalogu domowym, poleceniem grep -rn optimization_flags * znalazłem plik packages/STMicroelectronics/hardware/stm32/2.7.1/platform.txt, który kilkukrotnie zawierał poszukiwany ciąg znaków. Plik jest nieduży i tekstowy. W okolicy linii 23 znajdowała się następująca treść:
Trochę wygląda to podejrzanie bo taki sam identyfikator jest po obu stronach znaku =. Zamieniłem tą linię na swoją, ustawiając jakąś stała opcje optymalizacji, konkretnie -O2 (skoro nie korzystam z debuggera)
Oczywiście oryginał zachowałem w komentarzu.
Kompiluje przykład Blink i ... działa!
Oczywiście edytowany plik należy do pakietu opisującego procki STM, ma również adnotacje, że to wersja eksperymentalna, więc może jakiś kolejny update poprawi problem. Jak ktoś się jeszcze nie zorientował - używam Linuxa, stąd takie ścieżki i polecenia.
Kod:
# EXPERIMENTAL feature: optimization flags
# - this is alpha and may be subject to change without notice
compiler.optimization_flags={compiler.optimization_flags}
compiler.optimization_flags.release={build.flags.optimize} {build.flags.debug}
compiler.optimization_flags.debug=-Og -gKod:
# EXPERIMENTAL feature: optimization flags
# - this is alpha and may be subject to change without notice
#compiler.optimization_flags={compiler.optimization_flags}
compiler.optimization_flags=-O2
compiler.optimization_flags.release={build.flags.optimize} {build.flags.debug}
compiler.optimization_flags.debug=-Og -gKompiluje przykład Blink i ... działa!
Oczywiście edytowany plik należy do pakietu opisującego procki STM, ma również adnotacje, że to wersja eksperymentalna, więc może jakiś kolejny update poprawi problem. Jak ktoś się jeszcze nie zorientował - używam Linuxa, stąd takie ścieżki i polecenia.

