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

[stm32][openOCD+Triton] Problem z plikiem konfiguracyjnym

lll7 30 Kwi 2010 21:11 2275 9
  • #1 8020937
    lll7
    Poziom 11  
    Posty: 27
    Ocena: 2
    Witam,
    Zakupiłem sobie stm32butterfly, do tego programator z Allegro, przeczuwam, że był to błąd, o nazwie Triton. No i mam problem. Plik do open ocd dostarczony z programatorem jest skonfigurowany do pracy z atsam7 i w sumie nie bardzo wiem jak go zmienić, szczególnie że napisany jest dla starszej wersji openOCD. Probowałem zrobić swój własny plik konfiguracyjny w opoarciu o ten mi dostarczony. Napisałem go tak.
    triton.cfg
    # egnite triton
       telnet_port 		4444
       gdb_port 		3333
    
    interface ft2232
    ft2232_device_desc "Triton JTAG A"
    ft2232_layout turtelizer2
    ft2232_vid_pid 0x0403 0xbdc8


    wpisuje sobie w konsoli openocd -f interface/triton.cfg -f target/stm32.cfg po czym otrzymuje

    Microsoft Windows XP [Wersja 5.1.2600]
    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
    1000 kHz
    jtag_nsrst_delay: 100
    jtag_ntrst_delay: 100
    trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain
    Info : clock speed 1000 kHz
    Error: JTAG scan chain interrogation failed: all ones
    Error: Check JTAG interface, timings, target power, etc.
    Error: JTAG scan chain interrogation failed: all ones
    Error: Check JTAG interface, timings, target power, etc.


    A tutaj zamieszczam Plik konfiguracyjny dołączony do programatora, uruchamiam go z pliku openocd-ftd2xx.exe. at91sam7_FLASH.cfg
    #define our ports
       telnet_port 		4444
       gdb_port 		3333
    #commands specific
       interface 		ft2232
       ft2232_device_desc 	"Triton JTAG A"
       ft2232_layout 	turtelizer2
       ft2232_vid_pid 	0x0403 0xbdc8
    
       jtag_speed 		3  
       jtag_nsrst_delay 50 #200		
       jtag_ntrst_delay	50 #200		
    
    #reset_config <signals> [combination] [trst_type] [srst_type]
       reset_config 	srst_only srst_pulls_trst
    
    #jtag_device <IR length> <IR capture> <IR mask> <IDCODE instruction>
       jtag_device 		4 0x1 0xf 0xe
    
    #daemon_startup <'attach'|'reset'>
       daemon_startup 	reset
    
    #target <type> <endianess> <reset_mode> <jtag#> [variant]
       target 		arm7tdmi little run_and_init 0 arm7tdmi_r4
    
    #run_and_halt_time <target#> <time_in_ms>
       run_and_halt_time 	0 30
    
    #target_script specifies the programming script file
       target_script 	0 reset sam7s_FLASH.script
    
    #working_area <target#> <address> <size> <'backup'|'nobackup'>
       working_area 	0 0x40000000 0x4000 nobackup
    
    #flash bank at91sam7 0 0 0 0 <target#>
       flash bank 		at91sam7 0 0 0 0 0


    to co mi w skrócie wyskakuje po jego uruchomieniu

    Open On-Chip Debugger (2008-05-16 20:15) svn: 657
    URL: http://svn.berlios.de/svnroot/repos/openocd/trunk
    Info:    options.c:50 configuration_output_handler(): jtag_speed: 3, 3
    Info:    options.c:50 configuration_output_handler(): Open On-Chip Debugger (200
    8-05-16 20:15) svn: 657
    Error:   jtag.c:1338 jtag_examine_chain(): JTAG communication failure, check con
    nection, JTAG interface, target power etc.
    Error:   jtag.c:1543 jtag_init_inner(): trying to validate configured JTAG chain
     anyway...
    


    Czyli czy tak czy owak wyskakuje błąd w połączeniu, nie wiem czy może to być wina źle zrobionych plików konfiguracyjnych, czy raczej programator ? Bo płytka powinna być raczej w porządku. W każdym razie proszę o opinie bardziej doświadczonych kolegów. Pozdrawiam :).

    Proszę napisać w temacie o co chodzi dokładnie.
    Robak
  • #3 8022823
    lll7
    Poziom 11  
    Posty: 27
    Ocena: 2
    Ok, teraz mój plik konfiguracyjny wygląda tak
       
    telnet_port 		4444
    gdb_port 		3333
    
    interface ft2232
    ft2232_device_desc "Triton JTAG A"
    ft2232_layout turtelizer2
    ft2232_vid_pid 0x0403 0xbdc8
    
    reset_config srst_only srst_pulls_trst
    


    Ale w sumie prawie żadnej zmiany nie ma po odpaleniu uzyskuje ciągle ...
    
    srst_only srst_pulls_trst srst_gates_jtag srst_open_drain
    1000 kHz
    jtag_nsrst_delay: 100
    jtag_ntrst_delay: 100
    trst_and_srst srst_pulls_trst srst_gates_jtag trst_push_pull srst_open_drain
    Info : clock speed 1000 kHz
    Error: JTAG scan chain interrogation failed: all ones
    Error: Check JTAG interface, timings, target power, etc.
    Error: JTAG scan chain interrogation failed: all ones
    Error: Check JTAG interface, timings, target power, etc.
    
  • #5 8023599
    lll7
    Poziom 11  
    Posty: 27
    Ocena: 2
    Z tego co rozumiem to w tym moim programatorze nie ma podłączonej jednej z Lini resetu stąd nie mogę użyć tej standardowej konfiguracji resetu, dlatego używam tego :
    "reset_config srst_only srst_pulls_trst "
    Z tego co napisałeś wnioskuje, że jest jakaś domyśla konfiguracja zachowania OpenOCD podczas resetu i powinienem zmodyfikować tamtą czy ją użyć, a jeśli tak to jak? Bo jak przeglądałem User's Guide-a z OpenOCD to tam powody użycia tej funkcji i flagi opisane są, natomiast nie umiem się doszukać tego o czym ty piszesz. :). Może po prostu muszę więcej nad tym manualem posiedzieć bo szczerze powiedziawszy to średnio wiem co się w tym pliku konfiguracyjnym dzieje. Może wiesz gdzie można poza tym pdf-em doszukać się bardziej skondensowanych informacji na temat OpenOCD ?
  • Pomocny post
    #6 8023704
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    Przede wszystkim o pomoc powinieneś się zwrócić do osoby która sprzedała Ci JTAGa i dołączyła do OpenOCD (nielegalnie dystrybuowanego zresztą) jakieś dziwaczne pliki.

    Dalej idąc - odpalasz OpenOCD używając DWÓCH plików konfiguracyjnych, linia reset_config jest też w tym drugim (target/stm32.cfg) - oryginalnym. Tam też musisz to zmienić, albo zakomentować skoro masz tą linię w pliku od JTAGa.

    4\/3!!
  • #7 8025456
    lll7
    Poziom 11  
    Posty: 27
    Ocena: 2
    Jak rozumiem tu chodzi o tą linię w konsoli
    trst_and_srst srst_pulls_trst srst_gates_jtag trst_push_pull srst_open_drain 


    Jakoś zrobiłem, że już jej nie ma :).

    srst_only srst_pulls_trst srst_gates_jtag srst_open_drain
    1000 kHz
    jtag_nsrst_delay: 100
    jtag_ntrst_delay: 100
    Info : clock speed 1000 kHz
    Error: JTAG scan chain interrogation failed: all ones
    Error: Check JTAG interface, timings, target power, etc.
    Error: JTAG scan chain interrogation failed: all ones
    Error: Check JTAG interface, timings, target power, etc.
    Command handler execution failed
    Warn : jtag initialization failed; try 'jtag init' again.


    Ale i tak ciągle prawie ten sam błąd.
    "try 'jtag init' " tzn ze co ? mam włączyć openOCD jeszce raz ? No nic nie daje.
  • Pomocny post
    #8 8025469
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    W takim razie nadszedł dobry moment na zwrócenie się o pomoc do sprzedawcy... "all ones" (albo "all zeroes") w 99% przypadków wskazuje na problem sprzętowy, choć niekoniecznie leżący po stronie JTAGa - może na targecie JTAG jest źle podłączony bądź wyłączony?

    4\/3!!
  • #9 8025926
    lll7
    Poziom 11  
    Posty: 27
    Ocena: 2
    Na target raczej bym nie zwalał bo próbowałem programować dwa różne układy i za każdym razem to samo. Pójdę za Twoją radą i może się mi uda dogadać, jak coś się ruszy to dam znać, a na razie to dziękuje Ci serdecznie za pomoc. :) Jeszce jedno, znasz może jakiś sposób na przetestowanie tego JTAG-a ? Do dyspozycji mam w sumie tylko zwykły multimetr, ale może od bólu jakiś oscyloskop by się znalazł. :)
  • #10 8026229
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    Nie wiem jak taki układ można przetestować prosto multimetrem lub oscyloskopem. Zasadniczo jak coś jest na liniach, to działa, jak nie ma - to nie [;

    4\/3!!

Podsumowanie tematu

LABEL_AI_GENERATED
Użytkownik napotkał problemy z konfiguracją pliku OpenOCD dla programatora Triton, który został zakupiony do pracy z mikrokontrolerem STM32. Początkowo plik konfiguracyjny był dostosowany do innego układu (ATSAM7), co wymagało modyfikacji. Po dodaniu linii "reset_config srst_only srst_pulls_trst" do pliku konfiguracyjnego, użytkownik nadal otrzymywał błędy związane z interfejsem JTAG, w tym "JTAG scan chain interrogation failed". Użytkownicy sugerowali, że problem może leżeć w sprzęcie, a także wskazali na konieczność sprawdzenia oryginalnego pliku konfiguracyjnego dla STM32. Użytkownik rozważał również testowanie programatora za pomocą multimetru lub oscyloskopu.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA