Renode: what is this framework and why should you care?

IO renewal

renew It is a recent project that not many know about, but that can be very interesting for many makers, amateurs who make their prototypes with Arduino o Raspberry Pi, and developers creating IoT projects and embedded systems. For this reason, it has more and more support, tutorials and content on the web.

To know more about this interesting open source project, you can read this article with the essentials to know him and start working with him in your future projects ...

What is a framework?

framework

renew it is a framework, like so many others. For those who still do not know what that is, it should be noted that a framework is a standardized set on which to rely for different purposes, and with the aim of saving time, such as development, problem solving, adding support of programs, libraries, tools, etc.

What is Renode?

In the case of Renode, is a framework that allows accelerating the development of embedded systems and IoT, allowing to simulate physical hardware systems, including CPUs, I / O peripherals, sensors, and other elements of the environment. Therefore, it will allow you to run, debug and test developed software without modifying your PC or using other platforms.

As for the supported platesHas a large number of them. Among which are the Xilinx, ST Micro, Microchip PolarFire, SiFive, etc.

You should also know that Renode is a open source project, although with the commercial support of Antmicro. In addition, it allows to simulate Arm and RISC-V hardware, allowing rapid development and support for software developers working in the IoT world.

Renode is very complete, powerful and functional. So much so, that the TensorFlow Lite team itself uses it to accelerate automated development in Arm and RISC-V platforms, as well as x86, SPARC, and PowerPC. No need to have physical hardware of these platforms for testing.

More information - Official website of the Renode.io project

Supported platforms

As for the supported platforms for the Renode framework, from which you can work, are:

In terms of weight, it is barely a few tens of MB, so it is not a heavy package.

Install Renode step by step on Linux

Taking as reference the Ubuntu distro, install Renode It is as simple as following these steps:

  • Satisfy dependencies, such as that of Mono:
sudo apt update
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
sudo apt install apt-transport-https ca-certificates
echo "deb https://download.mono-project.com/repo/ubuntu stable-xenial main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt update
sudo apt install mono-complete

  • After that, you have to satisfy other dependencies:
sudo apt-get install policykit-1 libgtk2.0-0 screen uml-utilities gtk-sharp2 libc6-dev

  • Now, access this web and download el DEB package.
  • The next thing will be to go to the Downloads directory where you have downloaded the .deb and install (Remember to replace the name with the version that corresponds to you):
cd Descargas

sudo dpkg -i renode_1.7.1_amd64.deb

Run Renode for the first time and first steps

Now you can run Renode for the first time and start with your first projects. For its execution, you just have to execute the order:

renode

This opens a work window from Renode where you can enter the commands to create the first machine or to manage it. For example, to create a machine to simulate the STM32F4Discovery board:

mach create
machine LoadPlatformDescription @platforms/boards/stm32f4_discovery-kit
.repl 

You can also see peripherals available on the platform with:

(machine-0) peripherals

By the way, machine-0 It will be the default machine name if you have not chosen another. It will appear as a "prompt" once you create the machine ...

For load the program you want to run on this simulated machine to test it, you can use (eg: this one from Antmicro):

sysbus LoadELF @http://antmicro.com/projects/renode/stm32f4discovery.elf-s_445441-827a0dedd3790f4559d7518320006613768b5e72

You could also load it from a local address, for example, imagine that you want to load a program that you have in:

sysbus LoadELF @mi-ejemplo.elf
You can see all the commands you can use and help if you use the command help within the Renode environment.

After, you can start emulation:

start

O stop her with:

pause

I hope it has been helpful for you…

Renode tutorials

Although it is not very frequent, there are more and more Tutorials and websites where you can consult information about the use of Renode. In addition, the official page itself has a section of tutorial videos with which to learn the basics to start your projects.

See tutorials

See documentation and wiki


Be the first to comment

Leave a Comment

Your email address will not be published. Required fields are marked with *

*

*

  1. Responsible for the data: Miguel Ángel Gatón
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.