Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incomplete repl file seems to be generated for esp32_devkitc_wroom board #7

Open
costa-victor opened this issue Jan 27, 2024 · 3 comments

Comments

@costa-victor
Copy link

Description

Hello, I've been trying to generate the repl file for the esp32_devkitc_wroom board and it's being incomplete generated.

In a nutshell, I used the xtensa.resc script as a reference and it's working fine but when I tried to a small change and I got no success:

  1. Replace the .elf file by the one generated when compiling the Zephyr Hello World sample for esp32_devkitc_wroom
  2. Replace the xtensa-sample-controller.repl by the one generated by dts2repl

I'm not sure if I'm missing something, any suggestions are more than welcome. Thank you in advance!

Steps to reproduce

  1. Compile the hello world on Zephyr for esp32_devkitc_wroom
west build -p always -b esp32_devkitc_wroom samples/hello_world
  1. Generate the repl file using dts2repl
dts2repl  $HOME/zephyrproject/zephyr/build/zephyr/zephyr.dts --output esp32_devkitc_wroom.repl
  1. Replace both esp32_devkitc_wroom.repl and the new .elf file generated after compiling the Zephyr's HelloWorld sample

Testing scenario

Here is the what I had for the repl and resc file:

esp32_devkitc_wroom.resc

using sysbus

# create the platform
mach create
# machine LoadPlatformDescription @platforms/cpus/xtensa-sample-controller.repl
machine LoadPlatformDescription $ORIGIN/esp32_devkitc_wroom.repl

# display the UART analyzer window
showAnalyzer cpu.uartSemihosting

# load the ELF file
macro reset
"""
#    sysbus LoadELF @https://dl.antmicro.com/projects/renode/xtensa-sample-controller-zephyr-hello-world.elf-s_293544-4be60f8a3891e70c30e1e8a471df4ad12ab08144
    sysbus LoadELF $ORIGIN/zephyr.elf
"""
runMacro $reset

esp32_devkitc_wroom.repl

The input file used in the STEP 3 has 515 lines and here is the outcome:

flash0: Memory.MappedMemory @ sysbus 0x0
    size: 0x400000

sram0: Memory.MappedMemory @ sysbus 0x3ffb0000
    size: 0x2c200

ipmmem0: Memory.MappedMemory @ sysbus 0x3ffe5230
    size: 0x400

shm0: Memory.MappedMemory @ sysbus 0x3ffe5630
    size: 0x3c00

// autogenerated

Script's output

$ renode /Users/costav10/renode/scripts/test/esp32_devkitc_wroom.resc

renode /Users/costav10/renode/scripts/test/esp32_devkitc_wroom.resc
19:56:25.0005 [INFO] Loaded monitor commands from: /Applications/Renode.app/Contents/MacOS/scripts/monitor.py
Font 'Roboto Mono' not available in the system. Using '.AppleSystemUIFont' instead
19:56:25.1339 [WARNING] The font 'Roboto Mono' defined in the config file cannot be loaded.
19:56:25.4789 [INFO] Including script: /Users/costav10/renode/scripts/test/esp32_devkitc_wroom.resc
19:56:25.4895 [INFO] System bus created.
19:56:26.7616 [WARNING] Could not initialize disassembly engine
19:56:26.7660 [WARNING] The debug mode now has no effect - connect a debugger, and switch to stepping mode.
Font 'Roboto Mono' not available in the system. Using '.AppleSystemUIFont' instead
19:56:26.8099 [WARNING] The font 'Roboto Mono' defined in the config file cannot be loaded.
19:56:26.9394 [INFO] sysbus: Loading segment of 32 bytes length at 0x0.
19:56:26.9416 [WARNING] sysbus: Tried to access bytes at non-existing peripheral in range <0x00000000, 0x0000001F>.
19:56:26.9423 [INFO] sysbus: Loading segment of 28 bytes length at 0x20.
19:56:26.9423 [WARNING] sysbus: Tried to access bytes at non-existing peripheral in range <0x00000020, 0x0000003B>.
19:56:26.9424 [INFO] sysbus: Loading segment of 3780 bytes length at 0x40.
19:56:26.9424 [WARNING] sysbus: Tried to access bytes at non-existing peripheral in range <0x00000040, 0x00000F03>.
19:56:26.9428 [INFO] sysbus: Loading segment of 548 bytes length at 0xF04.
19:56:26.9429 [WARNING] sysbus: Tried to access bytes at non-existing peripheral in range <0x00000F04, 0x00001127>.
19:56:26.9429 [INFO] sysbus: Loading segment of 10120 bytes length at 0x1128.
19:56:26.9429 [WARNING] sysbus: Tried to access bytes at non-existing peripheral in range <0x00001128, 0x000038AF>.
19:56:26.9432 [INFO] sysbus: Loading segment of 14504 bytes length at 0x38B0.
19:56:26.9432 [WARNING] sysbus: Tried to access bytes at non-existing peripheral in range <0x000038B0, 0x00007157>.
19:56:26.9433 [INFO] sysbus: Loading segment of 4736 bytes length at 0x3FFB0228.
19:56:26.9433 [WARNING] sysbus: Tried to access bytes at non-existing peripheral in range <0x3FFB0228, 0x3FFB14A7>.
19:56:26.9434 [INFO] sysbus: Loading segment of 5120 bytes length at 0x3FFE5230.
@pgielda
Copy link
Member

pgielda commented Jan 27, 2024

First of all - there is no ESP32 support in Renode. When you look at your repl its clear that the only thing generated was memories.

Having said that I doubt you've actually even loaded the repl that you've pasted in this issue as it clearly tries to load an ELF to a platform that does not even have memory.

@costa-victor
Copy link
Author

Thanks @pgielda for the quick response and clarification.

I was not aware of this, I have just started learn about Renode and I saw the xtensa.resc and I thought to play with esp32_devkitc_wroom emulation for fun.

@pgielda
Copy link
Member

pgielda commented Jan 28, 2024

I recommend trying cortex-m platforms, most of them are supported. You can see what is currently supported with newest renode + dts2repl here: https://zephyr-dashboard.renode.io/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants