applies clang-format (incl. submodules), adds launch configs
This commit is contained in:
parent
f122b0ae4e
commit
61d8d3c661
|
@ -0,0 +1,13 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<launchConfiguration type="org.eclipse.debug.core.groups.GroupLaunchConfigurationType">
|
||||||
|
<stringAttribute key="org.eclipse.debug.core.launchGroup.0.action" value="NONE"/>
|
||||||
|
<booleanAttribute key="org.eclipse.debug.core.launchGroup.0.adoptIfRunning" value="false"/>
|
||||||
|
<booleanAttribute key="org.eclipse.debug.core.launchGroup.0.enabled" value="true"/>
|
||||||
|
<stringAttribute key="org.eclipse.debug.core.launchGroup.0.mode" value="run"/>
|
||||||
|
<stringAttribute key="org.eclipse.debug.core.launchGroup.0.name" value="TGC-VP-GDBServer (Firmware)"/>
|
||||||
|
<stringAttribute key="org.eclipse.debug.core.launchGroup.1.action" value="NONE"/>
|
||||||
|
<booleanAttribute key="org.eclipse.debug.core.launchGroup.1.adoptIfRunning" value="false"/>
|
||||||
|
<booleanAttribute key="org.eclipse.debug.core.launchGroup.1.enabled" value="true"/>
|
||||||
|
<stringAttribute key="org.eclipse.debug.core.launchGroup.1.mode" value="debug"/>
|
||||||
|
<stringAttribute key="org.eclipse.debug.core.launchGroup.1.name" value="TGC-VP-FW-Debug (Firmware)"/>
|
||||||
|
</launchConfiguration>
|
|
@ -0,0 +1,13 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<launchConfiguration type="org.eclipse.debug.core.groups.GroupLaunchConfigurationType">
|
||||||
|
<stringAttribute key="org.eclipse.debug.core.launchGroup.0.action" value="NONE"/>
|
||||||
|
<booleanAttribute key="org.eclipse.debug.core.launchGroup.0.adoptIfRunning" value="false"/>
|
||||||
|
<booleanAttribute key="org.eclipse.debug.core.launchGroup.0.enabled" value="true"/>
|
||||||
|
<stringAttribute key="org.eclipse.debug.core.launchGroup.0.mode" value="inherit"/>
|
||||||
|
<stringAttribute key="org.eclipse.debug.core.launchGroup.0.name" value="TGC-VP-GDBServer prebuilt FW"/>
|
||||||
|
<stringAttribute key="org.eclipse.debug.core.launchGroup.1.action" value="NONE"/>
|
||||||
|
<booleanAttribute key="org.eclipse.debug.core.launchGroup.1.adoptIfRunning" value="false"/>
|
||||||
|
<booleanAttribute key="org.eclipse.debug.core.launchGroup.1.enabled" value="true"/>
|
||||||
|
<stringAttribute key="org.eclipse.debug.core.launchGroup.1.mode" value="debug"/>
|
||||||
|
<stringAttribute key="org.eclipse.debug.core.launchGroup.1.name" value="TGC-VP-FW-Debug prebuild FW"/>
|
||||||
|
</launchConfiguration>
|
|
@ -0,0 +1,13 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<launchConfiguration type="org.eclipse.debug.core.groups.GroupLaunchConfigurationType">
|
||||||
|
<stringAttribute key="org.eclipse.debug.core.launchGroup.0.action" value="NONE"/>
|
||||||
|
<booleanAttribute key="org.eclipse.debug.core.launchGroup.0.adoptIfRunning" value="false"/>
|
||||||
|
<booleanAttribute key="org.eclipse.debug.core.launchGroup.0.enabled" value="true"/>
|
||||||
|
<stringAttribute key="org.eclipse.debug.core.launchGroup.0.mode" value="inherit"/>
|
||||||
|
<stringAttribute key="org.eclipse.debug.core.launchGroup.0.name" value="TGC-VP-GDBServer wo FW"/>
|
||||||
|
<stringAttribute key="org.eclipse.debug.core.launchGroup.1.action" value="NONE"/>
|
||||||
|
<booleanAttribute key="org.eclipse.debug.core.launchGroup.1.adoptIfRunning" value="false"/>
|
||||||
|
<booleanAttribute key="org.eclipse.debug.core.launchGroup.1.enabled" value="true"/>
|
||||||
|
<stringAttribute key="org.eclipse.debug.core.launchGroup.1.mode" value="debug"/>
|
||||||
|
<stringAttribute key="org.eclipse.debug.core.launchGroup.1.name" value="FW Debug HW GDB loading (Firmware)"/>
|
||||||
|
</launchConfiguration>
|
|
@ -4,10 +4,10 @@
|
||||||
<booleanAttribute key="org.eclipse.debug.core.launchGroup.0.adoptIfRunning" value="false"/>
|
<booleanAttribute key="org.eclipse.debug.core.launchGroup.0.adoptIfRunning" value="false"/>
|
||||||
<booleanAttribute key="org.eclipse.debug.core.launchGroup.0.enabled" value="true"/>
|
<booleanAttribute key="org.eclipse.debug.core.launchGroup.0.enabled" value="true"/>
|
||||||
<stringAttribute key="org.eclipse.debug.core.launchGroup.0.mode" value="inherit"/>
|
<stringAttribute key="org.eclipse.debug.core.launchGroup.0.mode" value="inherit"/>
|
||||||
<stringAttribute key="org.eclipse.debug.core.launchGroup.0.name" value="TGC-VP-GDBServer"/>
|
<stringAttribute key="org.eclipse.debug.core.launchGroup.0.name" value="TGC-VP-GDBServer (Firmware)"/>
|
||||||
<stringAttribute key="org.eclipse.debug.core.launchGroup.1.action" value="NONE"/>
|
<stringAttribute key="org.eclipse.debug.core.launchGroup.1.action" value="NONE"/>
|
||||||
<booleanAttribute key="org.eclipse.debug.core.launchGroup.1.adoptIfRunning" value="false"/>
|
<booleanAttribute key="org.eclipse.debug.core.launchGroup.1.adoptIfRunning" value="false"/>
|
||||||
<booleanAttribute key="org.eclipse.debug.core.launchGroup.1.enabled" value="true"/>
|
<booleanAttribute key="org.eclipse.debug.core.launchGroup.1.enabled" value="true"/>
|
||||||
<stringAttribute key="org.eclipse.debug.core.launchGroup.1.mode" value="debug"/>
|
<stringAttribute key="org.eclipse.debug.core.launchGroup.1.mode" value="debug"/>
|
||||||
<stringAttribute key="org.eclipse.debug.core.launchGroup.1.name" value="TGC-VP-FW-Debug"/>
|
<stringAttribute key="org.eclipse.debug.core.launchGroup.1.name" value="FW Debug HW GDB (Firmware)"/>
|
||||||
</launchConfiguration>
|
</launchConfiguration>
|
|
@ -0,0 +1,35 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<launchConfiguration type="org.eclipse.cdt.launch.applicationLaunchType">
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.AUTO_SOLIB" value="true"/>
|
||||||
|
<listAttribute key="org.eclipse.cdt.dsf.gdb.AUTO_SOLIB_LIST"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="gdb"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_ON_FORK" value="false"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.dsf.gdb.GDB_INIT" value=".gdbinit"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.NON_STOP" value="false"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.REVERSE" value="false"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.dsf.gdb.REVERSE_MODE" value="UseSoftTrace"/>
|
||||||
|
<listAttribute key="org.eclipse.cdt.dsf.gdb.SOLIB_PATH"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.dsf.gdb.TRACEPOINT_MODE" value="TP_NORMAL_ONLY"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.UPDATE_THREADLIST_ON_SUSPEND" value="false"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.internal.ui.launching.LocalApplicationCDebuggerTab.DEFAULTS_SET" value="true"/>
|
||||||
|
<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="1"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.COREFILE_PATH" value=""/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_ID" value="gdb"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="run"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="false"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="sc_main"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_ARGUMENTS" value="-f build/riscvfw-src/hello-world/hello.elf --dump-structure=tgc_vp.json --config cfg.yaml -t 3"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="build/${config_name:TGC-VP}/src/tgc-vp"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="TGC-VP"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="true"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value=""/>
|
||||||
|
<booleanAttribute key="org.eclipse.debug.core.ATTR_FORCE_SYSTEM_CONSOLE_ENCODING" value="false"/>
|
||||||
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||||
|
<listEntry value="/TGC-VP"/>
|
||||||
|
</listAttribute>
|
||||||
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||||
|
<listEntry value="4"/>
|
||||||
|
</listAttribute>
|
||||||
|
<stringAttribute key="org.eclipse.dsf.launch.MEMORY_BLOCKS" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?><memoryBlockExpressionList context="reserved-for-future-use"/>"/>
|
||||||
|
<stringAttribute key="process_factory_id" value="org.eclipse.cdt.dsf.gdb.GdbProcessFactory"/>
|
||||||
|
</launchConfiguration>
|
|
@ -0,0 +1,35 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<launchConfiguration type="org.eclipse.cdt.launch.applicationLaunchType">
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.AUTO_SOLIB" value="true"/>
|
||||||
|
<listAttribute key="org.eclipse.cdt.dsf.gdb.AUTO_SOLIB_LIST"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="gdb"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_ON_FORK" value="false"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.dsf.gdb.GDB_INIT" value=".gdbinit"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.NON_STOP" value="false"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.REVERSE" value="false"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.dsf.gdb.REVERSE_MODE" value="UseSoftTrace"/>
|
||||||
|
<listAttribute key="org.eclipse.cdt.dsf.gdb.SOLIB_PATH"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.dsf.gdb.TRACEPOINT_MODE" value="TP_NORMAL_ONLY"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.UPDATE_THREADLIST_ON_SUSPEND" value="false"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.internal.ui.launching.LocalApplicationCDebuggerTab.DEFAULTS_SET" value="true"/>
|
||||||
|
<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="1"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.COREFILE_PATH" value=""/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_ID" value="gdb"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="run"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="false"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="sc_main"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_ARGUMENTS" value="-f build/riscvfw-src/hello-world/hello.elf -p ce=tgc-iss/dbt-rise-tgc/contrib/instr/TGC5C_slow.yaml --dump-structure=tgc_vp.json --config cfg.yaml -t 3"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="build/${config_name:TGC-VP}/src/tgc-vp"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="TGC-VP"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="true"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value=""/>
|
||||||
|
<booleanAttribute key="org.eclipse.debug.core.ATTR_FORCE_SYSTEM_CONSOLE_ENCODING" value="false"/>
|
||||||
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||||
|
<listEntry value="/TGC-VP"/>
|
||||||
|
</listAttribute>
|
||||||
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||||
|
<listEntry value="4"/>
|
||||||
|
</listAttribute>
|
||||||
|
<stringAttribute key="org.eclipse.dsf.launch.MEMORY_BLOCKS" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?><memoryBlockExpressionList context="reserved-for-future-use"/>"/>
|
||||||
|
<stringAttribute key="process_factory_id" value="org.eclipse.cdt.dsf.gdb.GdbProcessFactory"/>
|
||||||
|
</launchConfiguration>
|
|
@ -36,7 +36,7 @@
|
||||||
<stringAttribute key="org.eclipse.debug.core.ATTR_GDBSERVER_PORT" value="2345"/>
|
<stringAttribute key="org.eclipse.debug.core.ATTR_GDBSERVER_PORT" value="2345"/>
|
||||||
<stringAttribute key="org.eclipse.debug.core.ATTR_PRERUN_CMDS" value=""/>
|
<stringAttribute key="org.eclipse.debug.core.ATTR_PRERUN_CMDS" value=""/>
|
||||||
<booleanAttribute key="org.eclipse.debug.core.ATTR_SKIP_DOWNLOAD_TO_TARGET" value="false"/>
|
<booleanAttribute key="org.eclipse.debug.core.ATTR_SKIP_DOWNLOAD_TO_TARGET" value="false"/>
|
||||||
<stringAttribute key="org.eclipse.debug.core.ATTR_TARGET_PATH" value=""/>
|
<stringAttribute key="org.eclipse.debug.core.ATTR_TARGET_PATH" value="/scratch/eyck/workarea/RISC-V/TGC-VP/fw/hello-world/prebuilt/hello.elf"/>
|
||||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||||
<listEntry value="/TGC-VP"/>
|
<listEntry value="/TGC-VP"/>
|
||||||
</listAttribute>
|
</listAttribute>
|
|
@ -0,0 +1,52 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<launchConfiguration type="org.eclipse.cdt.launch.remoteApplicationLaunchType">
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.AUTO_SOLIB" value="true"/>
|
||||||
|
<listAttribute key="org.eclipse.cdt.dsf.gdb.AUTO_SOLIB_LIST"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="riscv64-unknown-elf-gdb"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_ON_FORK" value="false"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.dsf.gdb.DEV" value="/dev/ttyS0"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.dsf.gdb.DEV_SPEED" value="115200"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.dsf.gdb.GDB_INIT" value=".gdbinit"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.dsf.gdb.HOST" value="localhost"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.NON_STOP" value="false"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.dsf.gdb.PORT" value="10000"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.REMOTE_TCP" value="true"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.REMOTE_TIMEOUT_ENABLED" value="false"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.dsf.gdb.REMOTE_TIMEOUT_VALUE" value=""/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.REVERSE" value="false"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.dsf.gdb.REVERSE_MODE" value="UseSoftTrace"/>
|
||||||
|
<listAttribute key="org.eclipse.cdt.dsf.gdb.SOLIB_PATH"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.dsf.gdb.TRACEPOINT_MODE" value="TP_NORMAL_ONLY"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.UPDATE_THREADLIST_ON_SUSPEND" value="false"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.internal.ui.launching.RemoteApplicationCDebuggerTab.DEFAULTS_SET" value="true"/>
|
||||||
|
<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.COREFILE_PATH" value=""/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_ID" value="gdbserver"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="remote"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="main"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="build/riscvfw-src/hello-world/hello.elf"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="TGC-VP"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="true"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value=""/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.launch.remote.RemoteCDSFDebuggerTab.DEFAULTS_SET" value="true"/>
|
||||||
|
<booleanAttribute key="org.eclipse.debug.core.ATTR_FORCE_SYSTEM_CONSOLE_ENCODING" value="false"/>
|
||||||
|
<stringAttribute key="org.eclipse.debug.core.ATTR_GDBSERVER_COMMAND" value="gdbserver"/>
|
||||||
|
<stringAttribute key="org.eclipse.debug.core.ATTR_GDBSERVER_OPTIONS" value=""/>
|
||||||
|
<stringAttribute key="org.eclipse.debug.core.ATTR_GDBSERVER_PORT" value="2345"/>
|
||||||
|
<stringAttribute key="org.eclipse.debug.core.ATTR_PRERUN_CMDS" value=""/>
|
||||||
|
<booleanAttribute key="org.eclipse.debug.core.ATTR_SKIP_DOWNLOAD_TO_TARGET" value="false"/>
|
||||||
|
<stringAttribute key="org.eclipse.debug.core.ATTR_TARGET_PATH" value="/scratch/eyck/workarea/RISC-V/TGC-VP/build/riscvfw-src/hello-world/hello.elf"/>
|
||||||
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||||
|
<listEntry value="/TGC-VP"/>
|
||||||
|
</listAttribute>
|
||||||
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||||
|
<listEntry value="4"/>
|
||||||
|
</listAttribute>
|
||||||
|
<stringAttribute key="org.eclipse.debug.core.REMOTE_TCP" value="Local"/>
|
||||||
|
<mapAttribute key="org.eclipse.debug.core.preferred_launchers">
|
||||||
|
<mapEntry key="[debug]" value="org.eclipse.cdt.dsf.gdb.launch.remoteCLaunch"/>
|
||||||
|
</mapAttribute>
|
||||||
|
<stringAttribute key="org.eclipse.dsf.launch.MEMORY_BLOCKS" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?><memoryBlockExpressionList context="reserved-for-future-use"/>"/>
|
||||||
|
<stringAttribute key="process_factory_id" value="org.eclipse.cdt.dsf.gdb.GdbProcessFactory"/>
|
||||||
|
</launchConfiguration>
|
|
@ -0,0 +1,35 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<launchConfiguration type="org.eclipse.cdt.launch.applicationLaunchType">
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.AUTO_SOLIB" value="true"/>
|
||||||
|
<listAttribute key="org.eclipse.cdt.dsf.gdb.AUTO_SOLIB_LIST"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="gdb"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_ON_FORK" value="false"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.dsf.gdb.GDB_INIT" value=".gdbinit"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.NON_STOP" value="false"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.REVERSE" value="false"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.dsf.gdb.REVERSE_MODE" value="UseSoftTrace"/>
|
||||||
|
<listAttribute key="org.eclipse.cdt.dsf.gdb.SOLIB_PATH"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.dsf.gdb.TRACEPOINT_MODE" value="TP_NORMAL_ONLY"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.UPDATE_THREADLIST_ON_SUSPEND" value="false"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.internal.ui.launching.LocalApplicationCDebuggerTab.DEFAULTS_SET" value="true"/>
|
||||||
|
<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="1"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.COREFILE_PATH" value=""/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_ID" value="gdb"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="run"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="sc_main"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_ARGUMENTS" value="-f build/riscvfw-src/hello-world/hello.elf -g 10000 -v INFO"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="build/Debug/src/tgc-vp"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="TGC-VP"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="true"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="cdt.managedbuild.toolchain.gnu.base.1730410661"/>
|
||||||
|
<booleanAttribute key="org.eclipse.debug.core.ATTR_FORCE_SYSTEM_CONSOLE_ENCODING" value="false"/>
|
||||||
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||||
|
<listEntry value="/TGC-VP"/>
|
||||||
|
</listAttribute>
|
||||||
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||||
|
<listEntry value="4"/>
|
||||||
|
</listAttribute>
|
||||||
|
<stringAttribute key="org.eclipse.dsf.launch.MEMORY_BLOCKS" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?><memoryBlockExpressionList context="reserved-for-future-use"/>"/>
|
||||||
|
<stringAttribute key="process_factory_id" value="org.eclipse.cdt.dsf.gdb.GdbProcessFactory"/>
|
||||||
|
</launchConfiguration>
|
|
@ -0,0 +1,35 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<launchConfiguration type="org.eclipse.cdt.launch.applicationLaunchType">
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.AUTO_SOLIB" value="true"/>
|
||||||
|
<listAttribute key="org.eclipse.cdt.dsf.gdb.AUTO_SOLIB_LIST"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="gdb"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_ON_FORK" value="false"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.dsf.gdb.GDB_INIT" value=".gdbinit"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.NON_STOP" value="false"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.REVERSE" value="false"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.dsf.gdb.REVERSE_MODE" value="UseSoftTrace"/>
|
||||||
|
<listAttribute key="org.eclipse.cdt.dsf.gdb.SOLIB_PATH"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.dsf.gdb.TRACEPOINT_MODE" value="TP_NORMAL_ONLY"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.UPDATE_THREADLIST_ON_SUSPEND" value="false"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.internal.ui.launching.LocalApplicationCDebuggerTab.DEFAULTS_SET" value="true"/>
|
||||||
|
<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="1"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.COREFILE_PATH" value=""/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_ID" value="gdb"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="run"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="false"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="sc_main"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_ARGUMENTS" value="-g 10000 -v DEBUG"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="build/Debug/src/tgc-vp"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="TGC-VP"/>
|
||||||
|
<booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="true"/>
|
||||||
|
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="cdt.managedbuild.toolchain.gnu.base.1730410661"/>
|
||||||
|
<booleanAttribute key="org.eclipse.debug.core.ATTR_FORCE_SYSTEM_CONSOLE_ENCODING" value="false"/>
|
||||||
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||||
|
<listEntry value="/TGC-VP"/>
|
||||||
|
</listAttribute>
|
||||||
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||||
|
<listEntry value="4"/>
|
||||||
|
</listAttribute>
|
||||||
|
<stringAttribute key="org.eclipse.dsf.launch.MEMORY_BLOCKS" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?><memoryBlockExpressionList context="reserved-for-future-use"/>"/>
|
||||||
|
<stringAttribute key="process_factory_id" value="org.eclipse.cdt.dsf.gdb.GdbProcessFactory"/>
|
||||||
|
</launchConfiguration>
|
|
@ -104,7 +104,7 @@ if(NOT USE_CWR_SYSTEMC AND NOT USE_NCSC_SYSTEMC AND NOT DEFINED ENV{SYSTEMC_HOME
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
conan_check()
|
conan_check()
|
||||||
conan_add_remote(NAME minres URL https://git.minres.com/api/packages/Tooling/conan)
|
#conan_add_remote(NAME minres URL https://git.minres.com/api/packages/Tooling/conan)
|
||||||
# Boost on CentOS 7 quirks: the b2 of conan-center is build against a newer libstdc++ and therefore does not run
|
# Boost on CentOS 7 quirks: the b2 of conan-center is build against a newer libstdc++ and therefore does not run
|
||||||
# with the oooooold libs on CentOS 7. Therefore we build our own version of b2 if it is not there
|
# with the oooooold libs on CentOS 7. Therefore we build our own version of b2 if it is not there
|
||||||
execute_process(COMMAND bash -c "conan search -r all b2 | tail -1" OUTPUT_VARIABLE B2_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
|
execute_process(COMMAND bash -c "conan search -r all b2 | tail -1" OUTPUT_VARIABLE B2_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
@ -136,7 +136,7 @@ set(Boost_NO_BOOST_CMAKE ON) # Don't do a find_package in config mode before se
|
||||||
find_package(Boost REQUIRED COMPONENTS program_options QUIET)
|
find_package(Boost REQUIRED COMPONENTS program_options QUIET)
|
||||||
include(SystemCPackage)
|
include(SystemCPackage)
|
||||||
|
|
||||||
set(CLANG_FORMAT_EXCLUDE_PATTERNS "scc")
|
set(CLANG_FORMAT_EXCLUDE_PATTERNS scc build)
|
||||||
find_package(ClangFormat)
|
find_package(ClangFormat)
|
||||||
|
|
||||||
if(ENABLE_COVERAGE)
|
if(ENABLE_COVERAGE)
|
||||||
|
|
2
scc
2
scc
|
@ -1 +1 @@
|
||||||
Subproject commit bc96b96ef2b155fe217b7574bf8f091843d7ae3d
|
Subproject commit 44bca92871512982c7ea389954f78ce8292182a8
|
|
@ -5,7 +5,6 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "CLIParser.h"
|
#include "CLIParser.h"
|
||||||
#include <scc/report.h>
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <iss/log_categories.h>
|
#include <iss/log_categories.h>
|
||||||
#include <scc/report.h>
|
#include <scc/report.h>
|
||||||
|
@ -20,31 +19,34 @@ using namespace sc_core;
|
||||||
namespace {
|
namespace {
|
||||||
std::unordered_set<std::string> backend_opts = {"interp", "tcc", "llvm", "asmjit"};
|
std::unordered_set<std::string> backend_opts = {"interp", "tcc", "llvm", "asmjit"};
|
||||||
}
|
}
|
||||||
CLIParser::CLIParser(int argc, char *argv[])
|
CLIParser::CLIParser(int argc, char* argv[])
|
||||||
: desc("Options")
|
: desc("Options")
|
||||||
, valid(false) {
|
, valid(false) {
|
||||||
build();
|
build();
|
||||||
try {
|
try {
|
||||||
po::store(po::parse_command_line(argc, argv, desc), vm_); // can throw
|
po::store(po::parse_command_line(argc, argv, desc), vm_); // can throw
|
||||||
// --help option
|
// --help option
|
||||||
if (vm_.count("help")) {
|
if(vm_.count("help")) {
|
||||||
std::cout << "DBT-RISE-TGC based virtual platform of TGC cores" << std::endl << desc << std::endl;
|
std::cout << "DBT-RISE-TGC based virtual platform of TGC cores" << std::endl << desc << std::endl;
|
||||||
}
|
}
|
||||||
po::notify(vm_); // throws on error, so do after help in case there are any problems
|
po::notify(vm_); // throws on error, so do after help in case there are any problems
|
||||||
valid = true;
|
valid = true;
|
||||||
if(backend_opts.find(vm_["backend"].as<std::string>())== std::end(backend_opts))
|
if(backend_opts.find(vm_["backend"].as<std::string>()) == std::end(backend_opts))
|
||||||
throw po::error("Illegal value for switch backend");
|
throw po::error("Illegal value for switch backend");
|
||||||
} catch (po::error &e) {
|
} catch(po::error& e) {
|
||||||
std::cerr << "ERROR: " << e.what() << std::endl << std::endl;
|
std::cerr << "ERROR: " << e.what() << std::endl << std::endl;
|
||||||
std::cerr << desc << std::endl;
|
std::cerr << desc << std::endl;
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
auto log_level = vm_["verbose"].as<scc::log>();
|
auto log_level = vm_["verbose"].as<scc::log>();
|
||||||
auto log_level_num = static_cast<unsigned>(log_level);
|
auto log_level_num = static_cast<unsigned>(log_level);
|
||||||
LOGGER(DEFAULT)::reporting_level() = logging::as_log_level(log_level_num > 6 ? 6 : log_level_num);;
|
LOGGER(DEFAULT)::reporting_level() = logging::as_log_level(log_level_num > 6 ? 6 : log_level_num);
|
||||||
|
;
|
||||||
LOGGER(DEFAULT)::print_time() = false;
|
LOGGER(DEFAULT)::print_time() = false;
|
||||||
LOG_OUTPUT(DEFAULT)::ostream() = &std::cout;
|
LOG_OUTPUT(DEFAULT)::ostream() = &std::cout;
|
||||||
LOGGER(connection)::reporting_level() = logging::as_log_level(log_level_num > 4 ? log_level_num-1 : log_level_num);;
|
LOGGER(connection)::reporting_level() =
|
||||||
|
logging::as_log_level(log_level_num > 4 ? log_level_num - 1 : log_level_num);
|
||||||
|
;
|
||||||
LOGGER(connection)::print_time() = false;
|
LOGGER(connection)::print_time() = false;
|
||||||
LOG_OUTPUT(connection)::ostream() = &std::cout;
|
LOG_OUTPUT(connection)::ostream() = &std::cout;
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -57,7 +59,8 @@ CLIParser::CLIParser(int argc, char *argv[])
|
||||||
.logAsync(!vm_["log-sync"].as<bool>()));
|
.logAsync(!vm_["log-sync"].as<bool>()));
|
||||||
sc_core::sc_report_handler::set_actions("/IEEE_Std_1666/deprecated", sc_core::SC_DO_NOTHING);
|
sc_core::sc_report_handler::set_actions("/IEEE_Std_1666/deprecated", sc_core::SC_DO_NOTHING);
|
||||||
sc_core::sc_report_handler::set_actions(sc_core::SC_ID_MORE_THAN_ONE_SIGNAL_DRIVER_, sc_core::SC_DO_NOTHING);
|
sc_core::sc_report_handler::set_actions(sc_core::SC_ID_MORE_THAN_ONE_SIGNAL_DRIVER_, sc_core::SC_DO_NOTHING);
|
||||||
sc_core::sc_report_handler::set_actions(sc_core::SC_ERROR, sc_core::SC_LOG | sc_core::SC_CACHE_REPORT | sc_core::SC_DISPLAY | sc_core::SC_STOP);
|
sc_core::sc_report_handler::set_actions(sc_core::SC_ERROR, sc_core::SC_LOG | sc_core::SC_CACHE_REPORT |
|
||||||
|
sc_core::SC_DISPLAY | sc_core::SC_STOP);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CLIParser::build() {
|
void CLIParser::build() {
|
||||||
|
|
|
@ -8,22 +8,22 @@
|
||||||
#define PLATFORM_SRC_CLIPARSER_H_
|
#define PLATFORM_SRC_CLIPARSER_H_
|
||||||
|
|
||||||
#include <boost/program_options.hpp>
|
#include <boost/program_options.hpp>
|
||||||
#include <scc/report.h>
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
#include <scc/report.h>
|
||||||
|
|
||||||
class CLIParser {
|
class CLIParser {
|
||||||
public:
|
public:
|
||||||
CLIParser(int argc, char *argv[]);
|
CLIParser(int argc, char* argv[]);
|
||||||
|
|
||||||
virtual ~CLIParser();
|
virtual ~CLIParser();
|
||||||
|
|
||||||
bool is_valid() { return valid; }
|
bool is_valid() { return valid; }
|
||||||
|
|
||||||
const boost::program_options::variables_map &vm() { return vm_; }
|
const boost::program_options::variables_map& vm() { return vm_; }
|
||||||
|
|
||||||
bool is_set(const char *option) { return vm_.count(option) != 0; }
|
bool is_set(const char* option) { return vm_.count(option) != 0; }
|
||||||
|
|
||||||
template <typename T> const T &get(const char *option) { return vm_[option].as<T>(); }
|
template <typename T> const T& get(const char* option) { return vm_[option].as<T>(); }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void build();
|
void build();
|
||||||
|
|
|
@ -10,19 +10,19 @@
|
||||||
#include <scc/configurable_tracer.h>
|
#include <scc/configurable_tracer.h>
|
||||||
#include <scc/configurer.h>
|
#include <scc/configurer.h>
|
||||||
#include <scc/hierarchy_dumper.h>
|
#include <scc/hierarchy_dumper.h>
|
||||||
|
#include <scc/perf_estimator.h>
|
||||||
#include <scc/report.h>
|
#include <scc/report.h>
|
||||||
#include <scc/scv/scv_tr_db.h>
|
#include <scc/scv/scv_tr_db.h>
|
||||||
#include <scc/tracer.h>
|
#include <scc/tracer.h>
|
||||||
#include <scc/perf_estimator.h>
|
|
||||||
#ifdef WITH_LLVM
|
#ifdef WITH_LLVM
|
||||||
#include <iss/llvm/jit_helper.h>
|
#include <iss/llvm/jit_helper.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <boost/program_options.hpp>
|
#include <boost/program_options.hpp>
|
||||||
#include <tgc_vp/tb.h>
|
|
||||||
#include <iostream>
|
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
#include <iostream>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
#include <tgc_vp/tb.h>
|
||||||
#ifdef ERROR
|
#ifdef ERROR
|
||||||
#undef ERROR
|
#undef ERROR
|
||||||
#endif
|
#endif
|
||||||
|
@ -38,7 +38,7 @@ const size_t ERRORR_IN_COMMAND_LINE = 1;
|
||||||
const size_t SUCCESS = 0;
|
const size_t SUCCESS = 0;
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
int sc_main(int argc, char *argv[]) {
|
int sc_main(int argc, char* argv[]) {
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
// SystemC >=2.2 got picky about multiple drivers so disable check
|
// SystemC >=2.2 got picky about multiple drivers so disable check
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -47,7 +47,8 @@ int sc_main(int argc, char *argv[]) {
|
||||||
// CLI argument parsing & logging setup
|
// CLI argument parsing & logging setup
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
CLIParser parser(argc, argv);
|
CLIParser parser(argc, argv);
|
||||||
if (!parser.is_valid()) return ERRORR_IN_COMMAND_LINE;
|
if(!parser.is_valid())
|
||||||
|
return ERRORR_IN_COMMAND_LINE;
|
||||||
scc::stream_redirection cout_redir(std::cout, scc::log::INFO);
|
scc::stream_redirection cout_redir(std::cout, scc::log::INFO);
|
||||||
scc::stream_redirection cerr_redir(std::cerr, scc::log::ERROR);
|
scc::stream_redirection cerr_redir(std::cerr, scc::log::ERROR);
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -69,14 +70,16 @@ int sc_main(int argc, char *argv[]) {
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
std::unique_ptr<scc::configurable_tracer> tracer;
|
std::unique_ptr<scc::configurable_tracer> tracer;
|
||||||
if( auto trace_level = parser.get<unsigned>("trace-level")) {
|
if(auto trace_level = parser.get<unsigned>("trace-level")) {
|
||||||
auto file_name = parser.get<std::string>("trace-file");
|
auto file_name = parser.get<std::string>("trace-file");
|
||||||
auto enable_sig_trace = (trace_level&0x1) != 0;// bit0 enables sig trace
|
auto enable_sig_trace = (trace_level & 0x1) != 0; // bit0 enables sig trace
|
||||||
auto tx_trace_type = static_cast<scc::tracer::file_type>(trace_level >> 1); // bit3-bit1 define the kind of transaction trace
|
auto tx_trace_type =
|
||||||
|
static_cast<scc::tracer::file_type>(trace_level >> 1); // bit3-bit1 define the kind of transaction trace
|
||||||
auto trace_default_on = parser.is_set("trace-default-on");
|
auto trace_default_on = parser.is_set("trace-default-on");
|
||||||
cfg.set_value("$$$scc_tracer$$$.tx_trace_type", static_cast<unsigned>(scc::tracer::file_type::FTR));
|
cfg.set_value("$$$scc_tracer$$$.tx_trace_type", static_cast<unsigned>(scc::tracer::file_type::FTR));
|
||||||
cfg.set_value("$$$scc_tracer$$$.sig_trace_type", static_cast<unsigned>(scc::tracer::file_type::FST));
|
cfg.set_value("$$$scc_tracer$$$.sig_trace_type", static_cast<unsigned>(scc::tracer::file_type::FST));
|
||||||
tracer = scc::make_unique<scc::configurable_tracer>(file_name, tx_trace_type, enable_sig_trace, trace_default_on);
|
tracer =
|
||||||
|
scc::make_unique<scc::configurable_tracer>(file_name, tx_trace_type, enable_sig_trace, trace_default_on);
|
||||||
}
|
}
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
// instantiate top level
|
// instantiate top level
|
||||||
|
@ -85,18 +88,21 @@ int sc_main(int argc, char *argv[]) {
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
// add non-implemented 'enableTracing' properties
|
// add non-implemented 'enableTracing' properties
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
if(tracer) tracer->add_control();
|
if(tracer)
|
||||||
|
tracer->add_control();
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
// dump configuration if requested
|
// dump configuration if requested
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
if (parser.get<std::string>("dump-config").size() > 0) {
|
if(parser.get<std::string>("dump-config").size() > 0) {
|
||||||
std::ofstream of{parser.get<std::string>("dump-config")};
|
std::ofstream of{parser.get<std::string>("dump-config")};
|
||||||
if (of.is_open()) cfg.dump_configuration(of, true);
|
if(of.is_open())
|
||||||
|
cfg.dump_configuration(of, true);
|
||||||
}
|
}
|
||||||
cfg.configure();
|
cfg.configure();
|
||||||
std::unique_ptr<scc::hierarchy_dumper> dumper;
|
std::unique_ptr<scc::hierarchy_dumper> dumper;
|
||||||
if(parser.is_set("dump-structure"))
|
if(parser.is_set("dump-structure"))
|
||||||
dumper.reset(new scc::hierarchy_dumper(parser.get<std::string>("dump-structure"), scc::hierarchy_dumper::D3JSON));
|
dumper.reset(
|
||||||
|
new scc::hierarchy_dumper(parser.get<std::string>("dump-structure"), scc::hierarchy_dumper::D3JSON));
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
// overwrite config with command line settings
|
// overwrite config with command line settings
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -104,23 +110,25 @@ int sc_main(int argc, char *argv[]) {
|
||||||
cfg.set_value(core_path + ".dump_ir", parser.is_set("dump-ir"));
|
cfg.set_value(core_path + ".dump_ir", parser.is_set("dump-ir"));
|
||||||
cfg.set_value(core_path + ".backend", parser.get<std::string>("backend"));
|
cfg.set_value(core_path + ".backend", parser.get<std::string>("backend"));
|
||||||
cfg.set_value(core_path + ".core_type", parser.get<std::string>("isa"));
|
cfg.set_value(core_path + ".core_type", parser.get<std::string>("isa"));
|
||||||
if(parser.is_set("plugin")){
|
if(parser.is_set("plugin")) {
|
||||||
auto plugins = util::join(parser.get<std::vector<std::string>>("plugin"),",");
|
auto plugins = util::join(parser.get<std::vector<std::string>>("plugin"), ",");
|
||||||
cfg.set_value(core_path + ".plugins", plugins);
|
cfg.set_value(core_path + ".plugins", plugins);
|
||||||
}
|
}
|
||||||
if (parser.is_set("elf")) cfg.set_value(core_path + ".elf_file", parser.get<std::string>("elf"));
|
if(parser.is_set("elf"))
|
||||||
if (parser.is_set("quantum"))
|
cfg.set_value(core_path + ".elf_file", parser.get<std::string>("elf"));
|
||||||
|
if(parser.is_set("quantum"))
|
||||||
tlm::tlm_global_quantum::instance().set(sc_core::sc_time(parser.get<unsigned>("quantum"), sc_core::SC_NS));
|
tlm::tlm_global_quantum::instance().set(sc_core::sc_time(parser.get<unsigned>("quantum"), sc_core::SC_NS));
|
||||||
if (parser.is_set("reset")) {
|
if(parser.is_set("reset")) {
|
||||||
auto str = parser.get<std::string>("reset");
|
auto str = parser.get<std::string>("reset");
|
||||||
uint64_t start_address = str.find("0x") == 0 ? std::stoull(str.substr(2), nullptr, 16) : std::stoull(str, nullptr, 10);
|
uint64_t start_address =
|
||||||
|
str.find("0x") == 0 ? std::stoull(str.substr(2), nullptr, 16) : std::stoull(str, nullptr, 10);
|
||||||
cfg.set_value(core_path + ".reset_address", start_address);
|
cfg.set_value(core_path + ".reset_address", start_address);
|
||||||
}
|
}
|
||||||
if (parser.is_set("disass")) {
|
if(parser.is_set("disass")) {
|
||||||
cfg.set_value(core_path + ".enable_disass", true);
|
cfg.set_value(core_path + ".enable_disass", true);
|
||||||
LOGGER(disass)::reporting_level() = logging::INFO;
|
LOGGER(disass)::reporting_level() = logging::INFO;
|
||||||
auto file_name = parser.get<std::string>("disass");
|
auto file_name = parser.get<std::string>("disass");
|
||||||
if (file_name.length() > 0) {
|
if(file_name.length() > 0) {
|
||||||
LOG_OUTPUT(disass)::stream() = fopen(file_name.c_str(), "w");
|
LOG_OUTPUT(disass)::stream() = fopen(file_name.c_str(), "w");
|
||||||
LOGGER(disass)::print_time() = false;
|
LOGGER(disass)::print_time() = false;
|
||||||
LOGGER(disass)::print_severity() = false;
|
LOGGER(disass)::print_severity() = false;
|
||||||
|
@ -130,12 +138,13 @@ int sc_main(int argc, char *argv[]) {
|
||||||
// run simulation
|
// run simulation
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
try {
|
try {
|
||||||
if (parser.is_set("max_time")) {
|
if(parser.is_set("max_time")) {
|
||||||
sc_core::sc_start(scc::parse_from_string(parser.get<std::string>("max_time")));
|
sc_core::sc_start(scc::parse_from_string(parser.get<std::string>("max_time")));
|
||||||
} else
|
} else
|
||||||
sc_core::sc_start();
|
sc_core::sc_start();
|
||||||
if (!sc_core::sc_end_of_simulation_invoked()) sc_core::sc_stop();
|
if(!sc_core::sc_end_of_simulation_invoked())
|
||||||
} catch (sc_core::sc_report &rep) {
|
sc_core::sc_stop();
|
||||||
|
} catch(sc_core::sc_report& rep) {
|
||||||
sc_core::sc_report_handler::get_handler()(rep, sc_core::SC_DISPLAY | sc_core::SC_STOP);
|
sc_core::sc_report_handler::get_handler()(rep, sc_core::SC_DISPLAY | sc_core::SC_STOP);
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -1,21 +1,21 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2023 - 2024 MINRES Technologies GmbH
|
* Copyright (c) 2023 - 2024 MINRES Technologies GmbH
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*
|
*
|
||||||
* Generated at 2024-02-08 14:41:56 UTC
|
* Generated at 2024-02-08 14:41:56 UTC
|
||||||
* by peakrdl_mnrs version 1.2.2
|
* by peakrdl_mnrs version 1.2.2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
// need double braces, see https://stackoverflow.com/questions/6893700/how-to-construct-stdarray-object-with-initializer-list#6894191
|
// need double braces, see
|
||||||
const std::array<scc::target_memory_map_entry<scc::LT>, 7> PipelinedMemoryBusToApbBridge_map = {{
|
// https://stackoverflow.com/questions/6893700/how-to-construct-stdarray-object-with-initializer-list#6894191
|
||||||
{ gpio0.socket, 0x0, 0xc },
|
const std::array<scc::target_memory_map_entry<scc::LT>, 7> PipelinedMemoryBusToApbBridge_map = {
|
||||||
{ uart0.socket, 0x1000, 0x14 },
|
{{gpio0.socket, 0x0, 0xc},
|
||||||
{ timer0.socket, 0x20000, 0x1c },
|
{uart0.socket, 0x1000, 0x14},
|
||||||
{ aclint.socket, 0x30000, 0xc000 },
|
{timer0.socket, 0x20000, 0x1c},
|
||||||
{ irq_ctrl.socket, 0x40000, 0x8 },
|
{aclint.socket, 0x30000, 0xc000},
|
||||||
{ qspi.socket, 0x50000, 0x5c },
|
{irq_ctrl.socket, 0x40000, 0x8},
|
||||||
{ boot_rom.target, 0x80000, 0x5c }
|
{qspi.socket, 0x50000, 0x5c},
|
||||||
}} ;
|
{boot_rom.target, 0x80000, 0x5c}}};
|
||||||
|
|
|
@ -11,13 +11,13 @@ namespace tgc_vp {
|
||||||
|
|
||||||
class rst_gen : public sc_core::sc_module {
|
class rst_gen : public sc_core::sc_module {
|
||||||
SC_HAS_PROCESS(rst_gen);
|
SC_HAS_PROCESS(rst_gen);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
rst_gen(sc_core::sc_module_name const& nm) {
|
rst_gen(sc_core::sc_module_name const& nm) { SC_THREAD(run); }
|
||||||
SC_THREAD(run);
|
|
||||||
}
|
|
||||||
sc_core::sc_out<bool> rst_n{"rst_n"};
|
sc_core::sc_out<bool> rst_n{"rst_n"};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void run(){
|
void run() {
|
||||||
rst_n.write(false);
|
rst_n.write(false);
|
||||||
wait(100_ns);
|
wait(100_ns);
|
||||||
rst_n.write(true);
|
rst_n.write(true);
|
||||||
|
|
|
@ -17,7 +17,7 @@ using namespace sysc::tgfs;
|
||||||
system::system(sc_core::sc_module_name nm)
|
system::system(sc_core::sc_module_name nm)
|
||||||
: sc_core::sc_module(nm)
|
: sc_core::sc_module(nm)
|
||||||
, NAMED(ahb_router, 3, 2)
|
, NAMED(ahb_router, 3, 2)
|
||||||
, NAMED(apbBridge, PipelinedMemoryBusToApbBridge_map.size(), 1){
|
, NAMED(apbBridge, PipelinedMemoryBusToApbBridge_map.size(), 1) {
|
||||||
core_complex.ibus(ahb_router.target[0]);
|
core_complex.ibus(ahb_router.target[0]);
|
||||||
core_complex.dbus(ahb_router.target[1]);
|
core_complex.dbus(ahb_router.target[1]);
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ system::system(sc_core::sc_module_name nm)
|
||||||
ahb_router.set_target_range(2, 0xF0000000, 256_MB);
|
ahb_router.set_target_range(2, 0xF0000000, 256_MB);
|
||||||
|
|
||||||
size_t i = 0;
|
size_t i = 0;
|
||||||
for (const auto &e : PipelinedMemoryBusToApbBridge_map) {
|
for(const auto& e : PipelinedMemoryBusToApbBridge_map) {
|
||||||
apbBridge.initiator.at(i)(e.target);
|
apbBridge.initiator.at(i)(e.target);
|
||||||
apbBridge.set_target_range(i, e.start, e.size);
|
apbBridge.set_target_range(i, e.start, e.size);
|
||||||
i++;
|
i++;
|
||||||
|
@ -86,9 +86,6 @@ system::system(sc_core::sc_module_name nm)
|
||||||
SC_METHOD(gen_reset);
|
SC_METHOD(gen_reset);
|
||||||
sensitive << erst_n;
|
sensitive << erst_n;
|
||||||
}
|
}
|
||||||
void system::gen_reset(){
|
void system::gen_reset() { rst_s = !erst_n.read(); }
|
||||||
rst_s = !erst_n.read();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
} // namespace tgc_vp
|
||||||
} /* namespace sysc */
|
|
||||||
|
|
|
@ -9,42 +9,42 @@
|
||||||
|
|
||||||
#include "minres/irq.h"
|
#include "minres/irq.h"
|
||||||
#include "minres/timer.h"
|
#include "minres/timer.h"
|
||||||
|
#include <array>
|
||||||
|
#include <cci_configuration>
|
||||||
|
#include <memory>
|
||||||
#include <minres/aclint.h>
|
#include <minres/aclint.h>
|
||||||
#include <minres/gpio.h>
|
#include <minres/gpio.h>
|
||||||
#include <minres/qspi.h>
|
#include <minres/qspi.h>
|
||||||
#include <sysc/communication/sc_clock.h>
|
|
||||||
#include <sysc/communication/sc_signal_ports.h>
|
|
||||||
#include <sysc/core_complex.h>
|
|
||||||
#include <minres/uart.h>
|
#include <minres/uart.h>
|
||||||
#include <cci_configuration>
|
|
||||||
#include <scc/memory.h>
|
#include <scc/memory.h>
|
||||||
#include <scc/router.h>
|
#include <scc/router.h>
|
||||||
#include <scc/utilities.h>
|
#include <scc/utilities.h>
|
||||||
|
#include <sysc/communication/sc_clock.h>
|
||||||
|
#include <sysc/communication/sc_signal_ports.h>
|
||||||
|
#include <sysc/core_complex.h>
|
||||||
|
#include <sysc/kernel/sc_module.h>
|
||||||
#include <sysc/kernel/sc_time.h>
|
#include <sysc/kernel/sc_time.h>
|
||||||
#include <sysc/utils/sc_vector.h>
|
#include <sysc/utils/sc_vector.h>
|
||||||
#include <tlm/scc/tlm_signal_sockets.h>
|
#include <tlm/scc/tlm_signal_sockets.h>
|
||||||
#include <array>
|
|
||||||
#include <memory>
|
|
||||||
#include <sysc/kernel/sc_module.h>
|
|
||||||
|
|
||||||
namespace tgc_vp {
|
namespace tgc_vp {
|
||||||
|
|
||||||
class system : public sc_core::sc_module {
|
class system : public sc_core::sc_module {
|
||||||
public:
|
public:
|
||||||
SC_HAS_PROCESS(system);// NOLINT
|
SC_HAS_PROCESS(system); // NOLINT
|
||||||
|
|
||||||
sc_core::sc_vector<sc_core::sc_out<bool>> pins_o{"pins_o",32};
|
sc_core::sc_vector<sc_core::sc_out<bool>> pins_o{"pins_o", 32};
|
||||||
sc_core::sc_vector<sc_core::sc_out<bool>> pins_oe_o{"pins_oe_o", 32};
|
sc_core::sc_vector<sc_core::sc_out<bool>> pins_oe_o{"pins_oe_o", 32};
|
||||||
sc_core::sc_vector<sc_core::sc_in<bool>> pins_i{"pins_i", 32};
|
sc_core::sc_vector<sc_core::sc_in<bool>> pins_i{"pins_i", 32};
|
||||||
sc_core::sc_out<bool> uart0_tx_o {"uart0_tx_o"};
|
sc_core::sc_out<bool> uart0_tx_o{"uart0_tx_o"};
|
||||||
sc_core::sc_in<bool> uart0_rx_i {"uart0_rx_i"};
|
sc_core::sc_in<bool> uart0_rx_i{"uart0_rx_i"};
|
||||||
sc_core::sc_vector<sc_core::sc_in<bool>> t0_clear_i {"t0_clear_i", vpvper::minres::timer::CLEAR_CNT};
|
sc_core::sc_vector<sc_core::sc_in<bool>> t0_clear_i{"t0_clear_i", vpvper::minres::timer::CLEAR_CNT};
|
||||||
sc_core::sc_vector<sc_core::sc_in<bool>> t0_tick_i {"t0_tick_i", vpvper::minres::timer::TICK_CNT-1};
|
sc_core::sc_vector<sc_core::sc_in<bool>> t0_tick_i{"t0_tick_i", vpvper::minres::timer::TICK_CNT - 1};
|
||||||
sc_core::sc_out<bool> ssclk_o{"ssclk_o"};
|
sc_core::sc_out<bool> ssclk_o{"ssclk_o"};
|
||||||
sc_core::sc_vector<sc_core::sc_out<bool>> dq_o{"dq_o", 4};
|
sc_core::sc_vector<sc_core::sc_out<bool>> dq_o{"dq_o", 4};
|
||||||
sc_core::sc_vector<sc_core::sc_out<bool>> dq_oe_o{"dq_oe_o", 4};
|
sc_core::sc_vector<sc_core::sc_out<bool>> dq_oe_o{"dq_oe_o", 4};
|
||||||
sc_core::sc_vector<sc_core::sc_in<bool>> dq_i{"dq_i", 4};
|
sc_core::sc_vector<sc_core::sc_in<bool>> dq_i{"dq_i", 4};
|
||||||
|
|
||||||
sc_core::sc_in<sc_core::sc_time> clk_i{"clk_i"};
|
sc_core::sc_in<sc_core::sc_time> clk_i{"clk_i"};
|
||||||
|
|
||||||
sc_core::sc_in<bool> erst_n{"erst_n"};
|
sc_core::sc_in<bool> erst_n{"erst_n"};
|
||||||
|
@ -62,17 +62,19 @@ private:
|
||||||
vpvper::minres::qspi_tl qspi{"qspi"};
|
vpvper::minres::qspi_tl qspi{"qspi"};
|
||||||
|
|
||||||
scc::memory<1_kB, scc::LT> boot_rom{"boot_rom"};
|
scc::memory<1_kB, scc::LT> boot_rom{"boot_rom"};
|
||||||
scc::memory<32_kB, scc::LT> main_ram {"main_ram"};
|
scc::memory<32_kB, scc::LT> main_ram{"main_ram"};
|
||||||
|
|
||||||
sc_core::sc_signal<bool, sc_core::SC_MANY_WRITERS> rst_s{"rst_s"}, mtime_int_s{"mtime_int_s"}, msip_int_s{"msip_int_s"};
|
sc_core::sc_signal<bool, sc_core::SC_MANY_WRITERS> rst_s{"rst_s"}, mtime_int_s{"mtime_int_s"},
|
||||||
|
msip_int_s{"msip_int_s"};
|
||||||
sc_core::sc_vector<sc_core::sc_signal<bool, sc_core::SC_MANY_WRITERS>> irq_int_s{"irq_int_s", 32}, local_int_s{"local_int_s", 16};
|
|
||||||
|
sc_core::sc_vector<sc_core::sc_signal<bool, sc_core::SC_MANY_WRITERS>> irq_int_s{"irq_int_s", 32},
|
||||||
|
local_int_s{"local_int_s", 16};
|
||||||
sc_core::sc_signal<bool, sc_core::SC_MANY_WRITERS> core_int_s{"core_int_s"};
|
sc_core::sc_signal<bool, sc_core::SC_MANY_WRITERS> core_int_s{"core_int_s"};
|
||||||
|
|
||||||
void gen_reset();
|
void gen_reset();
|
||||||
#include "tgc_vp/gen/PipelinedMemoryBusToApbBridge.h"
|
#include "tgc_vp/gen/PipelinedMemoryBusToApbBridge.h"
|
||||||
};
|
};
|
||||||
|
|
||||||
} /* namespace sysc */
|
} // namespace tgc_vp
|
||||||
|
|
||||||
#endif /* _PLATFORM_H_ */
|
#endif /* _PLATFORM_H_ */
|
||||||
|
|
|
@ -9,7 +9,8 @@
|
||||||
namespace tgc_vp {
|
namespace tgc_vp {
|
||||||
|
|
||||||
SC_HAS_PROCESS(tb);
|
SC_HAS_PROCESS(tb);
|
||||||
tb::tb(const sc_core::sc_module_name &nm): sc_core::sc_module(nm) {
|
tb::tb(const sc_core::sc_module_name& nm)
|
||||||
|
: sc_core::sc_module(nm) {
|
||||||
top.erst_n(rst_n);
|
top.erst_n(rst_n);
|
||||||
rst_gen.rst_n(rst_n);
|
rst_gen.rst_n(rst_n);
|
||||||
top.pins_o(pins_o);
|
top.pins_o(pins_o);
|
||||||
|
@ -26,4 +27,4 @@ tb::tb(const sc_core::sc_module_name &nm): sc_core::sc_module(nm) {
|
||||||
top.clk_i(clk_i);
|
top.clk_i(clk_i);
|
||||||
clk_i = 10_ns;
|
clk_i = 10_ns;
|
||||||
}
|
}
|
||||||
}
|
} // namespace tgc_vp
|
||||||
|
|
|
@ -20,13 +20,13 @@ public:
|
||||||
tgc_vp::system top{"top"};
|
tgc_vp::system top{"top"};
|
||||||
tgc_vp::rst_gen rst_gen{"rst_gen"};
|
tgc_vp::rst_gen rst_gen{"rst_gen"};
|
||||||
sc_core::sc_signal<bool> rst_n{"rst_n"};
|
sc_core::sc_signal<bool> rst_n{"rst_n"};
|
||||||
sc_core::sc_vector<sc_core::sc_signal<bool>> pins_o{"pins_o",32};
|
sc_core::sc_vector<sc_core::sc_signal<bool>> pins_o{"pins_o", 32};
|
||||||
sc_core::sc_vector<sc_core::sc_signal<bool>> pins_oe_o{"pins_oe_o", 32};
|
sc_core::sc_vector<sc_core::sc_signal<bool>> pins_oe_o{"pins_oe_o", 32};
|
||||||
sc_core::sc_vector<sc_core::sc_signal<bool>> pins_i{"pins_i", 32};
|
sc_core::sc_vector<sc_core::sc_signal<bool>> pins_i{"pins_i", 32};
|
||||||
sc_core::sc_signal<bool> uart0_tx_o {"uart0_tx_o"};
|
sc_core::sc_signal<bool> uart0_tx_o{"uart0_tx_o"};
|
||||||
sc_core::sc_signal<bool> uart0_rx_i {"uart0_rx_i"};
|
sc_core::sc_signal<bool> uart0_rx_i{"uart0_rx_i"};
|
||||||
sc_core::sc_vector<sc_core::sc_signal<bool>> t0_clear_i {"t0_clear_i", vpvper::minres::timer::CLEAR_CNT};
|
sc_core::sc_vector<sc_core::sc_signal<bool>> t0_clear_i{"t0_clear_i", vpvper::minres::timer::CLEAR_CNT};
|
||||||
sc_core::sc_vector<sc_core::sc_signal<bool>> t0_tick_i {"t0_tick_i", vpvper::minres::timer::TICK_CNT-1};
|
sc_core::sc_vector<sc_core::sc_signal<bool>> t0_tick_i{"t0_tick_i", vpvper::minres::timer::TICK_CNT - 1};
|
||||||
sc_core::sc_signal<bool> ssclk_o{"ssclk_o"};
|
sc_core::sc_signal<bool> ssclk_o{"ssclk_o"};
|
||||||
sc_core::sc_vector<sc_core::sc_signal<bool>> dq_o{"dq_o", 4};
|
sc_core::sc_vector<sc_core::sc_signal<bool>> dq_o{"dq_o", 4};
|
||||||
sc_core::sc_vector<sc_core::sc_signal<bool>> dq_oe_o{"dq_oe_o", 4};
|
sc_core::sc_vector<sc_core::sc_signal<bool>> dq_oe_o{"dq_oe_o", 4};
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit f1beb88a6158a7ab20b8cc539d042103200b2f42
|
Subproject commit 7c446a3dc656482f2e91eb990c47df2ab666ea4b
|
|
@ -1 +1 @@
|
||||||
Subproject commit 0996d15bd406d3a73f4860d57b9d468444043843
|
Subproject commit 9de0aed84da0c96077ad363327209ed284985ae9
|
2
vpvper
2
vpvper
|
@ -1 +1 @@
|
||||||
Subproject commit 021f845cfe32fdd0cbb44d9d2c68d2bb334cccf9
|
Subproject commit 99f8c5dd4a9e523998f3247cfb6c756ee660e3d1
|
Loading…
Reference in New Issue