Thanks to visit codestin.com
Credit goes to github.com

Skip to content
This repository was archived by the owner on Mar 7, 2026. It is now read-only.
This repository was archived by the owner on Mar 7, 2026. It is now read-only.

BMDA + picoprobe have a lot of connectivity problems #2173

Description

@positron96

Hello.

I have bmda v2.0.0 on Windows 10, connected to picoprobe (on a RPi2040-Zero board), connected to a target (py32f003).

While the setup detects by target successfully, its ability to flash is very unreliable. So far only when the chip is blank the flash succeeds, while producing a lot of errors in bmda output (several screens of dap_write_single failed (fault = 2), see below). When the chip is not erased, the flashing fails with roughly this output:

gdb output:
Target voltage: Unknown
Available Targets:
No. Att Driver
 1      PY32Fxxx M0+
0x080011ea in etl::variant<etl::monostate, unsigned char, etl::to_arithmetic_status>::~variant() ()
Loading section .isr_vector, size 0xc0 lma 0x8000000
Error writing data to flash
Loading section .text, size 0x318c lma 0x80000c0
Section .isr_vector, range 0x80000000
target memory fault, section .rodata, range 0x800324c -- 0x80035b0
 -Can't kill process
- Can't detach process.
x80000c0: MIS-MATCHED!
Section .text, range 0x80000c0 -- 0x800324c: MIS-MATCHED!
Kill the program being debugged? (y or n) [answered Y; input not from terminal]
bmda output:
D:\Cloud\Programming\BlackMagicProbe>blackmagic-bmda.exe
Listening on TCP port: 2000
Access resulted in fault
dap_read_single failed (fault = 4)
Access resulted in fault
dap_read_single failed (fault = 4)
Access resulted in fault
dap_read_single failed (fault = 4)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
Access resulted in no response
Recovering and re-trying access
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
Access resulted in no response
Recovering and re-trying access
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_read_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
dap_write_single failed (fault = 2)
Access has invalid ack 8
Access resulted in no response
Recovering and re-trying access
TARGET LOST.

I tried to use PyOCD with same picoprobe and target (no changes in hardware), it worked without any issues. I also used it to erase the chip to then try to flash with bmda.

I also have a blackmagic probe on a chinese stlink, using it with hosted bmda also works, so I don't think it is a problem with target MCU.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions