X

[STM32F103R]+[openocd]+[oocdlink] - problem z Jtagiem

mkelektronik_21 16 Dec 2009 20:30
  • #1 16 Dec 2009 20:30
    mkelektronik_21
    Level 10  
    Helpful post? (0)
    Witam,

    próbuję uruchomić program napisany przez Freddie'go Chopin'a, na procku STM32F103R wlutowanym w moduł MMstm32F103R http://www.propox.com/products/t_174.html,, na płycie ewaluacyjnej EVBmm http://www.propox.com/products/t_183.html

    Zainstalowałem oprogramowanie, sterowniki, Eclipse, openocd itp. według instrukcji umieszczonej na stronie Freddiego.
    Projekt udało mi się skompilować poprawnie.

    Problem polega na tym, iż nie mogę przez openocd skomunikować się z prockiem.
    Używam : Open On-Chip Debugger 0.3.1 (2009-11-13-16:13) i Jtag oocdlink.

    polecenie: openocd -f interface/oocdlink.cfg -f target/stm32.cfg
    wywołuje efekt:

    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
    5 kHz
    500 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 500 kHz
    Info : JTAG tap: stm32.cpu tap/device found: 0x00d80037 (mfg: 0x01b, part: 0x0d8
    0, ver: 0x0)
    Warn : JTAG tap: stm32.cpu UNEXPECTED: 0x00d80037 (mfg: 0x01b, part: 0x0d8
    0, ver: 0x0)
    Error: JTAG tap: stm32.cpu expected 1 of 1: 0x87fd047d (mfg: 0x23e, part: 0x7fd
    0, ver: 0x8)
    Warn : TAP stm32.bs does not have IDCODE
    Warn : JTAG tap: stm32.bs UNEXPECTED: 0x00000000 (mfg: 0x000, part: 0x0000
    , ver: 0x0)
    Error: JTAG tap: stm32.bs expected 1 of 5: 0x06412041 (mfg: 0x020, part: 0x6412
    , ver: 0x0)
    Error: JTAG tap: stm32.bs expected 2 of 5: 0x06410041 (mfg: 0x020, part: 0x6410
    , ver: 0x0)
    Error: JTAG tap: stm32.bs expected 3 of 5: 0x16410041 (mfg: 0x020, part: 0x6410
    , ver: 0x1)
    Error: JTAG tap: stm32.bs expected 4 of 5: 0x06414041 (mfg: 0x020, part: 0x6414
    , ver: 0x0)
    Error: JTAG tap: stm32.bs expected 5 of 5: 0x06418041 (mfg: 0x020, part: 0x6418
    , ver: 0x0)
    Warn : Unexpected idcode after end of chain: 33 0x1ff84000
    Warn : Unexpected idcode after end of chain: 65 0xfc000000
    Warn : Unexpected idcode after end of chain: 97 0xe0000003
    Warn : Unexpected idcode after end of chain: 129 0xf000000f
    Warn : Unexpected idcode after end of chain: 161 0xf000000f
    Warn : Unexpected idcode after end of chain: 193 0xf000000f
    Warn : Unexpected idcode after end of chain: 225 0xf000000f
    Warn : Unexpected idcode after end of chain: 257 0xf000000f
    Warn : Unexpected idcode after end of chain: 289 0xf000000f
    Warn : Unexpected idcode after end of chain: 321 0xf000000f
    Warn : Unexpected idcode after end of chain: 353 0xf000000f
    Warn : Unexpected idcode after end of chain: 385 0xf000000f
    Warn : Unexpected idcode after end of chain: 417 0xf000000f
    Warn : Unexpected idcode after end of chain: 449 0xf000000f
    Warn : Unexpected idcode after end of chain: 481 0xf000000f
    Warn : Unexpected idcode after end of chain: 513 0xf000000f
    Warn : Unexpected idcode after end of chain: 545 0xf000000f
    Warn : Unexpected idcode after end of chain: 577 0xf000000f
    Error: double-check your JTAG setup (interface, speed, missing TAPs, ...)
    Info : JTAG tap: stm32.cpu tap/device found: 0x00d8003f (mfg: 0x01f, part: 0x0d8
    0, ver: 0x0)
    Warn : JTAG tap: stm32.cpu UNEXPECTED: 0x00d8003f (mfg: 0x01f, part: 0x0d8
    0, ver: 0x0)
    Error: JTAG tap: stm32.cpu expected 1 of 1: 0x87fd047d (mfg: 0x23e, part: 0x7fd
    0, ver: 0x8)
    Warn : TAP stm32.bs does not have IDCODE
    Warn : JTAG tap: stm32.bs UNEXPECTED: 0x00000000 (mfg: 0x000, part: 0x0000
    , ver: 0x0)
    Error: JTAG tap: stm32.bs expected 1 of 5: 0x06412041 (mfg: 0x020, part: 0x6412
    , ver: 0x0)
    Error: JTAG tap: stm32.bs expected 2 of 5: 0x06410041 (mfg: 0x020, part: 0x6410
    , ver: 0x0)
    Error: JTAG tap: stm32.bs expected 3 of 5: 0x16410041 (mfg: 0x020, part: 0x6410
    , ver: 0x1)
    Error: JTAG tap: stm32.bs expected 4 of 5: 0x06414041 (mfg: 0x020, part: 0x6414
    , ver: 0x0)
    Error: JTAG tap: stm32.bs expected 5 of 5: 0x06418041 (mfg: 0x020, part: 0x6418
    , ver: 0x0)
    Warn : Unexpected idcode after end of chain: 33 0x1ff84000
    Warn : Unexpected idcode after end of chain: 65 0xff000000
    Warn : Unexpected idcode after end of chain: 97 0xf8000000
    Warn : Unexpected idcode after end of chain: 129 0xf0000007
    Warn : Unexpected idcode after end of chain: 161 0xf000000f
    Warn : Unexpected idcode after end of chain: 193 0xf000000f
    Warn : Unexpected idcode after end of chain: 225 0xf000000f
    Warn : Unexpected idcode after end of chain: 257 0xf000000f
    Warn : Unexpected idcode after end of chain: 289 0xf000000f
    Warn : Unexpected idcode after end of chain: 321 0xf000000f
    Warn : Unexpected idcode after end of chain: 353 0xf000000f
    Warn : Unexpected idcode after end of chain: 385 0xf000000f
    Warn : Unexpected idcode after end of chain: 417 0xf000000f
    Warn : Unexpected idcode after end of chain: 449 0xf000000f
    Warn : Unexpected idcode after end of chain: 481 0xf000000f
    Warn : Unexpected idcode after end of chain: 513 0xf000000f
    Warn : Unexpected idcode after end of chain: 545 0xf000000f
    Warn : Unexpected idcode after end of chain: 577 0xf000000f
    Error: double-check your JTAG setup (interface, speed, missing TAPs, ...)

    Plik oocdlink.cfg wygląda u mnie nastepująco:

    #
    # Joern Kaipf's OOCDLink
    #
    # http://www.joernonline.de/contrexx2/cms/index.php?page=126
    #

    interface ft2232
    ft2232_device_desc "OOCDLink"
    ft2232_layout oocdlink
    ft2232_vid_pid 0x0403 0xbaf8
    jtag_khz 5


    A plik stm32.cfg tak:

    # script for stm32

    if { [info exists CHIPNAME] } {
    set _CHIPNAME $CHIPNAME
    } else {
    set _CHIPNAME stm32
    }

    if { [info exists ENDIAN] } {
    set _ENDIAN $ENDIAN
    } else {
    set _ENDIAN little
    }

    # Work-area is a space in RAM used for flash programming
    # By default use 16kB
    if { [info exists WORKAREASIZE] } {
    set _WORKAREASIZE $WORKAREASIZE
    } else {
    set _WORKAREASIZE 0x4000
    }

    # JTAG speed should be <= F_CPU/6. F_CPU after reset is 8MHz, so use F_JTAG = 1MHz
    jtag_khz 1000

    jtag_nsrst_delay 100
    jtag_ntrst_delay 100

    #use combined on interfaces or targets that can't set TRST/SRST separately
    reset_config trst_and_srst

    #jtag scan chain
    if { [info exists CPUTAPID ] } {
    set _CPUTAPID $CPUTAPID
    } else {
    # See STM Document RM0008
    # Section 26.6.3
    set _CPUTAPID 0x87fd047d

    }
    jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID

    if { [info exists BSTAPID ] } {
    # FIXME this never gets used to override defaults...
    set _BSTAPID $BSTAPID
    } else {
    # See STM Document RM0008
    # Section 29.6.2
    # Low density devices, Rev A
    set _BSTAPID1 0x06412041

    # Medium density devices, Rev A
    set _BSTAPID2 0x06410041
    # Medium density devices, Rev B and Rev Z
    set _BSTAPID3 0x16410041
    # High density devices, Rev A
    set _BSTAPID4 0x06414041
    # Connectivity line devices, Rev A and Rev Z
    set _BSTAPID5 0x06418041
    }
    jtag newtap $_CHIPNAME bs -irlen 5 -expected-id $_BSTAPID1 \
    -expected-id $_BSTAPID2 -expected-id $_BSTAPID3 \
    -expected-id $_BSTAPID4 -expected-id $_BSTAPID5

    set _TARGETNAME $_CHIPNAME.cpu
    target create $_TARGETNAME cortex_m3 -endian $_ENDIAN -chain-position $_TARGETNAME

    $_TARGETNAME configure -work-area-virt 0 -work-area-phys 0x20000000 -work-area-size $_WORKAREASIZE -work-area-backup 0

    flash bank stm32x 0 0 0 0 $_TARGETNAME

    # For more information about the configuration files, take a look at:
    # openocd.texi

    ##########################################################

    Jtag z prockiem STR712FR2 działa poprawnie tzn. mogę nad nim zapanować w openocd, a z STM32 nie może się dogadać.

    Podłączenie procka stm32F103R do interfejsu Jtaga na płycie ewaluacyjnej powinno być poprawne, gdyż wykonane jest na podstawie schematu: http://olimex.com/dev/images/ARM/ST/STM32-103STK-sch.gif
    I po podłączeniu Wigller Jtaga w programie H-Jtag procek zgłasza się jako CORTEX-M3 0x3BA00477.

    Z góry wielkie dzięki za pomoc
  • #2 17 Dec 2009 07:30
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Helpful post? (0)
    Wywal z pliku oocdlink linijkę "jtag_khz 5"

    Bardzo ciekawa jest ta linia: Info : clock speed 500 kHz, a ciekawa jest o tyle, że w plikach konfiguracyjnych jest najpierw 5, a potem 1000, więc skąd nagle wzięło się 500?

    Czy Twój JTAG ma dwie linie resetu (TRST i SRST)? Bo tak jest skonfigurowane stm32 - "reset_config trst_and_srst" - a jeśli masz inaczej, to może być problem. Tutaj też założone jest, że linia SRST jest open drain, a TRST jest push-pull - jeśli tak nie jest, to też może być lekki problem. Na schemacie który pokazałeś jest zworka do łączenia SRST z TRST - masz taką też? Jest założona?

    Jaki masz system operacyjny?

    4\/3!!
  • #3 17 Dec 2009 08:20
    mkelektronik_21
    Level 10  
    Topic author Helpful post? (0)
    Wywalę tą linijkę.

    Próbowałem zmieniać prędkości Jtaga i wkleiłem odpowiedź openocd do wcześniejszej próby z prędkością 500 kHz.

    Używam Windowsa XP.

    Załączyłem schemat mojego Jtaga.

    Próbowałem z załączoną zworką jak i bez niej, odpowiedź była taka sama.
  • #4 17 Dec 2009 08:42
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Helpful post? (0)
    Wg schematu linie są dwie i raczej działają tak jak należy...

    Spróbuj może w stm32.cfg zmienić wartość reset_config na "none"?

    4\/3!!
  • #5 17 Dec 2009 09:02
    pawel_rad
    Level 10  
    Helpful post? (0)
    Mam takiego samego oocdlinka, początkowo tez miałem problemy z odpaleniem debuggowania.
    W moim przypadku (używam ARM mod II, mam dwie linie resetu) pomogła, zmiana ustawień z liniami resetu na następującą (w pliku stm32.cfg):

    #use combined on interfaces or targets that can't set TRST/SRST separately
    reset_config trst_only trst_push_pull

    Jeśli u Ciebie nie zadziała to masz linka do stosownego źródła informacji:
    Link
  Search 4 million + Products
Browse Products