Mam problem z uruchomieniem Eclipse + usbscarab2 + stm32f103rbt6 (eval board od stm).
Calosc robiona wg poradnika ze strony Freddiego.
Czesc narzedziowa, tj openocd + jtag oparta na openocd w wersji 0.4.0, wywolany z argumentami:
-f interface/usbscarab2.cfg -f target/stm32.cfg
gdzie usbscarab2.cfg jest tresci:
#interface
interface ft2232
ft2232_device_desc "usbScarab2 A"
ft2232_layout "olimex-jtag"
ft2232_vid_pid 0x0403 0xBBE0
JTAGa wykrywany jest oczywiscie przez system, pracuje prawidlowo, po wlaczeniu openocd w konsoli i polaczeniu sie telnetem do niego mozna wykonywac podstawowe polecenia, rdzen pracuje, mozna odpytywac rejestry, itp. We flashu mam wgrany jakis stary program, wiec widze, ze procek dziala.
Schody sie zaczynaja przy probie load/run na procku.
W konfiguracji debugowania, dla stm32 + load mam:
c/c++ app: out/nazwa-wersja.elf
projekt nazwa-wersja
build conf: use active
w zakladce debugger: sciezka do arm-none-eabi-gdb.com z codesourcery, zaznaczone use remote i generic tcp/ip, localhost, 3333, ostatnie pole odznaczone (force thread...)
w zakladce startup:
init:
monitor reset
monitor halt
load
i dalej set bkpnt at: main
resume
wszystko inne odznaczone.
w source i common nic nie zmienialem.
log openocd przy laczeniu sie z plytka:
Open On-Chip Debugger 0.4.0 (2010-02-22-19:05)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.berlios.de/doc/doxygen/bugs.html
1000 kHz
jtag_nsrst_delay: 100
jtag_ntrst_delay: 100
Info : clock speed 1000 kHz
Info : JTAG tap: stm32.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)
Info : JTAG tap: stm32.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)
Info : stm32.cpu: hardware has 6 breakpoints, 4 watchpoints
Wszystko wyglada ok.
Dalej gdy chce zaladowac kod (stm32 + load), tak jak wyzej opisane:
w konsoli od openocd+jtag+stm32:
...
Info : stm32.cpu: hardware has 6 breakpoints, 4 watchpoints
Info : accepting 'gdb' connection from 0
Warn : acknowledgment received, but no packet pending
undefined debug reason 6 - target needs reset
Info : device id = 0x20006410
Info : flash size = 128kbytes
Info : JTAG tap: stm32.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)
Info : JTAG tap: stm32.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)
target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x81000000 pc: 0x080009ce msp: 0x20004fe8
Info : dropped 'gdb' connection - error -400
w konsoli stm32 load glownym drzewie: pusto,
w gdb siedzi:
warning: RMT ERROR : failed to get remote thread list.
warning: RMT ERROR : failed to get remote thread list.
w nazwa-wersja.elf: pusto
oczywiscie w drzewie od stm32 load wszedzie widnieje slowo <terminated>
i po chwili wyskakuje okienko problem occurred, launching stm32 Load has encountered a problem. Error in final launch sequence. w details siedzi:
Error in final launch sequence
Failed to execute MI command:
load
Error message from debugger back end:
No executable file specified.
Use the "file" or "exec-file" command.
Failed to execute MI command:
load
Error message from debugger back end:
No executable file specified.
Use the "file" or "exec-file" command.
No executable file specified.
Use the "file" or "exec-file" command.
Jak moze openocd nie lapac polecenia load? plik elf jest wprowadzony prawidlowo w konfiguracji. Moge jeszcze recznie sprobowac z telnetu zaladowac plik, ale nie wiem jak mu przekazac sciezke do load. To nie moja pierwsza zabawa z arm, wczesniej jedynie mialem inna pcb (ten sam proc), jtag na lpt, no i inny komputer.