URL
https://opencores.org/ocsvn/or1k/or1k/trunk
Subversion Repositories or1k
[/] [or1k/] [tags/] [rel-0-3-0-rc1/] [or1ksim/] [toplevel.c] - Rev 1745
Go to most recent revision | Compare with Previous | Blame | View Log
/* toplevel.c -- Top level simulator source file Copyright (C) 1999 Damjan Lampret, lampret@opencores.org This file is part of OpenRISC 1000 Architectural Simulator. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* Simulator commands. Help and version output. SIGINT processing. Stdout redirection is specific to linux (I need to fix this). */ /* System includes */ #include <unistd.h> /* All the autoconf includes */ #include "config.h" #ifdef HAVE_INTTYPES_H #include <inttypes.h> #endif /* Package includes */ #include "or1ksim.h" #include "port.h" #include "arch.h" #include "abstract.h" #include "sim-config.h" #include "opcode/or32.h" #include "spr_defs.h" #include "execute.h" #include "debug_unit.h" #include "vapi.h" #include "gdbcomm.h" #include "sched.h" #include "profiler.h" #include "mprofiler.h" /* Support routines declared in toplevel_support.c */ extern void ctrl_c( int signum ); extern void recalc_do_stats( void ); extern void sim_init( void ); extern void sim_done( void ); extern void do_scheduler( void ); /* Main function */ int main( int argc, char *argv[] ) { srand(getpid()); init_defconfig(); reg_config_secs(); if (parse_args(argc, argv)) { PRINTF("Usage: %s [options] <filename>\n", argv[0]); PRINTF("Options:\n"); PRINTF(" -v version and copyright note\n"); PRINTF(" -i enable interactive command prompt\n"); PRINTF(" --nosrv do not launch JTAG proxy server\n"); /* (CZ) */ PRINTF(" --srv <n> launch JTAG proxy server on port <n>; [random]\n"); /* (CZ) */ PRINTF(" -f or --file load script file [sim.cfg]\n"); PRINTF(" -d <debug config> Enable debug channels\n"); PRINTF(" --enable-profile enable profiling.\n"); PRINTF(" --enable-mprofile enable memory profiling.\n"); PRINTF("\nor : %s ", argv[0]); mp_help (); PRINTF("\nor : %s ", argv[0]); prof_help (); exit(-1); } /* Read configuration file. */ if (!runtime.sim.script_file_specified) read_script_file ("sim.cfg"); /* Overide parameters with command line ones */ if (runtime.simcmd.profile) config.sim.profile = 1; if (runtime.simcmd.mprofile) config.sim.mprofile = 1; if (!runtime.sim.script_file_specified && config.sim.verbose) { fprintf( stderr, "WARNING: No config file read, assuming default configuration.\n"); } config.ext.class_ptr = NULL; /* SystemC linkage disabled here. */ config.ext.read_up = NULL; config.ext.write_up = NULL; print_config(); signal(SIGINT, ctrl_c); runtime.sim.hush = 1; recalc_do_stats(); sim_init (); #if DYNAMIC_EXECUTION dyn_main(); #else exec_main(); #endif sim_done(); }
Go to most recent revision | Compare with Previous | Blame | View Log