Używam KT-LINK, OpenOCD 0.7.0, libusb.
Środowisko działa prawidłowo, kilka identycznych płyt z STM32F4xx działa prawidłowo, debug, flash itp.
Jedna idzie opornie. Po podłączeniu się OpenOCD:
Standardzik, coś jest nie tak (np. zwarcie). Przypadkiem zauważyłem, że jak nacisnę RESET na płycie i będę go trzymał cały czas, i wtedy połączę się z jtagiem to mam tak:
Jeśli procka wprowadzę w BOOTMODE to bez trzymania resetu można też połączyć się z jtagiem.
Jeśli trzymając RESET zacznę programować, to nic z tego nie wyjdzie:
i gdb zwraca:
i po sprawie.
Jeśli wprowadzę w bootmode, to gdb zwraca to samo, ew. trochę inna kolejność komunikatów.
Sprawdzałem przejścia pomiędzy CPU, a złączem JTAG, na zwarcia pinów do masy, czy do VCC, zwarcia między pinami. Nic nie wykryłem.
Jeszcze zostały mi do sprawdzenia rezystory polaryzujące linie jtag, może one są problemem, np. błędny montaż.
Środowisko działa prawidłowo, kilka identycznych płyt z STM32F4xx działa prawidłowo, debug, flash itp.
Jedna idzie opornie. Po podłączeniu się OpenOCD:
Open On-Chip Debugger 0.7.0 (2013-05-05-10:41)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.sourceforge.net/doc/doxygen/bugs.html
Info : only one transport option; autoselect 'jtag'
adapter speed: 1000 kHz
adapter_nsrst_delay: 100
jtag_ntrst_delay: 100
cortex_m3 reset_config sysresetreq
Info : max TCK change to: 30000 kHz
Info : clock speed 1000 kHz
Error: JTAG scan chain interrogation failed: all ones
Error: Check JTAG interface, timings, target power, etc.
Error: Trying to use configured scan chain anyway...
Error: stm32f4x.cpu: IR capture error; saw 0x0f not 0x01
Warn : Bypassing JTAG setup events due to errors
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Polling target stm32f4x.cpu failed, GDB will be halted. Polling again in 100ms
Polling target stm32f4x.cpu failed, GDB will be halted. Polling again in 300ms
Polling target stm32f4x.cpu failed, GDB will be halted. Polling again in 700ms
Polling target stm32f4x.cpu failed, GDB will be halted. Polling again in 1500ms
Polling target stm32f4x.cpu failed, GDB will be halted. Polling again in 3100msStandardzik, coś jest nie tak (np. zwarcie). Przypadkiem zauważyłem, że jak nacisnę RESET na płycie i będę go trzymał cały czas, i wtedy połączę się z jtagiem to mam tak:
<-- [b]trzymam cały czas RESET naciśnięty[/b]
Open On-Chip Debugger 0.7.0 (2013-05-05-10:41)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.sourceforge.net/doc/doxygen/bugs.html
Info : only one transport option; autoselect 'jtag'
adapter speed: 1000 kHz
adapter_nsrst_delay: 100
jtag_ntrst_delay: 100
cortex_m3 reset_config sysresetreq
Info : max TCK change to: 30000 kHz
Info : clock speed 1000 kHz
Info : JTAG tap: stm32f4x.cpu tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4)
Info : JTAG tap: stm32f4x.bs tap/device found: 0x06413041 (mfg: 0x020, part: 0x6413, ver: 0x0)
Info : stm32f4x.cpu: hardware has 6 breakpoints, 4 watchpoints
Warn : Invalid ACK 0x7 in JTAG-DP transaction <--- [b]Puściłem RESET[/b]
Polling target stm32f4x.cpu failed, GDB will be halted. Polling again in 100ms
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Polling target stm32f4x.cpu failed, GDB will be halted. Polling again in 300ms
Warn : Invalid ACK 0x7 in JTAG-DP transaction
Polling target stm32f4x.cpu failed, GDB will be halted. Polling again in 700ms
Polling target stm32f4x.cpu succeeded again <-- [b]Nacisnąłem RESET[/b]Jeśli procka wprowadzę w BOOTMODE to bez trzymania resetu można też połączyć się z jtagiem.
Jeśli trzymając RESET zacznę programować, to nic z tego nie wyjdzie:
i gdb zwraca:
symbol-file D:\\sciezka_do_pliku_elf.elf
load D:\\sciezka_do_pliku_elf.elf
Error erasing flash with vFlashErase packet
continue
Note: automatically using hardware breakpoints for read-only addresses.
Warning:
Cannot insert hardware breakpoint 1.
Could not insert hardware breakpoints:
You may have requested too many hardware breakpoints/watchpoints.
i po sprawie.
Jeśli wprowadzę w bootmode, to gdb zwraca to samo, ew. trochę inna kolejność komunikatów.
Sprawdzałem przejścia pomiędzy CPU, a złączem JTAG, na zwarcia pinów do masy, czy do VCC, zwarcia między pinami. Nic nie wykryłem.
Jeszcze zostały mi do sprawdzenia rezystory polaryzujące linie jtag, może one są problemem, np. błędny montaż.