Witam,
Stworzyłem płytkę z mikrokontrolerem STM32F407. Próbowałem ja zaprogramować przykładem "blink_led" ze strony Frediego i nie chciało działać. Oprogramowanie Eclipse + bleeding toolchain + openocd 0.7.0 zostało skonfigurowane wg tutoriala Frediego na Ubuntu.
Nie chciało się poprawnie programować, więc próbowałem różnych porad z internetu, ale to nie pomagało. Dopiero później znalazłem dlaczego nie działa (wersja wtyczki do hardware gdb była do złego eclipse'a). Po postawieniu na nowo całego środowiska (już z odpowiednią wtyczką) i imporcie od nowa projektu mam następujące cuda podczas próby zaprogramowania (przez wtyczkę hardware gdb i ustawienia Frediego):
Po połączeniu przez telnet dostaję takie rzeczy:
Próbowałem już komend "stm32f2x unlock 0" oraz "stm32x mass_erase 0", ale dalej nic nie pomaga.
Nie rozumiem dlaczego z jednej strony nie jest zablokowany a pojawiają się informacje, że jest.
Czy jest jakiś sposób by to naprawić albo chociaż powrócić do stanu "jak z fabryki"?
Stworzyłem płytkę z mikrokontrolerem STM32F407. Próbowałem ja zaprogramować przykładem "blink_led" ze strony Frediego i nie chciało działać. Oprogramowanie Eclipse + bleeding toolchain + openocd 0.7.0 zostało skonfigurowane wg tutoriala Frediego na Ubuntu.
Nie chciało się poprawnie programować, więc próbowałem różnych porad z internetu, ale to nie pomagało. Dopiero później znalazłem dlaczego nie działa (wersja wtyczki do hardware gdb była do złego eclipse'a). Po postawieniu na nowo całego środowiska (już z odpowiednią wtyczką) i imporcie od nowa projektu mam następujące cuda podczas próby zaprogramowania (przez wtyczkę hardware gdb i ustawienia Frediego):
openocd -f /usr/local/share/openocd/scripts/interface/parport.cfg -f /usr/local/share/openocd/scripts/target/stm32f4x.cfg -c "reset_config trst_and_srst"
Open On-Chip Debugger 0.7.0 (2013-05-12-14:51)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.sourceforge.net/doc/doxygen/bugs.html
Warn : Adapter driver 'parport' did not declare which transports it allows; assuming legacy JTAG-only
Info : only one transport option; autoselect 'jtag'
parport port = 0x0
adapter speed: 1000 kHz
adapter_nsrst_delay: 100
jtag_ntrst_delay: 100
cortex_m3 reset_config sysresetreq
trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain connect_deassert_srst
Info : clock speed 500 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
Info : accepting 'gdb' connection from 3333
Info : device id = 0x10016413
Error: JTAG-DP STICKY ERROR
Error: MEM_AP_CSW 0x23000051, MEM_AP_TAR 0x1fff7a24
Warn : STM32 flash size failed, probe inaccurate - assuming 1024k flash
Info : flash size = 1024kbytes
Warn : acknowledgment received, but no packet pending
undefined debug reason 6 - target needs reset
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)
target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0xfffffffe msp: 0xfffffffc
Error: stm32x device protected
Error: failed erasing sectors 0 to 0
Error: flash_erase returned -4
Error: JTAG-DP STICKY ERROR
Error: MEM_AP_CSW 0x23000051, MEM_AP_TAR 0x800038c
Error: JTAG-DP STICKY ERROR
Error: MEM_AP_CSW 0x23000051, MEM_AP_TAR 0x800038c
Error: JTAG-DP STICKY ERROR
Error: MEM_AP_CSW 0x23000051, MEM_AP_TAR 0x800038c
Error: stm32f4x.cpu -- clearing lockup after double fault
Polling target stm32f4x.cpu failed, GDB will be halted. Polling again in 100ms
Polling target stm32f4x.cpu succeeded againPo połączeniu przez telnet dostaję takie rzeczy:
telnet localhost 4444
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Open On-Chip Debugger
> reset halt
JTAG tap: stm32f4x.cpu tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4)
JTAG tap: stm32f4x.bs tap/device found: 0x06413041 (mfg: 0x020, part: 0x6413, ver: 0x0)
target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0xfffffffe msp: 0xfffffffc
> poll
background polling: on
TAP: stm32f4x.cpu (enabled)
target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0xffffffff msp: 0xfffffffc
> flash info 0
Device Security Bit Set
#0 : stm32f2x at 0x08000000, size 0x00100000, buswidth 0, chipwidth 0
# 0: 0x00000000 (0x4000 16kB) not protected
# 1: 0x00004000 (0x4000 16kB) not protected
# 2: 0x00008000 (0x4000 16kB) not protected
# 3: 0x0000c000 (0x4000 16kB) not protected
# 4: 0x00010000 (0x10000 64kB) not protected
# 5: 0x00020000 (0x20000 128kB) not protected
# 6: 0x00040000 (0x20000 128kB) not protected
# 7: 0x00060000 (0x20000 128kB) not protected
# 8: 0x00080000 (0x20000 128kB) not protected
# 9: 0x000a0000 (0x20000 128kB) not protected
# 10: 0x000c0000 (0x20000 128kB) not protected
# 11: 0x000e0000 (0x20000 128kB) not protected
stm32f4x - Rev: Z
> flash probe 0
device id = 0x10016413
JTAG-DP STICKY ERROR
MEM_AP_CSW 0x23000051, MEM_AP_TAR 0x1fff7a24
STM32 flash size failed, probe inaccurate - assuming 1024k flash
flash size = 1024kbytes
flash 'stm32f2x' found at 0x08000000
> flash write_image erase /home/krolik/eclipse-workspace/stm32f4_blink_led/out/stm32f4_blink_led.elf
auto erase enabled
stm32x device protected
failed erasing sectors 0 to 0
in procedure 'flash'
> flash write_image /home/krolik/eclipse-workspace/stm32f4_blink_led/out/stm32f4_blink_led.elf
wrote 1048 bytes from file /home/krolik/eclipse-workspace/stm32f4_blink_led/out/stm32f4_blink_led.elf in 0.164433s (6.224 KiB/s)
> verify_image /home/krolik/eclipse-workspace/stm32f4_blink_led/out/stm32f4_blink_led.elf
stm32f4x.cpu -- clearing lockup after double fault
error executing cortex_m3 crc algorithm
JTAG-DP STICKY ERROR
MEM_AP_CSW 0x23000052, MEM_AP_TAR 0x8000004
JTAG-DP STICKY ERROR
MEM_AP_CSW 0x23000052, MEM_AP_TAR 0x8000004
Block read error address 0x8000000
in procedure 'verify_image'
> flash write_image erase /home/krolik/eclipse-workspace/stm32f4_blink_led/out/stm32f4_blink_led.elf
auto erase enabled
stm32x device protected
failed erasing sectors 0 to 0
in procedure 'flash'
> Próbowałem już komend "stm32f2x unlock 0" oraz "stm32x mass_erase 0", ale dalej nic nie pomaga.
Nie rozumiem dlaczego z jednej strony nie jest zablokowany a pojawiają się informacje, że jest.
Czy jest jakiś sposób by to naprawić albo chociaż powrócić do stanu "jak z fabryki"?