Hi everyone, I would need to run a simulation of gem5 in Full System emulation 
with RISCV architecture with a simple C program. I therefore tried to use the 
--bare-metal option.

So, I tried to run the following command:

`./gem5/build/RISCV/gem5.opt ./gem5/configs/example/riscv/fs_linux.py 
--kernel=test —bare-metal`

where "test" is a compiled program written in C:

> #include <stdio.h>
>
> int main(void){ 
>
>        unsigned int r = 1337;
>
>        printf("Hello World! %d\\n", r);
>
>        while (1) { }
>
> }

and compiled with the following command: `riscv64-unknown-linux-gnu-gcc 
--static test.c -o test`

but gem5 returns me the following error:

> gem5 Simulator System.  https://www.gem5.org
>
> gem5 is copyrighted software; use the --copyright option for details.
>
> gem5 version 23.0.1.0
>
> gem5 compiled Dec 15 2023 12:35:45
>
> gem5 started Jan  8 2024 12:55:50
>
> gem5 executing on 46f410d0d38b, pid 1704898
>
> command line: ./gem5/build/RISCV/gem5.opt 
> ./gem5/configs/example/riscv/fs_linux.py --kernel=test —bare-metal
>
> warn: The \`get_runtime_isa\` function is deprecated. Please migrate away 
> from using this function.
>
> warn: The \`get_runtime_isa\` function is deprecated. Please migrate away 
> from using this function.
>
> Global frequency set at 1000000000000 ticks per second
>
> warn: No dot file generated. Please install pydot to generate the dot file 
> and pdf.
>
> src/mem/dram_interface.cc:690: warn: DRAM device capacity (8192 Mbytes) does 
> not match the address range assigned (512 Mbytes)
>
> src/base/statistics.hh:279: warn: One of the stats is a legacy stat. Legacy 
> stat is a stat that does not belong to any statistics::Group. Legacy stat is 
> deprecated.
>
>       0: system.platform.rtc: Real-time clock set to Sun Jan  1 00:00:00 2012
>
> system.platform.terminal: Listening for connections on port 3456
>
> system.remote_gdb: Listening for connections on port 7000
>
> \*\*\*\* REAL SIMULATION \*\*\*\*
>
> src/sim/simulate.cc:194: info: Entering event queue @ 0.  Starting 
> simulation...
>
> src/cpu/simple/atomic.cc:753: panic: panic condition pkt.isError() occurred: 
> Instruction fetch (\[0x10420:0x10424\]) failed: BadAddressError 
> \[10420:10423\] IF
>
> Memory Usage: 626284 KBytes
>
> Program aborted at tick 0
>
> \--- BEGIN LIBC BACKTRACE ---
>
> gem5.opt(+0x63c370)\[0x56510fbd8370\]
>
> gem5.opt(+0x66b7ac)\[0x56510fc077ac\]
>
> /lib/x86_64-linux-gnu/libc.so.6(+0x42520)\[0x7f32bd310520\]
>
> /lib/x86_64-linux-gnu/libc.so.6(pthread_kill+0x12c)\[0x7f32bd3649fc\]
>
> /lib/x86_64-linux-gnu/libc.so.6(raise+0x16)\[0x7f32bd310476\]
>
> /lib/x86_64-linux-gnu/libc.so.6(abort+0xd3)\[0x7f32bd2f67f3\]
>
> gem5.opt(+0x654825)\[0x56510fbf0825\]
>
> gem5.opt(+0xb92873)\[0x56511012e873\]
>
> gem5.opt(+0xb91920)\[0x56511012d920\]
>
> gem5.opt(+0x657612)\[0x56510fbf3612\]
>
> gem5.opt(+0x6953b8)\[0x56510fc313b8\]
>
> gem5.opt(+0x6959ab)\[0x56510fc319ab\]
>
> gem5.opt(+0x132e8f0)\[0x5651108ca8f0\]
>
> gem5.opt(+0x5d0b74)\[0x56510fb6cb74\]
>
> /lib/x86_64-linux-gnu/libpython3.10.so.1.0(+0x128023)\[0x7f32bde0f023\]
>
> /lib/x86_64-linux-gnu/libpython3.10.so.1.0(_PyObject_Call+0x5c)\[0x7f32bddc8fec\]
>
> /lib/x86_64-linux-gnu/libpython3.10.so.1.0(_PyEval_EvalFrameDefault+0x4b16)\[0x7f32bdd5d776\]
>
> /lib/x86_64-linux-gnu/libpython3.10.so.1.0(+0x1c23af)\[0x7f32bdea93af\]
>
> /lib/x86_64-linux-gnu/libpython3.10.so.1.0(_PyEval_EvalFrameDefault+0x9d68)\[0x7f32bdd629c8\]
>
> /lib/x86_64-linux-gnu/libpython3.10.so.1.0(+0x1c23af)\[0x7f32bdea93af\]
>
> /lib/x86_64-linux-gnu/libpython3.10.so.1.0(_PyEval_EvalFrameDefault+0x69de)\[0x7f32bdd5f63e\]
>
> /lib/x86_64-linux-gnu/libpython3.10.so.1.0(+0x1c23af)\[0x7f32bdea93af\]
>
> /lib/x86_64-linux-gnu/libpython3.10.so.1.0(_PyEval_EvalFrameDefault+0x9d68)\[0x7f32bdd629c8\]
>
> /lib/x86_64-linux-gnu/libpython3.10.so.1.0(+0x1c23af)\[0x7f32bdea93af\]
>
> /lib/x86_64-linux-gnu/libpython3.10.so.1.0(PyEval_EvalCode+0xbe)\[0x7f32bdea43de\]
>
> /lib/x86_64-linux-gnu/libpython3.10.so.1.0(+0x1bd96d)\[0x7f32bdea496d\]
>
> /lib/x86_64-linux-gnu/libpython3.10.so.1.0(+0x1287b3)\[0x7f32bde0f7b3\]
>
> /lib/x86_64-linux-gnu/libpython3.10.so.1.0(_PyEval_EvalFrameDefault+0x69de)\[0x7f32bdd5f63e\]
>
> /lib/x86_64-linux-gnu/libpython3.10.so.1.0(+0x1c23af)\[0x7f32bdea93af\]
>
> gem5.opt(+0x66e2f7)\[0x56510fc0a2f7\]
>
> gem5.opt(+0x3cff1b)\[0x56510f96bf1b\]
>
> /lib/x86_64-linux-gnu/libc.so.6(+0x29d90)\[0x7f32bd2f7d90\]
>
> \--- END LIBC BACKTRACE ---
>
> For more info on how to address this issue, please visit 
> https://www.gem5.org/documentation/general_docs/common-errors/ 
>
> Aborted (core dumped)

How can I fix it?

Is it correct to use the bare-metal option? Or can I do it some other way?

Does the C program need any dependencies?
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org

Reply via email to