Greetings,
I have discovered a new emulator aimed at system simulation called Renode.
renode.readthedocs.io/en/latest/
renode.io/
github.com/renode/renode
I have seen it work well on macOS m1, macOS x86, and Windows 10 x86. They use C, C# + .NET/Mono, and Python. Peripherals may be defined as constants in the configuration files, inlined python for simple digital behavior, C# for more complex behavior, C for fast behavior, OR in Verilog for HDL simulated peripheral core behavior. The have also included RobotFramework (Python) for conducting
Further, they support rendering to the screen, which can be demoed with one line (note: YMMV on the path since I compiled from source.):
Below is a screenshot showing from top to bottom the screen output, RENODE console, usart1 terminal output, and RENODE terminal:
![](https://forum.segger.com/index.php/Attachment/5113-renode-screenshot-jpg/?thumbnail=1&s=2c776bfd8c9e5dc94d04a950f5fc8e84ce3273b7)
I have been gently poking at getting this to work for emWin. I will update my renode demo repo for a more minimal emWin example shortly, which will live here:
github.com/jhgorse/renode_stm32f429_vscode
Presently it is just a stripped down STM32F429 setup with some external SDRAM and NORFLASH.
This Renode approach might replace or augment the Windows simulation. Since MSVC does not support what GCC does, there is a significant gap in coverage when simulating via Windows.
I believe this has the chance to bring about system-level simulation and testing of embedded systems. Prior approaches required significantly more engineering resources.
What do you guys think about Renode? Have you seen it before? What do you think about supporting some emWin examples with it?
Hope this finds you well.
Cheers,
Joe
I have discovered a new emulator aimed at system simulation called Renode.
renode.readthedocs.io/en/latest/
renode.io/
github.com/renode/renode
I have seen it work well on macOS m1, macOS x86, and Windows 10 x86. They use C, C# + .NET/Mono, and Python. Peripherals may be defined as constants in the configuration files, inlined python for simple digital behavior, C# for more complex behavior, C for fast behavior, OR in Verilog for HDL simulated peripheral core behavior. The have also included RobotFramework (Python) for conducting
Further, they support rendering to the screen, which can be demoed with one line (note: YMMV on the path since I compiled from source.):
Below is a screenshot showing from top to bottom the screen output, RENODE console, usart1 terminal output, and RENODE terminal:
I have been gently poking at getting this to work for emWin. I will update my renode demo repo for a more minimal emWin example shortly, which will live here:
github.com/jhgorse/renode_stm32f429_vscode
Presently it is just a stripped down STM32F429 setup with some external SDRAM and NORFLASH.
This Renode approach might replace or augment the Windows simulation. Since MSVC does not support what GCC does, there is a significant gap in coverage when simulating via Windows.
I believe this has the chance to bring about system-level simulation and testing of embedded systems. Prior approaches required significantly more engineering resources.
What do you guys think about Renode? Have you seen it before? What do you think about supporting some emWin examples with it?
Hope this finds you well.
Cheers,
Joe