mirror of https://github.com/ARMmbed/mbed-os.git
Update HAL code to resolve ticker lockup issue
parent
44fc3313d1
commit
d56959acf5
Binary file not shown.
Binary file not shown.
|
@ -94,6 +94,11 @@ HalTimerReadCountRtl8195a_Patch(
|
|||
IN u32 TimerId
|
||||
);
|
||||
|
||||
VOID
|
||||
HalTimerSync(
|
||||
IN u32 TimerId
|
||||
);
|
||||
|
||||
VOID
|
||||
HalTimerIrqEnRtl8195a(
|
||||
IN u32 TimerId
|
||||
|
|
|
@ -53,9 +53,10 @@ typedef struct _HAL_TIMER_OP_ {
|
|||
}HAL_TIMER_OP, *PHAL_TIMER_OP;
|
||||
|
||||
typedef struct _HAL_TIMER_OP_EXT_ {
|
||||
PHAL_TIMER_OP phal_timer_op_rom;
|
||||
VOID (*HalTimerIrqEn)(u32 TimerId);
|
||||
VOID (*HalTimerReLoad)(u32 TimerId, u32 LoadUs);
|
||||
PHAL_TIMER_OP phal_timer_op_rom;
|
||||
VOID (*HalTimerIrqEn)(u32 TimerId);
|
||||
VOID (*HalTimerReLoad)(u32 TimerId, u32 LoadUs);
|
||||
VOID (*HalTimerSync)(u32 TimerId);
|
||||
}HAL_TIMER_OP_EXT, *PHAL_TIMER_OP_EXT;
|
||||
|
||||
#ifdef CONFIG_TIMER_MODULE
|
||||
|
|
|
@ -75,16 +75,13 @@ void us_ticker_init(void)
|
|||
uint32_t us_ticker_read(void)
|
||||
{
|
||||
uint32_t tick_cnt;
|
||||
uint64_t tick_us;
|
||||
|
||||
if (!us_ticker_inited) {
|
||||
us_ticker_init();
|
||||
}
|
||||
|
||||
tick_cnt = HalTimerOp.HalTimerReadCount(SYS_TIM_ID);
|
||||
tick_us = TICK_TO_US(0xFFFFFFFFUL - tick_cnt);
|
||||
|
||||
return ((uint32_t)tick_us); //return ticker value in micro-seconds (us)
|
||||
return (uint32_t)TICK_TO_US(0xFFFFFFFFUL - tick_cnt);
|
||||
}
|
||||
|
||||
void us_ticker_set_interrupt(timestamp_t timestamp)
|
||||
|
@ -100,6 +97,7 @@ void us_ticker_set_interrupt(timestamp_t timestamp)
|
|||
|
||||
HalTimerOp.HalTimerDis((u32)TimerAdapter.TimerId);
|
||||
HalTimerOpExt.HalTimerReLoad((u32)TimerAdapter.TimerId, TimerAdapter.TimerLoadValueUs);
|
||||
HalTimerOpExt.HalTimerSync(SYS_TIM_ID);
|
||||
HalTimerOp.HalTimerEn((u32)TimerAdapter.TimerId);
|
||||
}
|
||||
|
||||
|
@ -109,6 +107,7 @@ void us_ticker_fire_interrupt(void)
|
|||
|
||||
HalTimerOp.HalTimerDis((u32)TimerAdapter.TimerId);
|
||||
HalTimerOpExt.HalTimerReLoad((u32)TimerAdapter.TimerId, TimerAdapter.TimerLoadValueUs);
|
||||
HalTimerOpExt.HalTimerSync(SYS_TIM_ID);
|
||||
HalTimerOp.HalTimerEn((u32)TimerAdapter.TimerId);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue