Cortex-M MCU Emulation with Renode | Interrupt

In this new era of work-from-home, firmware engineer may not have all the equipment and development board they are used to having at the office. One way around this? Emulation!

This is a companion discussion topic for the original entry at
1 Like

Great post, thanks, I have been looking for something like this for embedded emulation

thanks for sharing.

I have a try and it’s quite impressive.

seems quite promising to solve the “I do not have xxx board yet” problem : )

This is a great post and renode is a great tool.
I can’t find a community to ask questions about renode.
The question is probably the most popular: is my controller/board supported?
I think I found the answer to that question: (unfortunately) no. I am referring to the NXP i.MX RT105x controller. The board is custom, but I’d be fine with EVKB support, too.

So let’s move on to the second question: is it possible (and how) to add support for the i.MX RT105x controller and its peripherals like UART, Eth, etc.?
Is it enough to write some .repl files or is it necessary to modify the source code?

best regards

It looks like the NXP i.MX is not yet supported. To add support, you’ve got a few options as best I can tell:

  1. Write Peripherals in C# (e.g.
  2. There is also a way to implement peripherals as Python scripts, but I’m not sure the interface is complete enough to implement a full MCU peripheral
  3. Get in touch with the folks at Antmicro and convince/pay them to add support (which they do as part of their business).

I’m sorry this isn’t the answer you were hoping for. The silver lining here is that the peripheral interface is simple & clean, so it’s much simpler to implement your own than it would be for QEMU.



Hello, great introduction to Renode, thanks a lot !
From my side I had to enter “showAnalyzer sysbus.usart2” instead of “showAnalyzer sysbus.uart2” to show the “hello world”.
Also, I had to launched Renode in telnet mode (-T) so I could use a french keyboard mapping (apparently not available directly in the Renode terminal).