diff options
Diffstat (limited to 'func.c')
-rw-r--r-- | func.c | 18 |
1 files changed, 18 insertions, 0 deletions
@@ -63,6 +63,7 @@ uint32 last_load_addr = 0; int nouartrx = 0; int port = 1234; int sim_run = 0; +int sync_rt = 0; /* RAM and ROM for all systems */ char romb[ROM_SIZE]; @@ -1054,6 +1055,23 @@ pwd_enter (struct pstate *sregs) sregs->hold += delta; } +void +rt_sync() +{ + double walltime, realtime, dtime; + int64 stime; + stime = ebase.simtime - ebase.simstart; /* Total simulated time */ + realtime = (double) ((stime) / 1000000.0 / ebase.freq); + walltime = ebase.tottime + get_time () - ebase.starttime; + dtime = (realtime - walltime); + if (dtime > 0.001) + { + if (dtime > 1.0) + dtime = 0.1; + usleep ((useconds_t) (dtime * 1E6)); + } +} + int check_bpt (sregs) struct pstate *sregs; |