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

Konfiguracja OpenOCD z Atmel-ICE i Atmega32 pod Linuksem - jak to zrobić?

kk.krz 16 Lip 2017 19:14 1335 16
  • #1 16591170
    kk.krz
    Poziom 4  
    Witam,

    ja ogarnąć konfigurację tego tercetu?
    Korzystałem ze strony:
    http://vk5tu.livejournal.com/56648.html

    ... ale tam jest inny target.

    Mi zależy aby zmusić Atmel-ICE pod Linuksem do debuggowania
    Atmege32.

    Mój config:

    atmel_ice.cfg
    krzysiek@krzysiek:~$ cat atmel_ice.cfg
    -------------------------------------------------------------
    Kod: Ini
    Zaloguj się, aby zobaczyć kod

    --------------------------------------------------------------

    Drugi wziąłem z /usr/share/openocd/scripts/target/avr32.cfg. Wygląda tak:
    --------------------------------------------------------------
    Kod: Ini
    Zaloguj się, aby zobaczyć kod


    ------------------------------------------------------------

    Uruchamiam tak:
    Kod: Bash
    Zaloguj się, aby zobaczyć kod


    A dostaję:

    Kod: Bash
    Zaloguj się, aby zobaczyć kod


    Co jest grane? Wygląda na to, że nie mogę go zmusić do JTAG.
  • #3 16591317
    kk.krz
    Poziom 4  
    Freddie Chopin napisał:
    Spróbuj zmienić wywołanie na:

    openocd -f atmel_ice.cfg -c "transport select jtag" -f /usr/share/openocd/scripts/target/avr32.cfg


    Kod: Bash
    Zaloguj się, aby zobaczyć kod
  • #5 16591356
    kk.krz
    Poziom 4  
    kk.krz napisał:
    Freddie Chopin napisał:
    Spróbuj zmienić wywołanie na:

    openocd -f atmel_ice.cfg -c "transport select jtag" -f /usr/share/openocd/scripts/target/avr32.cfg


    Kod: Bash
    Zaloguj się, aby zobaczyć kod


    Natomiast

    Kod: Bash
    Zaloguj się, aby zobaczyć kod
  • #6 16591408
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Uwierz, że "transport" można wybierać dopiero po wybraniu interfejsu. Próby zmiany kolejności tutaj nic nie dadzą i nic tym sposobem nie osiągniesz. Zaktualizuj OpenOCD i upewnij się, że cmsis-dap w OpenOCD w ogóle może używać trybu JTAG.
  • #7 16591437
    kk.krz
    Poziom 4  
    Skompilowałem z opcją:

    Kod: Bash
    Zaloguj się, aby zobaczyć kod


    Teraz:

    Kod: Bash
    Zaloguj się, aby zobaczyć kod


    Czyli coś do przodu, ale wciąż nie działa.
  • #9 16591500
    kk.krz
    Poziom 4  
    Atmel Studio w swoich czarownych funkcjach powiedział mi, że mam w debuggerze Atmel-ICE firmware aktualne :/


    EDIT:


    Poszło tak:

    openocd -f /usr/local/share/openocd/scripts/interface/cmsis-dap.cfg -c "transport select jtag; adapter_khz 500;" -f /usr/local/share/openocd/scripts/target/avr32.cfg

    czyli było za szybko. Teraz badam czy da się tego używać. Na razie wiem, że nie mogę shaltować z telnetu.
  • #11 16591555
    kk.krz
    Poziom 4  
    Jak już napisałem wyżej, działa, ale tylko z roota. Nie wiem z jakich /dev/* on korzysta i nie wiem jak poprawić uprawnienia żeby chodziło też z usera. Szukam....

    Dziękuje!

    Dodano po 11 [minuty]:

    A jednak nie do końca działa.
    Teraz mam:

    Kod: Bash
    Zaloguj się, aby zobaczyć kod


    Po połączeniu z
    Kod: Bash
    Zaloguj się, aby zobaczyć kod
    i wywołaniu
    Kod: Bash
    Zaloguj się, aby zobaczyć kod


    Brak listy/tablicy jejestrów procesora z sugestią zaimplementowania jej? Ale jak?

    No ale ok, problem jest raczej tutaj:

    Kod: Bash
    Zaloguj się, aby zobaczyć kod
  • #12 16591710
    Freddie Chopin
    Specjalista - Mikrokontrolery
    kk.krz napisał:
    No ale ok, problem jest raczej tutaj:

    Jeśli to kwestia innego ID, to wystarczy jak dodasz sobie go do pliku .cfg którego używasz.

    kk.krz napisał:
    Jak już napisałem wyżej, działa, ale tylko z roota. Nie wiem z jakich /dev/* on korzysta i nie wiem jak poprawić uprawnienia żeby chodziło też z usera. Szukam....

    Spróbuj tak:

    1. z folderu instalacyjnego OpenOCD przekopiować stosowny plik do
    folderu z regułami udev. Przykładowo u mnie wyglądałoby to tak:

    $ sudo cp /usr/share/openocd/contrib/60-openocd.rules /etc/udev/rules.d/

    2. Należy dodać swojego użytkownika do grupy "plugdev". Przykładowo:

    $ usermod -aG plugdev $(whoami)

    3. restart systemu

    4. Teraz powinno się dać uruchomić OpenOCD bez żadnych zabaw z "sudo".
  • #13 16591752
    kk.krz
    Poziom 4  
    raczej z roota:

    usermod -aG plugdev user

    Ale tym się nie przejmuje, z tym sobie jakoś tam poradze.

    Na problem z ID też wpadłem i stosownie zmieniłem w configu.

    Problem jest po połączeniu się z gdb przez
    Kod: Bash
    Zaloguj się, aby zobaczyć kod


    Wyrzuca to:
    Kod: Bash
    Zaloguj się, aby zobaczyć kod


    i tu nawet google dość milczące :(
  • #14 16591761
    Freddie Chopin
    Specjalista - Mikrokontrolery
    AVR32 to martwa platforma, wiec nie jest to specjalnie dziwne... Zawsze możesz spróbować przeszukać źródła OpenOCD w poszukiwaniu funkcji która to wyświetla i może tam będzie coś więcej. Warto też napisać na listę dyskusyjną albo i nawet spróbować skontaktować się bezpośrednio z autorem danego pliku źródłowego.
  • #15 16591784
    kk.krz
    Poziom 4  
    Dziękuję Ci za pomoc.

    Troche mnie to "ugotowało", bo sam chyba przez to nie przebrnę. A ten Atmel-ICE pod Atmel Studio genialnie chodzi. Ale teraz coś mnie na Linuksa tknęło. No i do tego w Code::Blocks. Tam ładnie działa mi xds100v2 na tych lpc2142, co do których mi w innym wątku pomogłeś.
    A że ten Code:Blocks mi sie praktycznie nie wiesza, no i ogólnie mi się podoba, to sobie pomyślałem,
    że sobie z tego zrobię takie uniwersalne środowisko. Szczególnie, że do Eclipse mam jakiś uraz. Chyba po tym, jak po czystej instalacji Debiana na dzień dobry mi Eclipse Seg..faultami pluł i znikał bez śladu. Jak się okazało z powodu...Xfce albo Gtk.

    Tylko mi w C::B brakuje podglądu rejestrów...tzn. no np. jak wpisze
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    to bym sobie mógł zaglądnąć do IODIR1'a czy faktycznie ustawiło bit. W Atmel Studio takie czary są możliwe, w C::B widzę tylko "czyste" rejestry procesora.

    Eclipse ma takie "cudowne" właściwości?
  • Pomocny post
    #16 16591799
    Freddie Chopin
    Specjalista - Mikrokontrolery
    kk.krz napisał:
    Eclipse ma takie "cudowne" właściwości?

    Sam w sobie nie, ale jest kilka wtyczek które to robią, np. "embsysregview" (nie działa na dwóch najnowszych wersjach Eclipse) i chyba GNU ARM Eclipse też coś takiego ma. W ostateczności można zawsze posiłkować się zakładką Expressions i sobie tam wpisać co trzeba - np. "IODIR1" - czasem działa, zależnie od tego w jaki sposób konfigurowany jest projekt i czy GDB może odnaleźć taki symbol w pliku.
REKLAMA