Isn't the STM32H7R3 a single-core? IIRC its their 600MHz series. The STM32H74x devices are a 480MHz M7+ 240MHz M4 variant..
Oh, it's really only a single core. I guess I put it alongside NSING MCU as the only equivalent to NSING part with same frequency and double precision FPU and last one in non-BGA package.
The only one that's even faster is STM32N6 series, but those are also single core MCUs.
In terms of CoreMark that brings them pretty close (H7R3 is 3174CM, H747 3224CM). But having 2 cores might be easier or harder to program depending on how you can segment a program. E.g. real-time number crunching on M7 and comms on the M4 (240MHz is still plenty fast compared to a classic F407 or F429).
That would be interesting to work on a part like this. Even after reading datasheets it still isn't clear to me how these two cores access memory and if they share it in some way.
I think chips like the RP2040 are also interesting, especially because they have 2 identical cores. There you could opt for a RTOS that schedules the same task list on two cores. Whereas if you want to do that on a STM32H747, then both programs need to run on the M4 level instruction set. So for example, you can't use the DP-FPU..
I still have a lot of [stupid] questions about dual core MCUs. Like... how do I compile and upload firmware to such an MCU?
From what I've read (referencing STM32 HAL based examples) there are three parts to source code: a common part (?) and two different libraries (HAL) for each core and that FLASH for each core is mapped to different addresses.
How should I compile this combination? Should I produce two sets of object files for two architectures?
Should I link it into one binary (containing all code for both cores) or two binaries (for each of cores separately)?
Should I upload it to each target separately or to a single combined(?) target? This is likely depends on MCU architecture as there may be one or more DAPs.
What if I need to run same firmware on both cores? What if I want each core to run a different firmware?
How do I debug both cores simultaneously? For single core it's just ST-Link/SWD + OpenOCD + GDB + some IDE.
Etc, etc.