3
私はエミュレータのメインループを実装しようとしています。エミュレータはフルスピードで動作します。約60Mhz。しかし私はそれを4.77Mhzで走らせたいと思う。どうしたの?エミュレータの速度を遅くする
for (;;)
{
emu_step(ctx) ;
uint64_t current = get_gtod_clock_time() ;
uint64_t elapsed = current - last_time ;
if (elapsed >= 1000000)
{
printf("Cycles: %d\n", get_cycles(ctx)) ;
set_cycles_zero(ctx, 0) ;
last_time = get_gtod_clock_time() ;
}
}
emu_step()
は、1つの命令を実行する機能です。 get_cycles(ctx)
は、実行されたマシンサイクルの合計です。 set_cycles_zero(ctx, 0)
はサイクルカウンタをゼロに設定します。