Forums - What is runelf.pbn and why is it required for simulator?

1 post / 0 new
What is runelf.pbn and why is it required for simulator?
v.eremeev
Join Date: 14 Aug 20
Posts: 2
Posted: Wed, 2020-10-14 01:12

I'm new to hexagon development.

I'm trying to run my application with hexagon-sim.

 

Application is the executable file, modified from the example "common/conv3x3a16_v60"

According to manuals, it should be enough to supply file name in the command line: `hexagon-sim a.out`

However, when I try to launch conv3x3a16_v60 in this fashion, I don't get any output:

=======

C:\work\project\ >C:\Hexagon_SDK\3.5.2\tools\HEXAGON_Tools\8.3.07\Tools\bin\hexagon-sim.exe conv3x3a16v60_q

hexagon-sim INFO: The rev_id used in the simulation is 0x00004066 (v66a_512)
=======
 
If I add --verbose switch, then I can see many warning messages:
 
======

C:\work\project\ >C:\Hexagon_SDK\3.5.2\tools\HEXAGON_Tools\8.3.07\Tools\bin\hexagon-sim.exe conv3x3a16v60_q

Version: 8.3.07, API Version 3.35.20190731
Copyright 2005-2019 Qualcomm, Inc. All Rights Reserved.
hexagon-sim WARNING: main in src/main.cpp:914: there is no cmd line info for arch. Arch info is picked up from ELF header
hexagon-sim WARNING: main in src/main.cpp:919: there is no cmd line info for rev_id. Default for rev_id is picked up based on arch.
hexagon-sim INFO: The rev_id used in the simulation is 0x00004066 (v66a_512)
_Hexagon_sys_SOCInit:myapp --magic_angel --info_quiet --revid 0x4066 --axibusratio 2 --axibuspenalty 75 --ahbbusratio 2 --ahbbuspenalty 75 --axi2busratio 2 --axi2buspenalty 75 --l2tcm_base 0xd8000000  --clade2_stable_assert_hack 0x0
WARNING: arch_init_processor in c:/bots/prod-worker/simulator-83-win/build/arch_v66/src/arch/external_api.c:625:Sim's axi2_enable != Arch's axi2_enable.  Forcing arch to sim's config.
WARNING: arch_init_processor in c:/bots/prod-worker/simulator-83-win/build/arch_v66/src/arch/external_api.c:629:Sim's ahb_enable != Arch's ahb_enable.  Forcing arch to sim's config.
WARNING: arch_alloc_processor in c:/bots/prod-worker/simulator-83-win/build/arch_v66/src/arch/external_api.c:781:ARCH ISS: GIT commit d68d0987b64d49a9defc9b45ce16b311d408c67f Wed Jun 5 09:27:23 2019 -0500
Hexagon simulation is started ...
 
WARNING: exec_J2_trap0 in c:/bots/prod-worker/simulator-83-win/build/arch_v66/src/arch/semantics.odef:21970:Trap NPC=23021654
WARNING: exec_J2_trap0 in c:/bots/prod-worker/simulator-83-win/build/arch_v66/src/arch/semantics.odef:21970:Trap exception, PCYCLE=14 TYPE=0 NPC=23021654 IMM=0x15
WARNING: commit_exception_info in c:/bots/prod-worker/simulator-83-win/build/arch_v66/src/arch/system.c:538:Commit of trap/fptrap caused double exception. einfo.cause=15
 
WARNING: reglog_check_writes in c:/bots/prod-worker/simulator-83-win/build/arch_v66/src/arch/exec.c:173:reg wr mask=800000 new bit=800000, rnum = 23
WARNING: register_error_exception in c:/bots/prod-worker/simulator-83-win/build/arch_v66/src/arch/system.c:573:Error exception detected, tnum=0 code=0x1d pc=0x8 badva0=0x0 badva1=0x0, bvs=0, Pcycle=16 msg=
 
WARNING: register_error_exception in c:/bots/prod-worker/simulator-83-win/build/arch_v66/src/arch/system.c:577:Double Exception...
WARNING: reglog_check_writes in c:/bots/prod-worker/simulator-83-win/build/arch_v66/src/arch/exec.c:173:reg wr mask=800000 new bit=800000, rnum = 23
WARNING: register_error_exception in c:/bots/prod-worker/simulator-83-win/build/arch_v66/src/arch/system.c:573:Error exception detected, tnum=0 code=0x1d pc=0x8 badva0=0x0 badva1=0x0, bvs=0, Pcycle=18 msg=
 
WARNING: register_error_exception in c:/bots/prod-worker/simulator-83-win/build/arch_v66/src/arch/system.c:577:Double Exception...
WARNING: reglog_check_writes in c:/bots/prod-worker/simulator-83-win/build/arch_v66/src/arch/exec.c:173:reg wr mask=800000 new bit=800000, rnum = 23
WARNING: register_error_exception in c:/bots/prod-worker/simulator-83-win/build/arch_v66/src/arch/system.c:573:Error exception detected, tnum=0 code=0x1d pc=0x8 badva0=0x0 badva1=0x0, bvs=0, Pcycle=20 msg=
.....
==========
 

Studying makefiles I've found that hexagon-sim is usually launched with many other command line switches.

I have experimented with them and found part of the command line that is crucial for getting output:

"--rtos <path to .cfg file>"

"<path>/runelf.pbn -- <my executable>"

No output is produced without these command line arguments.

So, I think, official manual is incorrect when it says that launching simulator is as simple as `hexagon-sim [elf file]`

 

I have found very vague description of --rtos switch in section 3.2.6 of the simulator manual, referencing "corresponding RTOS documentation".

I cannot find any manuals describing runelf.pbn

Where can I find more information about that file? 

Where can I find that "corresponding RTOS documentation"?  Is it QURT? 

  • Up0
  • Down0

Opinions expressed in the content posted here are the personal opinions of the original authors, and do not necessarily reflect those of Qualcomm Incorporated or its subsidiaries (“Qualcomm”). The content is provided for informational purposes only and is not meant to be an endorsement or representation by Qualcomm or any other party. This site may also provide links or references to non-Qualcomm sites and resources. Qualcomm makes no representations, warranties, or other commitments whatsoever about any non-Qualcomm sites or third-party resources that may be referenced, accessible from, or linked to this site.