Unable to run zephyr on hifive-vp
Closed this issue · 3 comments
I am trying to run zephyr RTOS on hifive-vp.
I used zephyr hello_world example with the hifive1 board setting in zephyr.
When I try to run the zephyr.elf on hifive1-vp, it shows the following error.
hifive-vp: /root/riscv-vp/vp/src/./core/common/elf_loader.h:62: void GenericElfLoader<T>::load_executable_image(load_if&, GenericElfLoader<T>::addr_t, Generic bool) [with T = rv32::Elf32Types; GenericElfLoader<T>::addr_t = unsigned int]: Assertion `(addr + p->p_memsz < offset + size) && "Section does not fit in tar Aborted (core dumped)
Here is my command.
hifive-vp zephyr.elf --intercept-syscalls
It seems that hifive-vp do not have the --memory-start
flag to set the memory start address like riscv-vp.
I cannot use --memory-start=2147483648
which is used in riscv-freeRTOS demo examples to solve this problem.
Thanks!
Hi!
Could you provide a link on how you built the binary?`
As a comment, the hifive-vp
(should) behave just like the real one, so both memory-start
and intercept-syscalls
are not necessary or contraproductive (no need for the OS to intercept syscalls, if zephyr shall handle them).
The https://github.com/agra-uni-bremen/riscv-freertos is pretty obsolete, we should either delete or update it.
In the meantime, you could give the newer https://github.com/agra-uni-bremen/sifive-hifive1/ a try, there is a (small and brief) section on Zephyr.
Hi !
I just follow the https://github.com/agra-uni-bremen/sifive-hifive1/ and run zephyr RTOS again.
The simulation of the snake example is successful.
I follow the zephyr part to build zephyr.elf, so I source the zephyr-env.sh first.
The toolchain is riscv64-zephyr-elf-gcc.
Then I build the hello_world example with this command.
mkdir build && cd build && cmake .. -DBOARD=hifive1
However, I still cannot simulate the zephyr.elf with the command hifive-vp zephyr.elf
.
Thanks!
As a comment, the hifive-vp (should) behave just like the real one, so both memory-start and intercept-syscalls are not necessary or contraproductive (no need for the OS to intercept syscalls, if zephyr shall handle them).
You were using the riscv-vp, which is by default not compatible to the hifive
. Please use the hifive-vp
.
(edited my answer, because I copied your commands...)