Renode is a development framework which accelerates IoT and embedded systems development by letting you simulate physical hardware systems - including both the CPU, peripherals, sensors, environment and wired or wireless medium between nodes. For more information, see Renode’s official website.
You can configure Renode as a debugging tool using debug_tool option in “platformio.ini” (Project Configuration File):
[env:myenv]
platform = ...
board = ...
debug_tool = renode
More options:
We will automatically install for you the latest Renode package using PlatformIO package manager. The only requirement is to install Mono/.NET framework.
On Windows 7, download and install .NET Framework 4.7. Windows 10 ships with .NET by default, so no action is required there.
Install Homebrew and the mono
package using brew install mono
.
Install the mono-complete
package as per the installation instructions for
various Linux distributions which can be found on the Mono project website.
Check the official Renode installation guide for more details.
If the default Renode configuration is not suitable for your project, it’s possible to override the default Renode flags in “platformio.ini” (Project Configuration File). The following sections describe typical use cases where custom settings might be useful.
Additional analyzers might be handy in cases when an application prints output to a
peripheral which is not visible by default. For example, to open an additional UART
window while using Renode as the upload tool, a special command showAnalyzer
should
be added to upload_flags
option, e.g.:
[env:hifive1-revb]
platform = sifive
framework = zephyr
board = hifive1-revb
; Override the default upload settings
upload_command = renode $UPLOAD_FLAGS
upload_flags =
-e include @scripts/single-node/sifive_fe310.resc
-e showAnalyzer uart1
-e sysbus LoadELF @$SOURCE
-e start
It might be useful to redirect output from device peripherals to a more convenient
communication channel. A typical example is redirecting UART output to a socket which
can be opened by platformio device monitor while using Renode as the debug tool.
The default debug flags can be overridden using the debug_server
option. For
example, the following configuration can be used to redirect output from the UART0
port on the hifive1-revb
board:
[env:hifive1-revb]
platform = sifive
framework = zephyr
board = hifive1-revb
; Override the default debug settings
debug_tool = custom
debug_port = localhost:3333
debug_server = renode
--hide-log
-e machine StartGdbServer 3333 True
-e emulation CreateServerSocketTerminal 4321 "externalUART" false
-e connector Connect uart0 externalUART
debug_extra_cmds =
monitor start
# Monitor port for Renode integration
monitor_port = socket://localhost:4321
Pre-configured projects for Zephyr RTOS, FreeRTOS, and Arduino by Carlos Eduardo
Name |
Description |
---|---|
SiFive brings the power of open source and software automation to the semiconductor industry, making it possible to develop new hardware faster and more affordably than ever before. |
Name |
Description |
---|---|
FreeRTOS is a real-time operating system kernel for embedded devices that has been ported to 40 microcontroller platforms |
|
Open Source Software for Developing on the SiFive Freedom E Platform |
|
The Zephyr Project is a scalable real-time operating system (RTOS) supporting multiple hardware architectures, optimized for resource constrained devices, and built with safety and security in mind |
Note
For more detailed board
information please scroll tables below by horizontal.
Name |
Platform |
Debug |
MCU |
Frequency |
Flash |
RAM |
---|---|---|---|---|---|---|
On-board |
FE310 |
450MHz |
16MB |
256MB |
||
On-board |
FU540 |
1500MHz |
32MB |
8GB |
||
On-board |
FE310 |
320MHz |
16MB |
16KB |
||
On-board |
FE310 |
320MHz |
16MB |
16KB |
||
On-board |
FE310 |
320MHz |
16MB |
16KB |
||
On-board |
FE310 |
320MHz |
16MB |
16KB |