Hosted targets Fix timer cycle calculation overflow

at 1 GHZ the intermediate calculation for cycles overflows 32 bits
this makes timer fail even with sensible values
solution divide both sides by 100

Change-Id: I18a4054c2d06fb72531d5496bba562f71b03984f
This commit is contained in:
William Wilgus 2020-10-23 11:29:38 -04:00 committed by William Wilgus
parent 186dbb4527
commit 3a7a46d1c0
2 changed files with 5 additions and 2 deletions

View file

@ -424,7 +424,10 @@ static void init_event_thread(bool init, struct event_data *ev_data)
IF_COP(, COP));
/* Timer is used to poll waiting events */
rb->timer_register(1, NULL, EV_TIMER_FREQ, rev_timer_isr IF_COP(, CPU));
if (!rb->timer_register(1, NULL, EV_TIMER_FREQ, rev_timer_isr IF_COP(, CPU)))
{
rb->splash(100, "No timer available!");
}
}
static void playback_event_callback(unsigned short id, void *data)

View file

@ -104,7 +104,7 @@ void tick_start(unsigned int interval_in_ms)
}
#define cycles_to_microseconds(cycles) \
((int)((1000000*cycles)/TIMER_FREQ))
((int)((10000*cycles)/(TIMER_FREQ / 100)))
static timer_t timer_tid;