tum-ei-eda / etiss

Extendable Translating Instruction Set Simulator
https://tum-ei-eda.github.io/etiss/
Other
29 stars 36 forks source link

cant run simple example #117

Closed uzleosharif closed 2 years ago

uzleosharif commented 2 years ago

hi i am trying to run the hello-world example for RISCV but i get errors. The log file is attached below:

=== Setting up configurations ===
Initializer::loadIni(): Ini sucessfully loaded /home/ga38qoh/work/etiss-cmpint64-issue/build/examples/base.ini
Initializer::loadIni(): Ini sucessfully loaded /tmp/etiss_dynamic_8Xwoq2icgY.ini
  Load Configs from .ini files:
ETISS: Info: Created new config container: global
ETISS: Verbose: Log level set to VERBOSE
ETISS: Info:   [BoolConfigurations]
ETISS: Info:     arch.or1k.ignore_sr_iee=false,
ETISS: Info:     etiss.enable_dmi=true,
ETISS: Info:     etiss.load_integrated_libraries=true,
ETISS: Info:     etiss.log_pc=false,
ETISS: Info:     jit.debug=false,
ETISS: Info:     jit.gcc.cleanup=true,
ETISS: Info:     jit.verify=false,
ETISS: Info:     testing=false,
ETISS: Info:   [IntConfigurations]
ETISS: Info:     arch.cpu_cycle_time_ps=31250,
ETISS: Info:     arch.or1k.if_stall_cycles=0,
ETISS: Info:     etiss.max_block_size=100,
ETISS: Info:     ETISS::CPU_quantum_ps=100000,
ETISS: Info:     ETISS::sim_mode=0,
ETISS: Info:     ETISS::write_pc_trace_from_time_us=0,
ETISS: Info:     ETISS::write_pc_trace_until_time_us=3000000,
ETISS: Info:     simple_mem_system.memseg_length_00=0x00080000,
ETISS: Info:     simple_mem_system.memseg_length_01=0x00080000,
ETISS: Info:     simple_mem_system.memseg_origin_00=0x00000000,
ETISS: Info:     simple_mem_system.memseg_origin_01=0x00080000,
ETISS: Info:     vp::simulation_time_us=20000000,
ETISS: Info:   [StringConfigurations]
ETISS: Info:     etiss.output_path_prefix=,
ETISS: Info:     jit.type=TCCJIT,
ETISS: Info:     vp.elf_file=../installed/examples/SW/riscv/build/riscv_example.elf,
ETISS: Verbose: Log level set to VERBOSE
ETISS: Verbose: libOR1KArch.so may implement 'void OR1KArch_publicateLocation(const char * path)' to get the library location at runtime.  The passed string pointer remains valid as long as the library is loaded.
ETISS: Verbose: libOR1KArch.so may implement 'void OR1KArch_publicateWorkdir(const char * path)' to get the working directory at runtime (path will be etiss::cfg().get<std::string>("etiss_wd","~/.etiss")). The passed string pointer remains valid as long as the library is loaded.
ETISS: Verbose: libOR1KArch.so may implement 'const char * OR1KArch_versionInfo()' to provide version/build information about the library
ETISS: Verbose: libRISCV.so may implement 'void RISCV_publicateLocation(const char * path)' to get the library location at runtime.  The passed string pointer remains valid as long as the library is loaded.
ETISS: Verbose: libRISCV.so may implement 'void RISCV_publicateWorkdir(const char * path)' to get the working directory at runtime (path will be etiss::cfg().get<std::string>("etiss_wd","~/.etiss")). The passed string pointer remains valid as long as the library is loaded.
ETISS: Verbose: libRISCV.so may implement 'const char * RISCV_versionInfo()' to provide version/build information about the library
ETISS: Verbose: libRISCV64.so may implement 'void RISCV64_publicateLocation(const char * path)' to get the library location at runtime.  The passed string pointer remains valid as long as the library is loaded.
ETISS: Verbose: libRISCV64.so may implement 'void RISCV64_publicateWorkdir(const char * path)' to get the working directory at runtime (path will be etiss::cfg().get<std::string>("etiss_wd","~/.etiss")). The passed string pointer remains valid as long as the library is loaded.
ETISS: Verbose: libRISCV64.so may implement 'const char * RISCV64_versionInfo()' to provide version/build information about the library
ETISS: Verbose: libRV32IMACFD.so may implement 'void RV32IMACFD_publicateLocation(const char * path)' to get the library location at runtime.  The passed string pointer remains valid as long as the library is loaded.
ETISS: Verbose: libRV32IMACFD.so may implement 'void RV32IMACFD_publicateWorkdir(const char * path)' to get the working directory at runtime (path will be etiss::cfg().get<std::string>("etiss_wd","~/.etiss")). The passed string pointer remains valid as long as the library is loaded.
ETISS: Verbose: libRV32IMACFD.so may implement 'const char * RV32IMACFD_versionInfo()' to provide version/build information about the library
ETISS: Verbose: libGCCJIT.so may implement 'void GCCJIT_publicateLocation(const char * path)' to get the library location at runtime.  The passed string pointer remains valid as long as the library is loaded.
ETISS: Verbose: libGCCJIT.so may implement 'void GCCJIT_publicateWorkdir(const char * path)' to get the working directory at runtime (path will be etiss::cfg().get<std::string>("etiss_wd","~/.etiss")). The passed string pointer remains valid as long as the library is loaded.
ETISS: Verbose: libTCCJIT.so may implement 'void TCCJIT_publicateLocation(const char * path)' to get the library location at runtime.  The passed string pointer remains valid as long as the library is loaded.
ETISS: Verbose: libTCCJIT.so may implement 'void TCCJIT_publicateWorkdir(const char * path)' to get the working directory at runtime (path will be etiss::cfg().get<std::string>("etiss_wd","~/.etiss")). The passed string pointer remains valid as long as the library is loaded.
=== Finished setting up configurations ===

=== Setting up test system ===
  Setting up Memory
ETISS: Info: New Memory segment added: 1 - [0x000000000007ffff - 0x0000000000000000]
ETISS: Info: New Memory segment added: 2 - [0x00000000000fffff - 0x0000000000080000]
ETISS: Info: Set ETISS architecture to RV32IMACFD as specified in ELF-file.
ETISS: Info: Initialized the memory segment 1 - RX[0x0000000000000000 - 0x0000000000003b97] from ELF-file
ETISS: Info: Initialized the memory segment 2 - RW[0x0000000000080000 - 0x0000000000088887] from ELF-file
  Setting up CPUCore
  CPU start address: 0x8c
ETISS: Verbose: Called etiss::fault::Injector::Injector()
ETISS: Verbose: Called etiss::fault::Injector::Injector()
=== Finished Setting up test system ===

=== Setting up plug-ins ===
ETISS: Info:   Adding Plugin Logger

ETISS: Info: plugin.logger.logaddr not set on the command line. Checking in .ini file.
ETISS: Info:     options[plugin.logger.logaddr] = 0x80000000

ETISS: Info: plugin.logger.logmask not set on the command line. Checking in .ini file.
ETISS: Info:     options[plugin.logger.logmask] = 0x80000000

ETISS: Info: Plugin "Logger" loaded via library interface "ETISSINCLUDED"

ETISS: Info:  Adding JIT "TCCJIT"
=== Setting up plug-ins ===

=== Simulation start ===
ETISS: Info: Init Plugin Logger{SYSTEMWRAPPER}

...

ETISS: Error: could not add library: CSRCounters
ETISS: Warning: CPU execution stopped: Cannot execute from instruction index 8c: no translated code available

CPU Time: 0s    Simulation Time: 0.008296s
CPU Cycles (estimated): 0
MIPS (estimated): 0
=== Simulation end ===

it seems to be i have some needed libs uninstalled e.g. the last bit of the log file says ETISS: Error: could not add library: CSRCounters. This error is new to me and I am looking for help to resolve this error. Possibly this is then leading to JIT issues later

wysiwyng commented 2 years ago

should be fixed in https://github.com/tum-ei-eda/etiss/commit/4d2d26fb1fdb17e1da3a397c35d6f8877bf3ceab