New MCUs help

Quote from feri on March 18, 2025, 9:47 pmTo simulate in SimulIDE AVR32 and ESP32 (Without WiFi) you can use existing modules example SPI I2C UART etc...
For I51 I see the files: i51core.cpp, i51core.h, i51pin.cpp, i51pin.h, i51port.cpp, i51port.h, i51timer.cpp, i51timer.h, i51usart.cpp, i51usart.h.
Which modules can be used and which need to be made new.
Such a high clock frequency would be a problem.
To simulate in SimulIDE AVR32 and ESP32 (Without WiFi) you can use existing modules example SPI I2C UART etc...
For I51 I see the files: i51core.cpp, i51core.h, i51pin.cpp, i51pin.h, i51port.cpp, i51port.h, i51timer.cpp, i51timer.h, i51usart.cpp, i51usart.h.
Which modules can be used and which need to be made new.
Such a high clock frequency would be a problem.

Quote from arcachofo on March 19, 2025, 7:48 amHi.
The MCU framework in Simulide is made for 8 bit MCUs, it doesn't support 32 bits.
Also these devices are usually much more complex and need new types of peripherals.
So almost everything should be created for scratch.
Hi.
The MCU framework in Simulide is made for 8 bit MCUs, it doesn't support 32 bits.
Also these devices are usually much more complex and need new types of peripherals.
So almost everything should be created for scratch.

Quote from feri on March 20, 2025, 6:12 pmIt could be convenient to emulate esp32 and maybe other MCUs with Qemu as it happens in picsimlab and above all it is possible in Simulide.
Greetings
It could be convenient to emulate esp32 and maybe other MCUs with Qemu as it happens in picsimlab and above all it is possible in Simulide.
Greetings

Quote from arcachofo on March 21, 2025, 12:38 pmQuote from feri on March 20, 2025, 6:12 pmIt could be convenient to emulate esp32 and maybe other MCUs with Qemu as it happens in picsimlab and above all it is possible in Simulide.
Greetings
Yes, that's an option, I will have a look.
Quote from feri on March 20, 2025, 6:12 pmIt could be convenient to emulate esp32 and maybe other MCUs with Qemu as it happens in picsimlab and above all it is possible in Simulide.
Greetings
Yes, that's an option, I will have a look.

Quote from arcachofo on March 24, 2025, 11:11 amI got Qemu running in Simulide, the problem is synchronization.
In Simulide, the simulation engine controls everything in the circuit, but Qemu execution can't be controlled, it must be the other way around: Qemu controlling the simulation, which is not compatible with the current engine.
I'm thinking in some way to implement this in the future...
I got Qemu running in Simulide, the problem is synchronization.
In Simulide, the simulation engine controls everything in the circuit, but Qemu execution can't be controlled, it must be the other way around: Qemu controlling the simulation, which is not compatible with the current engine.
I'm thinking in some way to implement this in the future...


Quote from arcachofo on March 26, 2025, 12:40 pmQuote from ks-0 on March 26, 2025, 3:15 amHi,
If Qemu is not suitable, perhaps integrating Renode could be a better option?
Thanks, I didn't know about Renode, looks a nice project.
Have you used it?Challenges I see with Renode (without much knowledge):
- The reason why Qemu is not very "controllable" is the same reason why it is so fast. I guess Renode speed can be a challenge.
- Not much support for peripherals. Implementing new ones takes a LOT of work.
- Very limited documentation and resources available online (not a lot of people using it).
- Written in C#.Good things I see about Renode:
- Specific for embedded systems (Qemu has a lot more including x86, etc.)
- Fully controllable execution (much easier to synchronize).
- Much much smaller source code ?? (Edited: source code is in multiple repos)
Yesterday I managed to synchronize Qemu and Simulide for output signals (changing pin state) with ns accuracy.
But doing it for input signals (Simulde->Qemu) is another challenge (maybe unsolvable?)
In any case I will give it a try and see what can be done with Renode.
I'm specially concerned about speed.
Quote from ks-0 on March 26, 2025, 3:15 amHi,
If Qemu is not suitable, perhaps integrating Renode could be a better option?
Thanks, I didn't know about Renode, looks a nice project.
Have you used it?
Challenges I see with Renode (without much knowledge):
- The reason why Qemu is not very "controllable" is the same reason why it is so fast. I guess Renode speed can be a challenge.
- Not much support for peripherals. Implementing new ones takes a LOT of work.
- Very limited documentation and resources available online (not a lot of people using it).
- Written in C#.
Good things I see about Renode:
- Specific for embedded systems (Qemu has a lot more including x86, etc.)
- Fully controllable execution (much easier to synchronize).
- Much much smaller source code ?? (Edited: source code is in multiple repos)
Yesterday I managed to synchronize Qemu and Simulide for output signals (changing pin state) with ns accuracy.
But doing it for input signals (Simulde->Qemu) is another challenge (maybe unsolvable?)
In any case I will give it a try and see what can be done with Renode.
I'm specially concerned about speed.

Quote from ks-0 on March 27, 2025, 5:43 pmHave you used it?
No, unfortunately I don't have any experience with Renode.
I just found it yesterday while looking for an alternative to Qemu and I saw someone recommending Renode as a faster alternative to Qemu, so I thought it could be a good option, especially since it's purpose-built to simulate SOCs.
When I saw you were having difficulties syncing Qemu with Simulide, I immediately recalled the Synchronization section of the official documentation mentioning how the simulation can be synced, and I thought it could be helpful to mention it.
Thank you very much for working on this feature, it would be a dream come true to have 32-bit microcontroller support in Simulide.
Unfortunately, helping with the code is way above my pay grade, but please let me know if I can help in any way.
Regards.
Have you used it?
No, unfortunately I don't have any experience with Renode.
I just found it yesterday while looking for an alternative to Qemu and I saw someone recommending Renode as a faster alternative to Qemu, so I thought it could be a good option, especially since it's purpose-built to simulate SOCs.
When I saw you were having difficulties syncing Qemu with Simulide, I immediately recalled the Synchronization section of the official documentation mentioning how the simulation can be synced, and I thought it could be helpful to mention it.
Thank you very much for working on this feature, it would be a dream come true to have 32-bit microcontroller support in Simulide.
Unfortunately, helping with the code is way above my pay grade, but please let me know if I can help in any way.
Regards.

Quote from arcachofo on March 28, 2025, 8:57 amYes, Renode looks very well and is fully controllable, even instruction by instruction I think.
Unfortunately, helping with the code is way above my pay grade, but please let me know if I can help in any way.
Eventually we will need lot of testing, but this will take some time.
By now I'm just trying to get some basic examples working with Qemu:
Yes, Renode looks very well and is fully controllable, even instruction by instruction I think.
Unfortunately, helping with the code is way above my pay grade, but please let me know if I can help in any way.
Eventually we will need lot of testing, but this will take some time.
By now I'm just trying to get some basic examples working with Qemu:

Quote from ks-0 on March 28, 2025, 10:22 pmEventually we will need lot of testing, but this will take some time.
By now I'm just trying to get some basic examples working with Qemu:
I'd be happy to help when it's time for testing.
Again, thank you for working on this, it's already very exciting just to see the ESP32 blinking an LED in Simuilde.
Eventually we will need lot of testing, but this will take some time.
By now I'm just trying to get some basic examples working with Qemu:
I'd be happy to help when it's time for testing.
Again, thank you for working on this, it's already very exciting just to see the ESP32 blinking an LED in Simuilde.