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

openocd z eclipse z stm32f103c8 w linuksie - openocd nie haltuje i nie flashuje

16 Wrz 2017 18:03 921 7
  • Poziom 4  
    Witam.

    Ubuntu + eclipse + openocd + arm-none-eabi-gdb
    Płytka jak tu: http://www.microcontroller-project.com/getting-started-with-stm32f103.html
    Programator jak tu: http://propix.com.pl/pl/p/ST-LINK-V2-SWD/422

    Wersja działająca:

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


    Jest ok, oczekuje no więc łącze się przez
    Kod: bash
    Zaloguj się, aby zobaczyć kod

    Ustawiam brackpointy i łącze się target remote :3333

    potem mon reset init i load i "c" i wszystko działa ok.

    Wersja niedziałająca:
    W eclipse, po skonfigurowaniu scieżek openocd i arm-none-eabi-gdb w oknie Debug configuration i skompilowaniu programu włączam debugowanie:

    Dostaje błąd:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Czyli wygląda, że nie startuje openocd.

    Ok, więc wyłączam korzystanie z pliku konfiguracyjnego i ustawiam ręcznie Debug device STLink_V2 i protokół SWD.
    Włączam debuggowanie i widzę w konsoli, że startuje openocd ale dostaję:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Czyli nie może shaltować procesora i wgrać programu. Dziwne. Ręcznie działało i
    do wgrania programu nie musiałem nawet haltować. Stąd nie lubie tych wszystkich nakładek i fiuczerów. Nie widze dlaczego nie działa.
    Może ktoś pomóc?
  • Computer ControlsComputer Controls
  • Specjalista - Mikrokontrolery
    No ale skąd mamy wiedzieć jak skonfigurowałeś wszystko w Eclipse? Bo chyba nie sądzisz że poniższy opis rozwiewa wszelkie wątpliwości:

    kk.krz napisał:
    W eclipse, po skonfigurowaniu scieżek openocd i arm-none-eabi-gdb w oknie Debug configuration i skompilowaniu programu włączam debugowanie


    Wrzuć screenshoty wszystkich istotnych okienek oraz info o tym jak odpalasz OpenOCD w Eclipse.
  • Poziom 4  
    openocd z eclipse z stm32f103c8 w linuksie - openocd nie haltuje i nie flashuje

    openocd z eclipse z stm32f103c8 w linuksie - openocd nie haltuje i nie flashuje

    Właściwie to jednie te dwa wydają mi się istotne. Jeśli chodzi o opcje Reset and delay oraz Halt
    oraz wpis mon reset init w komendach dodatkowych to nie zauważyłem wpływu.

    Openocd uruchamia się automatycznie w eclipse, po tym jak włączam debuggowanie. Tylko
    problem polega na tym chyba, włączając go ręcznie to wiem jakie pliki mu daje w -f a tu nie widzę nic i nie wiem co on tam w tle robi, że nie działa poprawnie.

    Jeśli coś jeszcze mam wkleić, to powiedz mi tylko co... :)
  • Computer ControlsComputer Controls
  • Pomocny post
    Specjalista - Mikrokontrolery
    A możesz spróbować uruchomić OpenOCD "poza" Eclipse, a w konfigu w Eclipse jakoś zrobić tak żeby nie odpalało OpenOCD? Ewentualnie po prostu spróbuj zrobić tak, że to co wpisywałeś z linii komend podajesz do "OpenOCD options", a resztę opcji jakoś trzeba by wyłączyć - np "Use default config" albo "Use local config" i wskazać mu pusty plik (albo /dev/null" (; ). Zapewne problem polega na tym, że wyklikana przez Eclipse konfiguracja używa innych ustawień resetu niż są w rzeczywistości no i już jest problem... Porównaj sam co wyświetla Ci OpenOCD odpalone z konsoli na samym początku. W Eclipse ustawia taką konfigurację resetu "srst_only separate srst_nogate srst_open_drain connect_assert_srst", z linii komend na 99% będzie to wyglądało inaczej i obstawiam że o to właśnie chodzi.

    Anyway - jak widzisz najprościej byłoby OpenOCD odpalić sobie albo ręcznie, albo poprzez "External tool" w Eclipse, tak że możesz mu podać dokładnie takie opcje jakie Cię interesują. W takim wypadku zamiast się bawić w konfigurację debuggowania z Ac6 możesz równie dobrze użyć standardowej wtyczki Eclipse'a "C/C++ GDB Hardware Debugging".
  • Computer ControlsComputer Controls
  • Pomocny post
    Poziom 18  
    Chiński stlink, więc polecam sprawdzić:
    Code:
    reset_config none separate
  • Poziom 4  
    Jak najbardziej tak zrobiłem i wszystko działa jak trzeba. Mój upór wynikał stad, że skoro
    jest wtyczka AC6 z opcją uruchamiania Openocd, to korzystałem z niej sądząc, że dlatego nie działa,
    bo coś zrobiłem źle.


    Finał sprawy taki: Zrobiłem nowy config korzystając z C/C++ GDB Hardware Debugging, tam ustawiłem
    ścieżkę do arm-none-eabi-gdb, ustawiłem też port 3333 zamiast 1000.
    Openocd odpalam z konsoli tak, jak napisałem w pierwszym poście.

    Freddie...powiedz mi gdzie w tych szablonach wypluwanych z CubeMX są wszystkie opcje kompilatora
    i linkera zaszyte? Chciałbym je móc wykorzystać w zrobieniu szablony w codeblocku.

    Wszystko jest w Debug/makefile ?
  • Pomocny post
    Specjalista - Mikrokontrolery
    kk.krz napisał:
    Wszystko jest w Debug/makefile ?

    Tam albo w plikach które są przez niego "wciągane" przy pomocy dyrektywy "include".