Describe the bug
I'm trying to add support for the EFM32TG11B family of MCUs, and have successfully built a local version on probe-rs and probe-run which include the yaml configurations. However, when connecting to the target device using probe-run I get errors after flashing the code completes. I'm able to flash the code using cargo-flash, then connect to the device using openOCD and GDB and debug without issue. I've also reported this on probe-rs/probe-rs.
To Reproduce
Compile probe-run v0.3.6 patched with probe-rs v0.14.2 and the attached EFM32TG11B_Series.yaml.txt. Enter the project directory and execute cargo run while the debug probe and target device are connected and powered.
Expected and observed behavior
I expected to see a backtrace but instead, the cargo run command produced the following error:
Finished dev [optimized + debuginfo] target(s) in 0.04s
Running `probe-run --chip EFM32TG11B120F128GM64 target/thumbv6m-none-eabi/debug/un200`
(HOST) INFO flashing program (8 pages / 8.00 KiB)
(HOST) INFO success!
Error: Error communicating with probe: A ARM specific error occured.
Caused by:
0: A ARM specific error occured.
1: Error using access port
2: Failed to write register CSW at address 0x00000000
3: An error occured in the communication with an access port or debug port.
4: Target device responded with a FAULT response to the request.
config.toml
[target.'cfg(all(target_arch = "arm", target_os = "none"))']
runner = "probe-run --chip EFM32TG11B120F128GM64"
# runner = "arm-none-eabi-gdb -x openocd.gdb"
rustflags = [
"-C", "linker=flip-link",
"-C", "link-arg=-Tlink.x",
"-C", "link-arg=-Tdefmt.x",
# This is needed if your flash or ram addresses are not aligned to 0x10000 in memory.x
# See https://github.com/rust-embedded/cortex-m-quickstart/pull/95
"-C", "link-arg=--nmagic",
]
[build]
target = "thumbv6m-none-eabi" # Cortex-M0 and Cortex-M0+
# target = "thumbv7m-none-eabi" # Cortex-M3
# target = "thumbv7em-none-eabi" # Cortex-M4 and Cortex-M7 (no FPU)
# target = "thumbv7em-none-eabihf" # Cortex-M4F and Cortex-M7F (with FPU)
[alias]
rb = "run --bin"
rrb = "run --release --bin"
Probe details
$ probe-rs-cli list
The following devices were found:
[0]: J-Link (J-Link) (VID: 1366, PID: 0101, Serial: 000051013408, JLink)
Operating System:
Ubuntu 22.04.1 LTS on WSL2 in Windows 11
Additional context
My target device is an EFM32TG11B120F128GM64 deployed on a custom PCB which I have previously tested extensively with C code, J-Link tools, openOCD and GDB.
Hi @n8tlarsen, Thank you for your report. I don't think we can do anything about this on the probe-run side, but I think that this needs to be fixed in probe-rs.
Describe the bug I'm trying to add support for the EFM32TG11B family of MCUs, and have successfully built a local version on probe-rs and probe-run which include the yaml configurations. However, when connecting to the target device using probe-run I get errors after flashing the code completes. I'm able to flash the code using cargo-flash, then connect to the device using openOCD and GDB and debug without issue. I've also reported this on probe-rs/probe-rs.
To Reproduce Compile probe-run v0.3.6 patched with probe-rs v0.14.2 and the attached EFM32TG11B_Series.yaml.txt. Enter the project directory and execute
cargo run
while the debug probe and target device are connected and powered.Expected and observed behavior I expected to see a backtrace but instead, the
cargo run
command produced the following error:config.toml
Probe details
Operating System: Ubuntu 22.04.1 LTS on WSL2 in Windows 11
Additional context My target device is an EFM32TG11B120F128GM64 deployed on a custom PCB which I have previously tested extensively with C code, J-Link tools, openOCD and GDB.