Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

OpenOCD windows 7 x64. Nie działa. Programowanie ARMa?

04 Gru 2009 13:57 4791 10
  • Poziom 10  
    Witam serdecznie,

    Mam problem z uruchomieniem OpenOCD w windows 7 x64. Do programowania ARMów od bardzo dawna wykorzystuję WinARM z podpiętym openocd i bardzo to sobie chwaliłem:D Niestety przesiadłem się na nowy system i nie działa...:cry:

    Posiadam jeszcze stary dysk, z mało stabilnie działającym XP i tam wszystko działa dobrze (właśnie sprawdziłem, także problem nie jest sprzętowy a dotyczy na 100% sterowników)... Szukałem jakiś rozwiązań problemu lecz nic nie znalazłem. Znaczy się jest wątek https://www.elektroda.pl/rtvforum/topic1461944.html - z wersją 0.3.0-dev i jest już nawet wersja 0.3.1 z tym że to OpenOCD działa dobrze z LibUSB a ja posiadam programator za 5 zł pod LPT klon Wiggler.
    Wpadłem też na pomysł że może się nie da odpalić OpenOCD i zainstalowałem HJTAG, tylko że w wersji 0.9.2 nie ma driverów do LPT (wywala błędem bez konkretów) a nowsza wresja nie wspiera już obsługi LPT :cry: ( http://www.hjtag.com/download.html )

    Czy ktoś mądrzejszy ode mnie mógły rzucić radą jak zaprogramować ARMa pod win7 z wykorzystaniem zwykłego badziewnego klona wigglera?
  • Poziom 21  
    Witaj

    Działanie jtaga LPT jest uzależnione od tego czy podczas kompilacji 'openocd' została dodana opcja --enable-PARPORT. Podejrzewam że masz instalkę od Freddiego więc poprostu go zapytaj czy włączył w najnowszej instalce obsługę LPT. Co do systemu to jak na Viście chodziło to na Win 7 też powinno.
    Osobiście również używam usb-jtaga i nie wiem czy najnowsza wersja wspiera LPT ale chyba nie usuwali by tego. Pozdrawiam
  • Specjalista - Mikrokontrolery
    OpenOCD wspierało i zawsze wspierać będzie JTAGi na port równoległy, ale OpenOCD skompilowane na system 32-bitowy na 99% nie odpali na systemie 64-bitowym - niestety. Poza tym co jest w zlinkowanym wątku nie mam na razie nic więcej do dodania - może gdy będę miał czas się tym zająć, to spróbuję skompilować wersję 64-bitową i stworzyć też dla niej instalkę. Do tego momentu niestety trzeba sobie z tym poradzić samemu.

    Pokaż lepiej dokładnie jak uruchamiasz OpenOCD i jakie błedy wywala.

    4\/3!!
  • Poziom 10  
    Freddie Chopin napisał:

    Pokaż lepiej dokładnie jak uruchamiasz OpenOCD i jakie błedy wywala.


    Jak uruchamiałem moje stare dobre OpenOCD łącznie z cfg jakie wykorzystywałem pod XP to wywala coś takiego:
    Code:
    C:\WinARM\utils\openocd\bin\openocd.exe -d2 -f C:\WinARM\utils\openocd\sam7_flash\oocd_flash_sam7_wig.cfg
    
    Info:    openocd.c:82 main(): Open On-Chip Debugger (2006-08-17 17:00 CEST)
    Error:   parport.c:380 parport_init(): missing privileges for direct i/o
    make.exe: *** [program] Error 1

    > Process Exit Code: 2
    > Time Taken: 00:01

    Powiedzmy że nie jest to zaskakujące bo nie ma zainstalowanego giveio. Dlaczego nie ma? Bo nie umiem tego zrobić :| Nawet w trybie zgodności jak odpalę to jako administrator to i tak nie potrafi poprawnie załadować driverów... OpenOCD z tego co czytałem to dla portów równoległych opiera swoje działanie właśnie o giveio którego się nie da załadować także raczej duży problem.
    Co do najnowszego OpenOCD 0.3.1 to zainstalowałem go w zgodności z XP SP3 i próbowałem odpalić, ale przyznam się szczerze że nie jestem w tym biegły i coś mi nie wychodzi

    Code:
    C:\WinARM\utils\openocd\0.3.1\bin\openocd.exe -f interface/parport.cfg -f target/at91sam7sx.cfg 
    
    Open On-Chip Debugger 0.3.1 (2009-11-13-16:13)
    $URL$
    For bug reports, read
       http://openocd.berlios.de/doc/doxygen/bugs.html
    parport port = 888
    OLD SYNTAX: DEPRECATED - use jtag_khz, not jtag_speed
    jtag_speed: 0
    srst_only srst_pulls_trst srst_gates_jtag srst_open_drain
    Warn : use 'at91sam7s.cpu' as target identifier, not '0'
    Error: missing privileges for direct i/o
    Runtime error, file "command.c", line 473:
        make.exe: *** [program] Error 1

    > Process Exit Code: 2
    > Time Taken: 00:01
  • Specjalista - Mikrokontrolery
    Poza drobnymi warningami problem jest ten sam i w istocie jest nim brak giveio... Niestety nie umiem nic doradzić - nie mam i nigdy nie miałem JTAGa na LPT, nie mam też (jeszcze) systemu 64-bitowego. Zawsze można zainstalować w darmowym VirtualBox jakiegoś linuxa, a w nim odpalać OpenOCD, a łączyć się z nim przez ip (nie localhost:3333 tylko jakiś tam numer IP jaki miałby taki guest OS), albo XP. Wbrew pozorom nie jest to takie skomplikowane (;

    Może uda się coś znaleźć w google: "giveio vista", "giveio windows 7", "giveio 64-bit"?

    4\/3!!
  • Poziom 10  
    Freddie Chopin napisał:

    Może uda się coś znaleźć w google: "giveio vista", "giveio windows 7", "giveio 64-bit"?


    Niestety nic takiego nie ma... Jak to ładnie napisał na tym forum użytkownik nsvinc jestem na tyle zdeterminowany że poszukuje informacji na temat MOZLIWOSCI, TECHNIKI, SOFTU, STEROWNIKÓW,lub nawet ręki Boga, która pozwoli zaprogramować ARM pod windowsem x64 :D Wszędzie gdzie pojawia się temat giveio ostatecznym rozwiązaniem jest "format c:" i wgrywanie systemu 32-bit...

    Rozwiązanie z wirtualną maszyną nie wydało mi się złe więc spróbowałem zainstalować dodatek microsoftu w postaci XP MODE dla windows 7. W rezultacie otrzymujemy okienkowo otwierający się system XP pod którym możemy instalować dowolne oprogramowanie. Z instalacją giveio nie ma żadnych problemów. Inne sterowniki czy oprogramowanie również działają bez zarzutu. Dodatkowo jeżeli program posiada odpowiednią instalkę będzie on widziany normalnie z poziomu win7 i bez problemu go tam uruchomimy pomimo zamkniętej wirtualnej maszyny - sprawdziłem i działa :D Jest to rozwiązanie dla wszystkich równie zdesperowanych jak ja ALE mających programatory pod COM lub USB. Tylko dla tych portów można wybierać który z systemów ma mieć dostęp. Jak zgłębiłem temat to niestety wielu ludzi się na tym przejechało a XP MODE nie ma wsparcia dla LPT :|
    Widać na podstawie tego że być może jest jakiś problem z adresowaniem portów równoległych, lub po prostu dostępem do nich w systemie x64, skoro sterowników brak a microsoft też tego nie udostępnił w swym najnowszym "dziecku"...

    Freddie Chopin napisał:

    Zawsze można zainstalować w darmowym VirtualBox jakiegoś linuxa, a w nim odpalać OpenOCD, a łączyć się z nim przez ip (nie localhost:3333 tylko jakiś tam numer IP jaki miałby taki guest OS), albo XP. Wbrew pozorom nie jest to takie skomplikowane (;


    Jeżeli mogę mieć jeszcze do Ciebie pytanie to chciałbym się dowiedzieć czy słyszałeś że komuś udał się taki zabieg? (na jakimś systemie x64 w VirtualBox miał dostęp do LPT). Za wszelkie linki jak się zabrać do odpalenia czegoś takiego i połączenia z OpenOCD też byłbym bardzo wdzięczny :D Chętnie spróbuję i potestuję... Prędzej czy później pewnie pojawi się więcej osób z takim samym problemem
  • Specjalista - Mikrokontrolery
    Hmm... faktycznie o tym nie pomyślałem, że te wszystkie maszyny virtualne dobrze mostkują USB, ale z LPT może być ból... Niestety nie jestem Ci w stanie udzielić konkretnej odpowiedzi, ale - sprawdź - linuxy nie są aż takie skomplikowane jak się je maluje [; Zainstaluj sobie OpenSUSE albo (K)Ubuntu - tam bez problemu skompilujesz i uruchomisz OpenOCD i wszystkie pozostałe narzędzia. Może nawet się przesiądziesz na stałe, a pod linuxem zainstalujesz sobie na virtualnej maszynie XP, dla programów które "nie chcą gadać" z linuxem... Sam coś takiego rozważam, choć od lat jestem miłośnikiem Windowsa.

    Anyway - zawsze rozwiązaniem jest zakup JTAGa na USB, nie są to wcale kosmiczne pieniądze, a nie musiałbyś teraz marnować czasu na poszukiwanie rozwiązania, które być może jeszcze nie istnieje... [;

    4\/3!!
  • Poziom 28  
    1. W systemach x64 portu LPT po prostu nie ma, nawet jak fizycznie jest na płycie.
    2. Virtual Box mostkuje porty COM, ale LPT póki co nie, pozatym jeśli nawet by to robił to i tak na systemie gospodarza musi być LPT -> patrz pkt 1.
  • Poziom 10  
    Pituś Bajtuś napisał:
    1. W systemach x64 portu LPT po prostu nie ma, nawet jak fizycznie jest na płycie.

    To akurat jest zupełną nieprawdą... Port LPT jest i działa bardzo dobrze. Dla tego portu istnieją drivery dające bezpośredni dostęp jak giveio i zwą się InpOutx64 oraz WinRing0. Niestety wg mojego kilku dniowego googlowania do dziś nikt chyba nie popełnił żadnego softu do wigglera z ich wykorzystaniem...

    Co do samego Windowsa 7 x64 PRO to jestem bardzo zadowolony. Generalnie chciałbym polecić całemu bractwu elektroników zwłaszcza tej części która korzysta z Visty (win7 jest lepszy). Co do użytkowników XP to nie radzę się spieszyć z przesiadaniem na nowy system. Jeżeli ktoś by był zainteresowany to pod win 7 x64:
    -WinAVR - w wersji 20090313 działa bez problemu
    - programowanie AVRków przez LPT za pomocą programatora Dybkowskiego śmiga wzorcowo
    -WinARM - jeżli zainstaluje się zgodnie z wskazówkami dla Visty też kompiluje bez problemu
    dla zainteresowanych jeszcze może napisze że Borland C++ Builder 6.0 też działa, wystarczy zainstalowac w zgodności z XP SP3, a następnie wyłączyć odpowiednią opcję linkera żeby się nie pluł o DLLki.


    Freddie Chopin napisał:
    Anyway - zawsze rozwiązaniem jest zakup JTAGa na USB, nie są to wcale kosmiczne pieniądze, a nie musiałbyś teraz marnować czasu na poszukiwanie rozwiązania, które być może jeszcze nie istnieje... [;


    No niestety rozwiązanie chyba faktycznie nie istnieje :| Dla VirtualBox niby są jakieś nieoficjalne dodatki żeby LPT śmigało ale coś cienko to widzę... Wiem że JTAG na USB to w sumie nie najgorsze rozwiązanie, miałem całkiem niedawno Twojego autorstwa sprzęt w ręce :D Niestety odpalenie tego na windowsie x64 bit to i tak troszkę zabawy by było na dzień dzisiejszy...
    Dlatego w święta przesiądę się na windows 7 x32 :D Cóż przykro że trzeba się uwsteczniać, ale różnica w działaniu programów jest powiedzmy sobie szczerze niezauważalna, a oszczędność czasu może być spora. Niestety nie każdy ma dostęp do MSDN i nie każdy czytając kiedyś ten watek bedzie sobie mógł na takie rozwiązanie pozwolić...

    pozdr.
  • Poziom 18  
    Openocd przez USB pod x64 działa znakomicie, wystarczy tylko sterowniki 64-bitowe wgrać.
  • Specjalista - Mikrokontrolery
    No tak, ale ponoć z tymi "niepodpisanymi" (jak luibusb-win32) jest dużo zabawy - jakieś przełączanie w tryb testowy aby je zainstalować itp...

    4\/3!!