probe-rs: TPIU not found for STM32H753VITx

I’m trying to set up some ITM functionality for my STM32H753VIT6. On the session I call setup_swv:

session.setup_swv(
            &SwoConfig::new(cpu_frequency)
                .set_mode_uart()
                .set_baud(interface_frequency),
        )?;

At some point this will call: https://github.com/probe-rs/probe-rs/blob/043b1b49bf83a14e321d05269e8db083d31fde2b/probe-rs/src/architecture/arm/memory/romtable.rs#L451 This function will not find the TPIU for the H753, but does work for my F407. The function searches for a component part with value 0x9A1, defined here: https://github.com/probe-rs/probe-rs/blob/043b1b49bf83a14e321d05269e8db083d31fde2b/probe-rs/src/architecture/arm/memory/romtable.rs#L607.

I don’t know where these values come from, so I can’t check if it’s the same for the H7 series.

These are the part codes found on the H7 (read from the log output):

0x00C, 0x002, 0x00E, 0x001, 0x975, 0x906

On the F4:

0x00C, 0x002, 0x003, 0x001, 0x9a1, 0x925

Desktop:

  • Windows 10

Additional context Probe: STLINKv3

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 21 (21 by maintainers)

Commits related to this issue

Most upvoted comments

It means there’s no TPIU inside the Cortex-M7 debug system, which is described by the Cortex-M7 ROM table on the AHB-AP, and so that ROM table does not mark the TPIU as “present”, instead it’s in the system-level debug system which you access through the APB-AP (or via the AHB-AP and then through the system bux matrix?), and the APB-AP has a separate set of ROM tables which do include the TPIU marked as present. (edited from my original comment for clarity I hope).

However I don’t know how to turn this annoying knowledge into getting probe-rs to actually talk to the TPIU…

image