ATNEL tech-forum
https://forum.atnel.pl/

MkBootLoader 3 - już jest!
https://forum.atnel.pl/topic21727-60.html
Strona 3 z 6

Autor:  mirekk36 [ 24 gru 2018, o 13:39 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

Nooo teraz to jasno jak słońce napisałeś ;) ... dzięki

ok hmm czyli sam proces auto-detekcji nie działa .... to już jest duża wskazówka gdzie szukać BUG'a .... jak mnie znasz to wiesz, że nie lubię takich BUG'ów więc będę gnoja szukał aż go wypalę żywym żelazem :lol: ... tzn jak mi się uda - bo też z tym różnie bywa.

Ale na pewno napiszę i będę wdzięczny jeśli będziesz mógł pod tym kątem sprawdzać następne wersje ok?


Również życzę zdrowych wesołych i pogodnych świąt ! ;)

Autor:  gizmo5418 [ 25 gru 2018, o 14:40 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

Witam,

Po uruchomieniu dzisiaj MkBootloader3, patrzę - aktualizacja do wersji 3.0.8. Więc do dzieła. Aktualizacja poszła, restart i......

Mirku, szczęka mi opadła, gdyż :
Obrazek

zaczęło wykrywać programator USBASP w MkBootloader3 uruchamianym pod linuksem.

Programowanie przez programator ATB-USBASP działa poprawnie w trybie normalnym, jak i szybkim
Obrazek

Działa również wykrywanie mikrokontrolera po kliknięciu w ikonkę obok rozwijanych list z mikrokontrolerami.


Jedynym drobnym mankamentem, jest to, że najpierw należy wpiąć programator do portu USB a następnie uruchomić MkBootloader3.
W odwrotnej kolejności wykrywanie podpiętego programatora nie zadziała.

Jeżeli byś ten sposób wykrywania dodał również do MkClipse ( tam wykrywanie również nie działa ), wówczas można śmiało powiedzieć, że aplikacje są multiplatformowe.

Dla mnie Mirku, jest to świetny prezent pod Świąteczną Choinkę. Serdecznie dziękuję.

Autor:  mirekk36 [ 25 gru 2018, o 16:49 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

No bardzo się cieszę, że teraz ruszyło - ale wiesz jak opisałeś to dokładnie drugim razem - to wpadłem na trop. Otóż wcześniej , tak jak i w MkClipse za wykrywanie programatora akurat odpowiedzialny jest mój komponent Delphi o nazwie "MkUsbDetector" i on nie ma nic wspólnego z Libusb0.dll ;) Wykrywa metodą windowsową że tak powiem, prawie czystym API i pewnie dlatego pod linuxem nie chce śmigać ... No ale przecież w sumie nie tak dawno stworzyłem nowy komponent LibUSB dla Delphi i pomyślałem słysząc o twoich problemach, że to za jego pomocą spróbuję wykrywać programator. Oczywiście udało się i bardzo gładko i nadspodziewanie szybko poszła mi zmiana kodu z tak przygotowanym komponentem ;)

gizmo5418 napisał(a):
Jedynym drobnym mankamentem, jest to, że najpierw należy wpiąć programator do portu USB a następnie uruchomić MkBootloader3.

No to nawet spory mankament ale obawiam się, że tego nie uda mi się naprawić i też wyjaśniam już dlaczego. Otóż biblioteka LibUSB nie zapewnia obsługi zdarzeń systemowych i tu jest właśnie problem. Żeby za pomocą LibUSB wykrywać coś musiałbym stworzyć nowy wątek, który musiałby pracować przez cały czas życia aplikacji, albo jakiś timer który tykłaby co jakiś czas - żeby sprawdzać "ręcznie" poleceniami bibluiotecznymi czy widać odpowiednie VID i PID w systemie. Niestety to (szczególnie timerowa) metoda obciążałoby za bardzo a jeśli nawet nie za bardzo to obciążałoby niepotrzebnie procesor w czasie całego życia aplikacji, to tak nieładnie troszkę. Dlatego samą metodę wykrywania pozostawiłem taką jak w komponencie MkUsbDetecor czyli bez obsługi LibUSB, opartą o API Windows i dlatego ten moment nie chce pewnie działać na linuxie. Za to gdy programator jest włożony - to oczywiście komponent przy swoim starcie ten jeden raz dokonuje sprawdzenia i gdy widzi że jest USBasp no to - sam zgłasza odpowiednie zdarzenie wyżej i już MkBootloader wie, że ma pacjenta USBasp na pokładzie ;)

Autor:  mirekk36 [ 25 gru 2018, o 17:53 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

No dobra i po co ja się tyle nagadałem ? ;) wkurzyło mnie to, że po Linuxem nie chce się USBasp wykrywać do końca prawidłowo, czyli TYLKo przy starcie apki gdy programator siedzi grzecznie w USB - no i w końcu ;) .... chyba się udało w aktualizacji. Teraz może siedzieć niegrzecznie ;) chyba ...

3.0.9

proszę sprawdzić i dać znać ;) - z góry dziękuję (bo ja nawet linuxa nie mam, nie mówiąc, że się nie znam na nim i nawet nie wiedziałbym jak to sprawdzić ;) )

Autor:  gizmo5418 [ 25 gru 2018, o 18:51 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

Witaj,

Od samego początku obawiałem się, że programy nie dostają info z podsystemu USB linuksowego o zmianie podpinanych / odpinanych urządzeń, kiedy używasz bezpośrednio windowsowego API.
Nie ma się co dziwić. "Wine" same w sobie nie zapewnia takiego mechanizmu obsługi USB. Umożliwia natomiast pisanie bibliotek, które będą "mostem" między biblioteką windowsową dll, a systemem linuksowym, czyli linuksowe biblioteki "opakowuje" się w otoczkę biblioteki dll.


Przechodząc do meritum. Aktualizacja do wersji 3.0.9 DZIAŁA dokładnie tak jak na windowsie, czyli jest rozpoznawanie włożenia / wyciągnięcia programatora z USB.

I małe spostrzeżenie. Od wersji 3.0.8 przy zakładce WIFI zaczęły się pojawiać takie znaczki do przesuwania poziomego, jakby się zakładki nie mieściły w swojej formatce. Pewnie małe modyfikacje w interfejsie UI przy okazji robiłeś. Tak jest pod linuksem, pod windowsem jest ok.
Obrazek


Niesamowity prezent , bardzo dziękuję.

Autor:  mirekk36 [ 25 gru 2018, o 20:00 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

gizmo5418 napisał(a):
I małe spostrzeżenie. Od wersji 3.0.8 przy zakładce WIFI zaczęły się pojawiać takie znaczki do przesuwania poziomego, jakby się zakładki nie mieściły w swojej formatce. Pewnie małe modyfikacje w interfejsie UI przy okazji robiłeś. Tak jest pod linuksem, pod windowsem jest ok.


A to już mały pikuś, tak jak mówisz kombinowałem z automatycznym ustawianiem szerokości i widać akurat pod Linuxem znowu jest inaczej ale to drobiazg do poprawy ;)

Cieszę się, że śmiga autowykrywanie. Dzięki za info.

------------------------ [ Dodano po: 7 minutach ]

gizmo5418 --> przyszedł mi taki pomysł do głowy, mógłbyś spakować do ZIP'a tę linuxową bibliotekę libusb? którą podmieniasz? To może jak już umiem wykrywać linuxa pod nogami aplikacji - to program sam będzie sobie podmieniał tę bibliotekę gdy będzie się odpalał na Linuxie na Wine ? ;)

Autor:  gizmo5418 [ 25 gru 2018, o 20:50 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

Witam,

W załączniku spakowana biblioteka. Została ona skompilowana ze źródeł z https://github.com/stanson-ch/libusb-wine

Pomysł bardzo fajny, aby aplikacje potrafiły same użyć / podmienić bibliotekę na właściwą wersję dostosowaną do systemu.
Ze względu na zastosowane specyficzne mechanizmy w Wine, takie rozwiązanie może się nie sprawdzić. Niemniej, testy należy przeprowadzić, skoro już tak daleko zaszedłeś Mirku.
Do tej samej podmienionej biblioteki musi mieć też dostęp windowsowy avrdude, którego używasz w swoich programach.

W osobnym temacie opiszę sposoby instalacji / podmiany w/w biblioteki. Umożliwia ona dostęp również do innych urządzeń USB zgodnych z libusb z poziomu programów windowsowych uruchamianych przez "Wine", a które to są

Autor:  mirekk36 [ 25 gru 2018, o 21:21 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

Mógłbyś sprawdzić teraz ? wersję 3.0.10 ... tylko na początek przed startem usuń z folderu programu bibliotekę libusb0.dll i zobacz czy się pojawi po starcie i czy wszystko zdąży właściwie zadziałać ? ;) czekam na info

Autor:  gizmo5418 [ 25 gru 2018, o 21:30 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

Niestety, biblioteka jest ładowana wcześniej, niż jest kopiowana do folderu programu. Program się nie uruchamia, pisząc, że nie ma biblioteki.
Może to być związane z samym Wine, ale nie mam pewności.

Obrazek

Autor:  mirekk36 [ 25 gru 2018, o 21:39 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

ok a teraz byś sprawdził ? ale podsyłam już tutaj sam plik EXE, żeby nie robić kolejnej aktualizacji i nie zawracać innym głowy ok?

Autor:  gizmo5418 [ 25 gru 2018, o 21:44 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

W dalszym ciągu bez powodzenia.

Autor:  mirekk36 [ 25 gru 2018, o 21:49 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

ok a jeszcze raz - tylko teraz gdyby ruszyło to sprawdź czy USBasp wykrywa się w każdej potrzebnej sytuacji ok?

Autor:  gizmo5418 [ 25 gru 2018, o 21:55 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

Niestety, nie działa.

Teraz już mam niemal 100% pewność, że to Wine zarządza ładowaniem potrzebnych bibliotek, zanim odda kontrolę procesom programu windowsowego.

Komunikat o nie znalezieniu biblioteki generowane są przez Wine, a nie przez MkBootloader3.

Tak sobie myślę, że rozwiązać można to troszkę inaczej. Bibliotekę ręcznie linuksowcy sobie umieszczą w globalnym katalogu bibliotek windowsowych Wine. będzie używana też przez inne programy. Natomiast Twoje programy, mogą sprawdzać, na jakim systemie się uruchamiają. Jeżeli uruchamiany będzie na windowsie, to umieści windowsową bibliotekę w katalogu programu, natomiast, jak się będzie uruchamiał na linuksie pod Wine, nie będzie umieszczał biblioteki.

Autor:  mirekk36 [ 25 gru 2018, o 21:57 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

nie nie - spokojnie to może być u mnie w aplikacji - po prostu być może za wcześnie wywołuję jakieś funkcje związane z LibUsb przed rozładowaniem DLL'a ... jeszcze chwilkę pokombinuję

Autor:  gizmo5418 [ 25 gru 2018, o 22:11 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

Czekam cierpliwie, Hi

Autor:  mirekk36 [ 25 gru 2018, o 22:16 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

gizmo5418 napisał(a):
Tak sobie myślę, że rozwiązać można to troszkę inaczej. Bibliotekę ręcznie linuksowcy sobie umieszczą w globalnym katalogu bibliotek windowsowych Wine. będzie używana też przez inne programy. Natomiast Twoje programy, mogą sprawdzać, na jakim systemie się uruchamiają. Jeżeli uruchamiany będzie na windowsie, to umieści windowsową bibliotekę w katalogu programu, natomiast, jak się będzie uruchamiał na linuksie pod Wine, nie będzie umieszczał biblioteki.


Nie nie - miałem i jednak dalej będę ją miał dołączaną statycznie bo gdy próbuję dynamicznie to nie wychodzi do końca - może kiedyś.

Dlatego zrobię tak, że teraz będzie w folderze programu katalog "Libusb_DLL" a w nim będą dwa foldery "Windows" i "Linux" i w każdym będzie właściwa dla danego systemu biblioteka libusb0.dll i będzie trzeba ją właśnie ręcznie przed odpaleniem programu wkopiować do folderu. Żeby w trakcie aktualizacji się to nie nadpisywało - to aktualizacje nie będą ze sobą niosły i rozpakowywały libusb0.dll ... tylko przy pobieraniu ręcznie programu - domyślnie będzie załadowana windowsowa.

teraz w załączniku podaję niejako nową wersję instalki

Autor:  gizmo5418 [ 25 gru 2018, o 22:51 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

UI wróciło do normy, detekcja działa wyśmienicie. Bibliotekę linuksową, trzeba obecnie dodać do globalnej ścieżki bibliotek windowsowych Wine, a nie do katalogu programu.

Taka konieczność spowodowana jest windowsowym programem avrdude.exe, który to jest wypakowywany do katalogu Temp ( w katalogu użytkownika ). On też wymaga biblioteki libusb0.dll. Ale......

Do pewnej wersji MkBootloader.exe, raz wypakowany avrdude.exe zostawał nie usunięty z Temp. I tam również wsadziłem linuksową wersję biblioteki libusb0.dll. To działało ( zapomniałem o tym szczególe aż do teraz ).
W obecnych wersjach MkBootloader3, avrdude.exe jest wypakowywany do Temp, jak ma być użyty, a następnie jest usuwany po użyciu. Jeżeli wsadzę ręcznie bibliotekę linuksową libusb0.dll do tego katalogu, to ona również jest usuwana.

Jeżeli taki mechanizm jest teraz zastosowany, to może by tak razem z avrdude.exe wsadzać odpowiednią wersję libusb0.dll ?

Autor:  mirekk36 [ 25 gru 2018, o 23:53 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

gizmo5418 napisał(a):
Do pewnej wersji MkBootloader.exe, raz wypakowany avrdude.exe zostawał nie usunięty z Temp.

Tak bo zapomniałem robić posprzątania po sobie...

gizmo5418 napisał(a):
Jeżeli taki mechanizm jest teraz zastosowany, to może by tak razem z avrdude.exe wsadzać odpowiednią wersję libusb0.dll ?

No i BARDZO dobry pomysł ;) tak tu damy radę ;) ... ale to już nie dzisiaj

Autor:  mirekk36 [ 26 gru 2018, o 02:14 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

Ok jak coś to jeszcze jedna próba - jak teraz działa ? ;)

Autor:  gizmo5418 [ 26 gru 2018, o 09:58 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

U mnie ta wersja po prostu DZIAŁA pod linuksem, tak jak się tego oczekuje. Świetna robota Mirku !!!


Po przetestowaniu pod windowsem ( wirtualka ) chyba znalazłem błąd.
FT232R podpinam w postaci osobnego interfejsu USB <-> uart

Postępowanie ( bootloader wgrany już do mikrokontrolera przez USBASP ):

1. Wybieramy z listy programator na FT232R
2. Zakładka Bootloader -> RS232 / UART, ustawiamy poprawne baudrate oraz port COM
3. Klikamy na BLS Info
- odczyt przebiega prawidłowo i pokazuje się okienko z informacjami, czyli wszystko jest ok do tego miejsca.
4. klikamy w ikonkę koło listy wyboru mikrokontrolera

Od tego momentu Bootloader nie odpowiada.

Teraz przy każdym kliknięciu czy to w BLS Info, czy w ikonkę koło listy wyboru mikrokontrolera, dane są posyłane przez FT232 ( widać po aktywności LED-a ), ale bootloader nie odpowiada. Pomaga wypięcie i wpięcie FT232 z USB.

Wydaje mi się, że po kliknięciu w ikonkę koło listy wyboru mikrokontrolera, po cichu zmienia ci się bautrate uarta dla Ft232, bo dane docierają do mikrokontrolera, lecz nie z taka prędkością, jakiej "oczekuje" bootloader

Możesz ten scenariusz sprawdzić i potwierdzić ?

Raz jeszcze powiem, świetna robota Mirku

Autor:  micky [ 26 gru 2018, o 10:18 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

A masz może jakiś nawet prosty analizator stanów logicznych, żeby spr. prędkość?

Autor:  gizmo5418 [ 26 gru 2018, o 10:43 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

Tak mam, ale w wolnym czasie użyję drugiej przejściówki usb <-> uart i w terminalu będę miał podgląd.

Nie wiem czy zauważyłeś, ten test robiłem na windowsie, który postawiony mam na "virtualce", i może być z tym związane takie zachowanie.
Dlatego poprosiłem o sprawdzenie tej anomalii.

Dodane
Jeżeli FT232R jest przy odczycie ( ikonka check mcu type ) traktowane jako programator, to by wyjaśniało prawie wszystko. Ja mam tylko przejściówkę USB<->uart

Autor:  micky [ 26 gru 2018, o 11:02 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

To podłącz logic analizer i sam sobie sprawdzisz z jaką prędkością próbuje wysyłać dane.

Autor:  mirekk36 [ 26 gru 2018, o 12:50 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

gizmo5418 napisał(a):
U mnie ta wersja po prostu DZIAŁA pod linuksem,

Dzięki za info i cieszę się, że śmiga ;)

gizmo5418 napisał(a):
Jeżeli FT232R jest przy odczycie ( ikonka check mcu type ) traktowane jako programator, to by wyjaśniało prawie wszystko. Ja mam tylko przejściówkę USB<->uart

Specjalnie teraz podłączyłem przejściówkę ATB-USB-RS232 do kompa i użyłem jej zarówno jako programatora i do komunikacji RS232 z prockiem w zestawie ATB.

Niestety nie mogę namierzyć błędu który opisujesz ....

Mogę tą przejściówką jako programatorem zarówno programować BLS , sprawdzać procka i za każdym razem także i odczytywać BLS INFO albo wgrywać wsad. Nic a nic się nie zacina, nie zmienia się żadna prędkość

hmmm nie mogę wpaść na trop błędu który opisujesz

------------------------ [ Dodano po: kilkunastu sekundach ]

jeszcze sprawdzę to na virtualce na VMWare WorkStation

------------------------ [ Dodano po: 10 minutach ]

Sprawdziłem na wirtualce też wszystko działa jak należy u mnie .... więc ciężko mi namierzyć jakiś błąd

Autor:  gizmo5418 [ 26 gru 2018, o 14:35 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

Więc jest to prawdopodobnie problem związany z maszyną wirtualną - używam Oracle VirtualBox, lub ustawieniami przełączania sprzętu do wirtualizowanego środowiska.

Jak kiedyś będzie Ci się Mirku chciało, to może przy jakiejś aktualizacji MkClipse, MkAVRCalculator, zaimplementujesz w nich ten mechanizm wykrywania USBASP.....

Autor:  mirekk36 [ 26 gru 2018, o 14:44 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

gizmo5418 napisał(a):
Jak kiedyś będzie Ci się Mirku chciało, to może przy jakiejś aktualizacji MkClipse, MkAVRCalculator, zaimplementujesz w nich ten mechanizm wykrywania USBASP.....

W MkClipse pewnie uda się to zrobić, w MkAvrCalculator już na pewno nie, chyba że ukaże się kolejna wersja z przodu tak jak było teraz z MkBootloaderem. Nie żebym nie chciał czy coś - ale MkAvrCalculator jedzie wciąż na starym Delphi BDS2006 i tam ciężko już takie rzeczy zmieniać. No a poza tym wydawało mi się, że wcześniej pisałeś że właśnie w MkAvrCalculatorze to działa dobrze to wykrywanie ;)

Autor:  gizmo5418 [ 26 gru 2018, o 15:00 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

Tak pisałem. Nie zwróciłem jednak uwagi na jeden szczegół, bowiem MkAVRCalculator uruchamiałem z już wpiętym USBASP do USB.
Wykrywanie działa przy odczycie, zapisie i innych operacjach związanych z USBASP ( przy tych operacjach następuje wykrycie ), ale nie jest sygnalizowane wypięcie / wpięcie USBASP z USB w uruchomionym MkAVRCalculator. Nie jest to w żaden sposób uciążliwe.

Autor:  mirekk36 [ 26 gru 2018, o 15:55 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

gizmo5418 napisał(a):
Nie jest to w żaden sposób uciążliwe.

Jest jest - zdaję sobie z tego sprawę, ale ciężko w starym kodzie już grzebać i robić poważniejsze poprawki. Jak mówię, za jakiś czas może się wezmę za napisanie MkAvrCalca od nowa ;)

Autor:  rskup [ 29 gru 2018, o 15:01 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

gizmo5418 napisał(a):
ale nie jest sygnalizowane wypięcie / wpięcie USBASP z USB w uruchomionym MkAVRCalculator
Czytając dyskusję w tym wątku, jakbym miał déjà vu ;). Dokładnie takie same problemy miałem jak pisałem programiki na konkurs rycerski, które miały działać bez zmian na windows i linux.

--
Pozdrawiam,
Robert

Autor:  gizmo5418 [ 29 gru 2018, o 16:44 ]
Tytuł:  Re: MkBootLoader 3 - już jest!

Witam,

Całe szczęście, jak czytałeś, Mirek opanował owe problemy. Na razie zaimplementowane rozwiązanie jest w MkBootloader3, ale mam ogromną nadzieję, że również w kolejnych programach będzie wdrożone. :D

Strona 3 z 6 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/