cancel
Showing results for 
Search instead for 
Did you mean: 

Is there any STM32H7 reliable emulator?

AAvda.1
Associate II

Hi everybody,

I'm working on the stm32H747/757, and later will work on STM32H753.

We have a test-driven development attitude and I was curious, is there any way to emulate the MCUs of H7 series?

Thanks all :) 

1 ACCEPTED SOLUTION

Accepted Solutions

Good Emulation is very expensive, Keil stopped work on theirs due to the huge expansion in parts, piracy and cheap and ubiquitous hardware dev boards. ie NUCLEO, DISCO, EVAL, and custom..

Develop a methodology to use proxy hardware, automating the ability to download test cases to RAM or via a loader/monitor.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

View solution in original post

6 REPLIES 6

Good Emulation is very expensive, Keil stopped work on theirs due to the huge expansion in parts, piracy and cheap and ubiquitous hardware dev boards. ie NUCLEO, DISCO, EVAL, and custom..

Develop a methodology to use proxy hardware, automating the ability to download test cases to RAM or via a loader/monitor.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
Pavel A.
Evangelist III

QEMU?

Indeed, it is the most popular, but do you ever tried it? How close it to a real machine?
Is there any attention for memory and gpio mappings?

It is free open source software. Anyone who is motivated can develop the periphs support (or sponsor).

By the way at the ARM developer summit today they bragged about their virtual hardware emulation tools.

0693W00000FD3MzQAL.png

>>By the way at the ARM developer summit today they bragged about their virtual hardware emulation tools.

And that's perhaps not hard if you have very generic interfaces, for example providing mass storage, network transport, user IO, or screen buffering.

What gets super difficult is some kind of clock and gate level accuracy of particular ICs (like an entire STM32), and most people don't have time or budget for that.

Keil for example had workable emulators of generic ARM7, ARM9, Cortex-M cores, but for most it's all the other clutter they are interested in.

The chip level guys are running tests and simulation to prove the functionality is as expected, not writing real-world apps as a means of getting test coverage. Mostly at a gate level and within functional units, ie perhaps one TIM instance, not dozens. And people doing SoC these days often build into an array of FPGA when large chunks or whole designs are clocked at slower speeds. Feeding signals and stimulus from other hardware proxies, or recording in data files and played back in equivalent time. Whilst the software team create an effective hardware abstraction so they can run the bulk of the C/C++ code natively on a PC

>>It is free open source software. Anyone who is motivated can develop the periphs support (or sponsor).

Sure but that tends to be a bit sketchy, and only as deep, or "good enough" to serve their own needs/requirements. Problem there being people who pick it up tend to have a whole lot more requirements, usually more than their own ability can get them, and can't come up with a reasonable abstraction point between what the hardware needs to actually do for their purposes, vs whats practical or necessary.

Anyway I don't think this is some magic silver bullet, where everything would be easy/better if we just had some more perfect simulation/emulation, and that's why the "team" can't perform. More practical teams, like the original ARM devs, did MORE with LESS, and were able to create reasonably frameworks/proxies at the margins/interfaces, so different members could focus on their own portion of the design.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

Just to complete the list, and this is by no means a recommendation, have a look at Proteus,

JW