e0140202bd
bcak to main LiveProcess, then automatically select ISA based on object file type. Now simulation scripts no longer need to care about the ISA, as they can just call LiveProcess(). configs/test/test.py: Script no longer cares about ISA. src/arch/alpha/process.cc: src/arch/alpha/process.hh: src/arch/mips/process.cc: src/arch/mips/process.hh: src/arch/sparc/process.cc: src/arch/sparc/process.hh: src/sim/process.cc: src/sim/process.hh: Move create() from arch-specific files back to main LiveProcess, then automatically select ISA based on object file type. --HG-- extra : convert_revision : ef33ffdc79623b77000f5d68edd2026760b76ab6
50 lines
1.1 KiB
Python
50 lines
1.1 KiB
Python
# Simple test script
|
|
#
|
|
# Alpha: "m5 test.py"
|
|
# MIPS: "m5 test.py -a Mips -c hello_mips"
|
|
|
|
import os, optparse, sys
|
|
import m5
|
|
from m5.objects import *
|
|
|
|
# parse command-line arguments
|
|
parser = optparse.OptionParser(option_list=m5.standardOptions)
|
|
|
|
parser.add_option("-c", "--cmd", default="hello")
|
|
parser.add_option("-t", "--timing", action="store_true")
|
|
|
|
(options, args) = parser.parse_args()
|
|
|
|
if args:
|
|
print "Error: script doesn't take any positional arguments"
|
|
sys.exit(1)
|
|
|
|
# build configuration
|
|
this_dir = os.path.dirname(__file__)
|
|
|
|
process = LiveProcess()
|
|
process.executable = os.path.join(this_dir, options.cmd)
|
|
process.cmd = options.cmd
|
|
|
|
magicbus = Bus()
|
|
mem = PhysicalMemory()
|
|
|
|
if options.timing:
|
|
cpu = TimingSimpleCPU()
|
|
else:
|
|
cpu = AtomicSimpleCPU()
|
|
cpu.workload = process
|
|
cpu.mem = magicbus
|
|
|
|
system = System(physmem = mem, cpu = cpu)
|
|
system.c1 = Connector(side_a = mem, side_b = magicbus)
|
|
root = Root(system = system)
|
|
|
|
# instantiate configuration
|
|
m5.instantiate(root)
|
|
|
|
# simulate until program terminates
|
|
exit_event = m5.simulate()
|
|
|
|
print 'Exiting @', m5.curTick(), 'because', exit_event.getCause()
|
|
|