logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Program do obsługi programatora Willem 3.1 na Linux - niedoróbki i funkcje

krzkomar 19 Gru 2005 00:28 3981 14
REKLAMA
  • #1 2096665
    krzkomar
    Poziom 25  
    Posty: 877
    Pomógł: 71
    Ocena: 25
    Witam

    Nie wiem czy w dobrym miejscu, ale cóż.

    Napisałem program do obsługi programatora willem. Program początkowo bazowałem na wersji dosowej (udostępnionej na sieci), lecz w obecnym kształcie już chyba ani linijka z tego kodu tu sie nie pozostała (zresztą cała koncepcja programu uległa radykalnym zmianom). Program z wyglądu jest zblizony do tej wersji spod windowsa. Obecnie jest w nim w 100% zawarta obsługa programatora (część niskopoziomowa ) Willem w wersji 3.1 (20.03.2002) - bo na takiej wersji robiłem testy. Program na dzień dzisiejszy posiada jeszcze kilka niedoróbek: brak wykrywania programatora, brak obsługi wczytywania plików hex (zapis działa), nie działa suma kontrolna (poprostu za korekcję tego się jeszcze nie zabrałem). Program działa na zasadzie wtyczek - sam program realizuję funkcję GUI (GTK2.0), oraz obsługuje sam programator, natomiast obsługa układów jest realizowana przy pomocy pluginów i dołączana jako zewnętrzny kod. Wtyczka oprócz elementarnych funkcji typu np zapisz/odczytaj ma możliwość modyfikacji GUI - dodaje swoje pola opcji. W tej chwili zrobiłem jedynie obsługę układów serii 93Cxx - sprawdzone jedynie na 93C46, ale dopisanie obsługi pozostałych układów nie powinno stanowić problemu.

    Program ten niestety wymaga uprawnień root - wiąże się to z bezpośrednim dostępem do portu LPT, oraz zmiany ustawień shedulera na czas krótkich opóźnień (takich od 1us ). Z tego względu jest bardzo niebezpieczny jeśli chodzi o bezpieczeństwo systemu i osoby niepowołane (w praktyce wystarczy napisać odpowiednią wtyczkę). No cóż, coś za coś.

    Program ten chciałbym wypuścić na licencji GPL, jednak w chwili obecnej program ten ma kilka "zapożyczonych" ikonek, oraz obrazków pokazujących jak włożyć kość do programatora, więc nie wiem czy mogę to upublicznić, a przydało by się - może znaleźli by się chętni do dalszego rozwijania tego projektu.

    No i pytanie do Was - mogę to udostępnic w takiej postaci jaka jest, jak również pytanie czy znaleźli by się ochotnicy aby to pociągnąć dalej (głównie pisanie obsługi układów) ?
    Załączniki:
    • Program do obsługi programatora Willem 3.1 na Linux - niedoróbki i funkcje snap3.png (51.38 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • Program do obsługi programatora Willem 3.1 na Linux - niedoróbki i funkcje snap2.png (53.16 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • Program do obsługi programatora Willem 3.1 na Linux - niedoróbki i funkcje snap1.png (45.19 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #2 2104611
    ostrytomasz
    Poziom 25  
    Posty: 494
    Pomógł: 82
    Ocena: 218
    Fajny pomysł, może założysz konto na sourceforge'u? To zwiększyłoby liczbę osób do których dotarłaby ta informacja.
  • REKLAMA
  • #3 2104772
    bobbyAIR
    Poziom 20  
    Posty: 267
    Pomógł: 41
    Ocena: 6
    co do uprawnien roota to czy nie lepiej skorzystac z setuid albo ustwic prawa dla portu lpt dla uzytkownikow
  • #4 2105245
    krzkomar
    Poziom 25  
    Posty: 877
    Pomógł: 71
    Ocena: 25
    ostrytomasz napisał:
    Fajny pomysł, może założysz konto na sourceforge'u? To zwiększyłoby liczbę osób do których dotarłaby ta informacja.


    Problem w tym, że nie wiem czy w takiej postaci jaka jest (zapożyczone obrazki, oraz wygląd zewnetrzny) mam prawo to upublicznić.

    Dodano po 14 [minuty]:

    bobbyAIR napisał:
    co do uprawnien roota to czy nie lepiej skorzystac z setuid albo ustwic prawa dla portu lpt dla uzytkownikow


    Ale to wyjdzie jeszcze gorzej, ponieważ dołączony plugin ma również uprawnienia root, więc wszystko co zostanie w nim uruchomione będzie działało na prawach roota (np wywołanie konsoli z bash) - zakładam oczywiście że ktoś spreparuje fałszywy plugin. W ten sposób jeśli program będzie miał suid, to dziurę bezpieczeństwa mamy straszną, więc już lepiej niech on będzie mógł bycuruchomiony tylko przez roota. Co do portów - tu się nie tylko o porty rozchodzi, lecz również o funkcję precyzyjnych opóźnień, co wymagało zmiany ustawień shedulera (niestety nanosleep działa od ok 10ms w górę ) :(. Być może jest na to jakieś rozwiązanie, ale ja niestety go nieznam.

    Poniżej zamieszczam kod programu bez obrazków (katalog xpms), więc się nie skompiluje z tego powodu. obsługa czasu jest w pliku timer.c, obsługa portu w parport.c. Nazwa programu jest tymczasowa.
    Załączniki:
    • geepro.tar.gz (25.58 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #5 3819277
    uzi18
    Poziom 24  
    Posty: 751
    Pomógł: 37
    Ocena: 82
    Odswiezam watek!

    Przydadza sie kazde rece do pracy nad (tym) programem obslugi willema pod linuxa.

    :)

    Program powoli sie rozwija ... bedzie mozliwosc obslugi takze innych programatorow.

    Pozdrawiam
    Bartłomiej Zimoń
  • #6 4185601
    flash_mm
    Poziom 20  
    Posty: 343
    Pomógł: 25
    Ocena: 44
    witam, na programowaniu sie nie znam, ale moge przygotowac grafiki, obrazki itd. moge testowac.
  • #7 4185754
    krzkomar
    Poziom 25  
    Posty: 877
    Pomógł: 71
    Ocena: 25
    Każda pomoc się przyda :)
    Chwilowo projekt przerwałem (za długo ostatnio nad nim siedziałem, więc i wakacje sobie zrobić trzeba :) ), ale niebawem znów prace ruszą i pomoc będzie mile widziana. Grafik będzie dużo do obróbki.

    Projekt obecnie został przeniesiony na sourceforge: https://sourceforge.net/projects/geepro/

    Jak na razie obecna robocza wersja siedzi w CVS i jest sporo zmian w stosunku do wersji pierwotnej.
  • REKLAMA
  • #8 4185814
    krzychoocpp
    VIP Zasłużony dla elektroda
    Posty: 1866
    Pomógł: 387
    Ocena: 58
    Witam, pierwsze pytanie dlaczego nie SVN ;) ? Już prawie zapomniałem jak się CVS używa ;) Właśnie uruchomiłem, o mikrokontrolerach nie mam zbyt wielkiego pojęcia - więc na tym polu nie pomogę, ale mogę pomóc, o ile znajdę czas, z GUI, w którym szczególnie okna dialogowe wydają mi się nieco dziwnie rozwiązane ;)

    Pozdrawiam, Krzysztof.
  • #9 4186440
    krzkomar
    Poziom 25  
    Posty: 877
    Pomógł: 71
    Ocena: 25
    krzychoocpp napisał:
    Witam, pierwsze pytanie dlaczego nie SVN ;) ?

    Cóż, tak wyszło :).

    Cytat:
    Już prawie zapomniałem jak się CVS używa ;)

    Ja za to z trudem poznaję CVS dopiero.

    Cytat:
    Właśnie uruchomiłem, o mikrokontrolerach nie mam zbyt wielkiego pojęcia - więc na tym polu nie pomogę, ale mogę pomóc, o ile znajdę czas, z GUI, w którym szczególnie okna dialogowe wydają mi się nieco dziwnie rozwiązane ;)

    Pozdrawiam, Krzysztof.


    Projekt jest obecnie w fazie przebudowy, jest tam częściowo stary kod z wersji 0.1, trochę kodu pośredniego, zaś obecnie okna dialogowe są już tworzone wg reguł przyświecających GTK2.0 :). Cóż, trochę też się sama GTK zmieniła od kiedy zacząłem to pisać. Chciałbym obecnie zamknąć część GUI, tak aby potem to tylko doszlifować. W tym celu pozostaje poprawienie współpracy pluginów z algorytmami programowania ze sterownikami programatorów. Czyli po krótce, zdefiniowanie który układ przez który programator moze być obsłużony i jakie funkcje mogą być na nim zdefiniowane, zdefiniowanie który obrazek ma być wyświetlony. Nie wymaga to wiedzy o mikrokontrolerach, ani o działaniu samych programatorów. Cała konfigurację chcę zawrzeć w pliku XML, co zostało już po części wstępnie zrobione.
    Tak czy owak, to teraz właśnie GUI jest na pierwszym planie. Będzie też trzeba pomyśleć o wersji sterowania programem z linii poleceń i być może TUI, ale to dalsze plany. Taka wersja byłaby bardzo użyteczna przy kompilacji automatycznej np z make-a.

    Pozdrawiam
    Krzysztof Komarnicki
  • REKLAMA
  • #10 4815533
    flash_mm
    Poziom 20  
    Posty: 343
    Pomógł: 25
    Ocena: 44
    witam ponownie, jak prace nad programem? jestem bardzo zainteresowany tym softem.
  • #11 4815966
    krzkomar
    Poziom 25  
    Posty: 877
    Pomógł: 71
    Ocena: 25
    Jak na razie stanęły. Ale projekt nie upadł i będzie rozwijany, tymczasowo tylko mam trochę inne sprawy na głowie. Najbardziej aktualna wersja jest w repozytoriach CVS-a.
    A oto screenshot z tej wersji:
    Program do obsługi programatora Willem 3.1 na Linux - niedoróbki i funkcjeProgram do obsługi programatora Willem 3.1 na Linux - niedoróbki i funkcjeProgram do obsługi programatora Willem 3.1 na Linux - niedoróbki i funkcje

    Postanowiłem dorzucić też tutaj wersje aktualną (nie pamiętam już co działa a co nie :( )
    Załączniki:
    • geepro002.tar.gz (256.64 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #12 4817408
    flash_mm
    Poziom 20  
    Posty: 343
    Pomógł: 25
    Ocena: 44
    pelen szacunek. osobiscie nie podoba mi sie sposob edytowania danych w orginale, otwiera sie okno i trzeba bajt po bajcie wpisywac i klikac myszka. lepiej zeby dalo sie po prostu pisac po prawej stronie jak w zwyklym hex edytorze.

    czy nadal trzeba byc rootem zeby go uruchamiac??

    pozdrawiam
  • #13 4819125
    krzkomar
    Poziom 25  
    Posty: 877
    Pomógł: 71
    Ocena: 25
    Nie trzeba być rootem. Teraz program korzysta z ppdev. Uruchomienie programu z root-a (lub jako root) daje lepszy algorytm krótkich opóźnień.

    Edytor:
    Wiem, chodzi Ci zapewne o coś takiego jak w mc.
    Tutaj się wpisuje liczby oddzielając przecinkami, a łańcuchy w cudzysłowiu np: "ala ma kota",0x2f,0x03b."abcd",0x00. Dodatkowo jest kalkulator sumy kontrolnej.
  • #14 4820590
    flash_mm
    Poziom 20  
    Posty: 343
    Pomógł: 25
    Ocena: 44
    pozwole sobie dodac moje spostrzezenia:

    1) przy uruchomieniu bez programatora jako "nie root" i wybraniu pcb3 program konczy prace bez jakiegokolwiek infa. jako root wyswietla ze nie ma programatora i moge dac cancel lub retry

    2) fajnie by bylo zeby pamietal jaki mam programator i testowal go przy probie odczytu a nie zaraz po uruchomieniu.

    3) sposob edycju zawartosci jest super niewygodny. czesto wpisuje zawartosc z kartki lub poprawiam zawartosci i wolalbym kliknac 1 raz myszka i potem po prostu pisac i sterowac kursorami klawiatury. klikam na lewa strone pisze w hex`ach 20 21 4c itd, klikam na prawa pisze normalnie. moze to moj glupi nawyk ale tak tlumaczylem programy z ang na polski - hex edytorami i nie wyobrazam sobie klikania myszka na kazde okienko osobno.

    4) brak mi obslugi plikow z rozszerzeniem HEX- znow nawyk , wszystko przechowuje w hex

    5) oby tylko nie braklo ci ochoty i czasu , zebys nie porzucil projektu (jak np tleenx2 czy qtlen) bo efekty sa zajefajniste. nie wyobrazasz sobie jaka mialem radosc jak wczoraj (co prawda starsza wersja) zaprogramowalem sobie 93c46 bez wylaczania mojego ulubionego systemu :-)

    powodzenia.
  • #15 4820652
    krzkomar
    Poziom 25  
    Posty: 877
    Pomógł: 71
    Ocena: 25
    flash_mm napisał:
    pozwole sobie dodac moje spostrzezenia:


    Ad1 Nie mam tego problemu, a chodzę cały czas na zwykłym userze :(.
    Ad2 Oj, wiem, wiem. - w planach, jak i cała konfiguracja.

    Ad3. Będę to miał na uwadze.

    Ad4. Mi też - będą

    5) Mam nadzieję, że nie stracę. Czasem tylko trzeba jakiś projekt rzucić w kąt, aby dojrzał, by po czasie znów do niego wrócić.



    Nowa wersja: http://sourceforge.net/projects/geepro/files/geepro-0.0.4-rev_161_mod.tar.gz/download

Podsumowanie tematu

✨ Dyskusja dotyczy autorskiego programu do obsługi programatora Willem w wersji 3.1 na system Linux, opartego na GTK2.0 i działającego w architekturze wtyczek (pluginów) do obsługi różnych układów. Program początkowo bazował na wersji DOS, ale został całkowicie przebudowany, obecnie obsługuje niskopoziomowo programator Willem 3.1 (testowany na wersji z 20.03.2002). Wciąż występują niedoróbki, takie jak brak automatycznego wykrywania programatora, brak obsługi wczytywania plików HEX (zapis działa), oraz niezaimplementowana suma kontrolna. Program wymagał uruchomienia z uprawnieniami roota ze względu na precyzyjne opóźnienia i dostęp do portu LPT, jednak w nowszych wersjach zastosowano interfejs ppdev, co pozwala na uruchomienie bez roota, choć z gorszą precyzją opóźnień. Projekt jest rozwijany na platformie SourceForge (repozytorium CVS), gdzie dostępne są aktualne wersje i screenshoty. W planach jest rozszerzenie obsługi na inne programatory, poprawa GUI, wprowadzenie obsługi plików HEX, lepsza konfiguracja programatora i układów za pomocą plików XML oraz możliwość sterowania z linii poleceń. Użytkownicy zgłaszają sugestie dotyczące wygody edycji danych (bardziej intuicyjny edytor hex), stabilności działania oraz pamiętania ustawień programatora. Autor podkreśla, że projekt jest w fazie przebudowy i wymaga dalszych prac, ale nie został porzucony.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA