Szybkie linki:
 
Galeria serwisu:

Widzisz łapkę - kliknij w obrazek, aby zobaczyć więcej.

Problemy i błędy programów.

Błędy w działaniu Eclipse i pluginów - rozwiązania problemów
Problemy z pluginami - problemy, pojawiające się podczas instalacji i w działaniu tych pluginów.

Sloeber, Arduino Plugin - jeden z najczęściej używanych, nadal sprawia problemy podczas instalacji lub w działaniu. Wersje wtyczki, od około 2022 roku, zawierają błąd kompilacji projektów tworzonych w Windows. Wtyczka widoczna jako Sloeber powoduje błędy kompilacji i wgrywania. Działają natomiast starsze wersje widoczne jako Arduino. Nie można na razie odpowiedzieć na pytanie, jak długo jeszcze te błędy będą powtarzane w kolejnych wersjach? Pozostaje szukanie sposobów ich obejścia. Tak też się stało. Wyłapane błędy i przedstawione obejścia pozwalają na używanie nowych wersji Eclipse dla projektów Arduino oraz wyeliminowanie błędów. Powodem błędów są brakujące lub nieprawidłowe zmienne środowiskowe projektu, potrzebne podczas kompilacji lub wgrywania do mikrokontrolera.

Są trzy drogi rozwiąznia problemów - wybierz najbardziej odpowiednią dla siebie:
a). Korygować zmienne środowiskowe w każdym projekcie, po jego utworzeniu, trochę kłopotliwe, ale skuteczne,
b). Zmienić pliki platform.sloeber.txt używanych pakietów sprzętowych - robisz raz i potem w projektach masz już prawidłowe zmienne. To znaczy do plików znajdujących się w poszczególnych pakietach sprzętowych (np. megaTinyCore\megaavr\ platform.sloeber.txt), dodać brakujące zmienne środowiskowe używane w projektach. Poniżej jest do pobrania plik z przykładem wpisu, który należy dodać do plików platform.sloeber.txt. Dodatkowe linie należy dodać w początkowej części pliku. Znajdź w tych plikach pola komentarza oznaczone znakami # i wpisem podanym w przykładzie w celu lokalizacji miejsca dopisania. Dostosuj podane ścieżki do położenia swojego Eclipse w komputerze.
c). Ustawić brakujące zmienne jako globalne zmienne środowiska Eclipse.

Wypracowane rozwiązania błędów i problemów:
1. Błąd kompilacji w Windows:"sh: /bin/avr-g++: Permission denied. error 126"
Sposób obejścia:
Ustawić brakującą zmienną środowiskową projektu poprzez modyfikację pliku platform.sloeber.txt dla danego pakietu sprzętowego.
1.1. Zmienna środowiskowa (linia ) do dodania:
1. runtime.tools.avr-gcc.path= D:\Programy\eclipse25_06\arduinoPlugin\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7
Ścieżkę dostosuj do własnych ścieżek Eclipse. Dodaj taką linię w początkowej czści pliku, bo jej najczęściej nie ma.
1.2. Zapisz plik.
1.3. Wybierz z menu Project->Clean.
Po tym zabiegu znika błąd kompilacji projektu. Utrudnienie: trzeba powtarzać dla każdego używanego pakietu sprzętowego używanego do projektów Arduino.

2. Błąd wgrywania do mikrokontrolera w Windows:"Failed to run the Upload recipe Cannot run program "/bin/avrdude (in directory). CreateProcess error 2 "
Sposób obejścia:
Ustawić brakujące zmienne środowiskowe projektu poprzez modyfikację pliku platform.sloeber.txt dla danego pakietu sprzętowego.
2.1. Zmienne środowiskowe (linie ) do dodania:
1. runtime.tools.avrdude.path= D:\Programy\eclipse25_06\arduinoPlugin\packages\arduino\tools\avrdude\6.3.0-arduino17
Ścieżkę dostosuj do własnych ścieżek Eclipse. Dodaj taką linię, bo jej najczęściej nie ma w początkowej części pliku.
2. upload.protocol= jtag2updi
jtag2updi - to używany i wybrany podczas konfiguracji projektu programator. Dostosuj wpis do swojego programatora. Dodaj taką linię w początkowej części pliku, bo jej najczęściej nie ma.
2.2. Zapisz plik.
2.3. Jeżeli pojawia się błąd zawierający wpis: nometadata, (zauważony w projektach z pakietem MiniCore), Znajdź w w/w pliku wpis: -x nometadata i usuń go z pliku.
2.4 Zapisz plik.
2.5. Wybierz z menu Project->Clean.
2.6. Sprawdź zmienną serial.port, aby upewnić się, że zawiera ona prawidłowy port wymagany dla używanego programatora.
Po tym zabiegu znikają błądy wgrywania projektu do mikrokontrolera. Utrudnienie: trzeba powtarzać dla każdego używanego pakietu sprzętowego używanego do projektów Arduino..

Aktualnie przetestowane dla pakietów: megaTinyCore, miniCore.
Przykładowe wpisy do pobrania: Plik z przykładem

Dodatkowe uwagi i spostrzeżenia, nowe błędy i sposoby ich wyeliminowania:

1. Dla skontrolowania poprawności ustawień zmiennych środowiskowych projektu, można sprawdzić ich ustawienia poprzez wybranie z menu: Project->Properties->C/C++ Build->Enviroment. Możesz sprawdzić prawidłowość ustawień zmiennych o których była mowa powyżej oraz je skorygować.
a). Sprawdź ustawienia zmiennych: upload.protocol, upload.speed.
2. Jeżeli pojawia się błąd weryfikacji w stylu: avrdude: verification error, content mismatch
Często pomaga wyczyszczenie pamięci mikrokontrolera.
3. Jeżeli pojawia się błąd: avrdude: ser_open(): can not open device
Sprawdź zmienne: communication, serial.port, serial_port . Powinien tam być port komunikacyjny np. usb dla usbasp lub podobnych. Często pomaga ręczne wpisanie we właściwościach projektu (Project->Properties) w polu Port: nazwy portu, np: usb .
4. Jeżeli pojawia się błąd podczas wgrywania do mikrokontrolera lub komunikat: avrdude error: unable to open programmer stk500v2 on port usb
Sprawdź zmienną upload.protocol, czy ustawiony tam programator odpowiada Twojemu programatorowi. Ustaw prawidłowy programator.
5. Jeżeli pojawia się błąd podczas wgrywania: avrdude: jtagmkII_initialize(): Cannot locate "flash" and "boot" memories.
Błąd można wyeliminować poprzez zastąpienie nowymi wersjami plików avrdude.exe i avrdude.conf używanych przez Eclipse. Zajrzyj do katalogu: Eclipse\arduinoPlugin\packages\arduino\tools\avrdude\6.3.0-arduino17\bin i etc oraz pliki avrdude.conf w pakietach sprzętowych np.: Users\nazwa_użytkownika\Documents\Arduino\hardware\megaTinyCore-master\megaavr/avrdude.conf. Komunikat jest często nieszkodliwym, fałszywym ostrzeżeniem dla nowszych płyt, takich jak Arduino Nano Every (ATmega4808), ponieważ inaczej obsługują pamięć i nie używają tradycyjnego rozdzielenia pamięci flash/boot, a avrdude w ostatnich wersjach często to naprawia.
6. Jeżeli podczas wgrywania pojawia się błąd: avrdude error: cannot open port -b115200 lub błąd avrdude error: unable to open programmer avrispmkII on port -b115200 lub podobnej treści. Widać tutaj,że po słowie port brakuje zmiennej lub jest pusta. Tak jest. Do zmiennej projektu o nazwie serial.port wpisać nazwę portu. W tym przypadku dla tego programatora jest to usb.

7. Przyjrzenie się treści poleceń wyświetlanych w oknie Console - pozwoli wyłapać nieprawidłowe lub brakujące składniki wykonywanego polecenia. Przejrzenie i sprawdzenie poprawności ustawienia zmiennych środowiskowych projektu, często pozwoli Ci wskazać powód problemu i go wyeliminować. Sprawdź, czy istnieją wyżej wymienione zmienne.

Ktoś zapyta:
1. Co to są zmienne środowiskowe projektu? - to są zmienne ustawiane dla projektu podczas konfiguracji projektu. Potem wykorzystywane podczas kompilacji, wgrywania i innych operacji projektu. Problem w tym, że nie zawsze są ustawione poprawnie.
2. Jak przejrzeć zmienne środowiskowe i ustawienia projektu? - poprzez menu: Project->Properties->C/C++ Build->Enviroment.
3. Co to jest pakiet sprzętowy? - to pakiet ustawiany podczas konfiguracji projektu np.megaTinyCore, miniCore, microCore, tinyCore itp.
4. Czy podane sposoby obejścia problemów można także zastosować w programie Sloeber? - tak można stosować również dla Sloeber. Możesz także skorzystać z uwag opisanych dla programu Sloeber.

Pracujemy z Eclipse na bieżąco. Analizujemy funkcjonowanie i pojawiające się nieprawidłowości.
Warto spróbować usunąć problemy stosując powyższe sposoby na wyeliminowanie błędów.

Będziemy podpowiadać, opisywać programy, pokazywać rozwiązania, obejścia i sposoby. Postaramy się ułatwić życie zainteresowanym mikrokontrolerami i ich użyciem.
Pluginy Eclipse - przykładowe pluginy instalowane przez MarketPlace
Interfejs UPDI - co to takiego?



Licznik serwisu: 8184 , Aktualnie: 1 , Admin kontakt: admin@progel.pl