To be able to run the entire system in software using the same boot image as real hardware.
eval()
function.repl
).resc
)using "platforms/cpus/nrf52840.repl"
gpio0: // PinName in ArduinoIDE
24 -> led_red@0 // LED_RED
16 -> led_green@0 // LED_GREEN
6 -> led_blue@0 // LED_BLUE
camera: Sensors.ArduCAMMini2MPPlus @ {
spi2;
twi0 0x30
}
lsm9ds1_imu: Sensors.LSM9DS1_IMU @ twi0 0x6b
lsm9ds1_mag: Sensors.LSM9DS1_Magnetic @ twi0 0x1e
using sysbus
mach create
machine LoadPlatformDescription @platforms/cpus/stm32f103.repl
machine LoadPlatformDescriptionFromString \
"button: Miscellaneous.Button @ gpioPortC 13 { IRQ -> gpioPortC@13 }"
showAnalyzer usart2
macro reset
"""
sysbus LoadELF @zephyr-stm32f103-button.elf
"""
runMacro $reset
mono64 Renode.exe project.resc
.cs
file into Renode$ esptool.py dump_mem \
0x3ff90000 \
65536 \
irom.bin
namespace Antmicro.Renode.Peripherals.UART {
public class ESP32_UART : UARTBase, IDoubleWordPeripheral,
IKnownSize {
private readonly DoubleWordRegisterCollection registers;
public ESP32_UART(Machine machine) : base(machine) {
registers = new DoubleWordRegisterCollection(this,
new Dictionary<long, DoubleWordRegister> {
{0x00, new DoubleWordRegister(this).WithValueField(0,8,
writeCallback: (_, v) => TransmitCharacter((byte)v))}
});
}
{0x00, new DoubleWordRegister(this)
.WithValueField(0, 8,
writeCallback: (_, v) => TransmitCharacter((byte)v))}
cpu1: CPU.Xtensa @ sysbus
cpuId: 1
cpuType: "esp32s3"
dram: Memory.MappedMemory @ sysbus 0x3FC88000
size: 0x78000
irom: Memory.MappedMemory @ sysbus 0x3FF00000
size: 0x20000
drom: Memory.MappedMemory @ sysbus 0x40000000
size: 0x60000
iram: Memory.MappedMemory @ sysbus 0x40370000
size: 0x70000
uart0: UART.ESP32_UART @ sysbus 0x60000000
sysbus:
init:
ApplySVD @esp32s3.svd
sysbus: Read from an unimplemented register SYSTEM:SYSCLK_CONF
(0x600C0060), returning a value from SVD: 0x1. (3)
sysbus: Read from an unimplemented register SYSTEM:PERIP_CLK_EN0
(0x600C0018), returning a value from SVD: 0xF9C1E06F.
sysbus: Write of value 0xF9C1E06F to an unimplemented register
SYSTEM:PERIP_CLK_EN0 (0x600C0018) generated from SVD.
sysbus: Read from an unimplemented register SYSTEM:PERIP_RST_EN0
(0x600C0020), returning a value from SVD: 0x0.
sysbus: Write of value 0x0 to an unimplemented register SYSTEM:PERIP_RST_EN0
0x600C0020) generated from SVD.
sysbus: Read from an unimplemented register SYSTEM:PERIP_RST_EN0
(0x600C0020), returning a value from SVD: 0x0.
sysbus: Write of value 0x4 to an unimplemented register SYSTEM:PERIP_RST_EN0 (0x600C0020) generated from SVD.
cpu1: Entering function image_load at 0x403CE7D4
cpu1: Entering function process_segments (entry) at 0x403CE474
cpu1: Entering function process_segments at 0x403CE477
cpu1: Entering function process_segments at 0x403CE4AF
cpu1: Entering function process_segments at 0x403CE4B5
cpu1: Entering function process_segments at 0x403CE74D
cpu1: Entering function process_segments at 0x403CE4F4
cpu1: Entering function image_load at 0x403CE7E4
cpu1: Entering function image_load at 0x403CE7EB
cpu1: Entering function image_load at 0x403CE7EF
cpu1: CPU abort [PC=0x403CE7F2]: reading from external register not yet supported.
ISpiDevice
Repaint()
II2CPeripheral