Renode 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 ...
Table of Contents
What is a framework?
Renode 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
As for the supported platforms for the Renode framework, from which you can work, are:
- Microsoft Windows
- GNU / Linux (available at DEB and RPM packages as well as .pkg.tar.xz for Arch)
- Can also be used within a Docker container
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:
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:
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 ...
Yes, 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.elfYou 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:
O stop her with:
I hope it has been helpful for you…
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.