Researching STM32 Simulation Tools
The goal is to simulate STM32 hardware virtually to allow for testing and coding the firmware system without having to to the bay. Requires support for importing the ICs we use.
Proteus
Using the BluePill simulation library OR the STM32CubeIDE, Proteus allows for the simulation of STM32 firmware.
Pros:
Some existing documentation for BluePill (although limited) and pretty good documentation for CubeIDE since its provided by STMicroelectronics.
Supports the peripherals we need (ADCs, GPIOs, etc.)
Cons:
3rd Party Libraries, not created/maintained by Proteus.
Currently ONLY supports code compiled for STM32F103C6.
Financial Considerations:
Requires Proteus Professional (v8 preferably) which can range from $400 to $2000 depending on the level.
Would definitely require sponsorship from them.
Simulink
Simulink provides an STM32 Support Package that allows for stm32 to be simulated on their platform using code generated from STM32CubeIDE.
Pros:
Solid documentation, since it is directly provided by Simulink/MathWorks.
Includes peripheral support for ADCs, GPIOs, USARTS and Timers.
Relatively simple setup/process compared to other two options.
Cons:
Still requires the use of STM32CubeIDE.
Financial Considerations:
No flat price, you have to get a quote from MathWorks (although there is a free trial).
I would assume that its expensive asf so a sponsorship would be nice
QEMU
QEMU is a generic open source emulator not specifically built for STM32, but can emulate it with 3rd party fork of the application (QEMU ARM Fork).
Pros:
Free.
Cons:
Setup/Upkeep looks very complicated and involved.
Very little documentation overall, and even less for STM32 simulation.