mirror of https://github.com/ARMmbed/mbed-os.git
Add implementation of ticker_free() function to CI boards.
This PR provides implementation of ticker_free() function for the following boards: ARCH_PRO EV_COG_AD3029LZ EV_COG_AD4050LZ K22F K64F K82F KW24D KW41Z LPC546XX NRF51_DK NRF52_DK NUCLEO_F207ZG NUCLEO_F401RE NUCLEO_F429ZI NUCLEO_F746ZG REALTEK_RTL8195AMpull/7508/head
parent
c0ee843d63
commit
ace821017f
|
@ -357,7 +357,7 @@ void us_ticker_fire_interrupt(void)
|
|||
|
||||
void us_ticker_free(void)
|
||||
{
|
||||
|
||||
adi_tmr_Enable(ADI_TMR_DEVICE_GP2, false);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -355,7 +355,7 @@ void us_ticker_fire_interrupt(void)
|
|||
|
||||
void us_ticker_free(void)
|
||||
{
|
||||
|
||||
adi_tmr_Enable(ADI_TMR_DEVICE_GP2, false);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -139,5 +139,13 @@ void us_ticker_fire_interrupt(void)
|
|||
|
||||
void us_ticker_free(void)
|
||||
{
|
||||
PIT_StopTimer(PIT, kPIT_Chnl_3);
|
||||
PIT_StopTimer(PIT, kPIT_Chnl_2);
|
||||
PIT_StopTimer(PIT, kPIT_Chnl_1);
|
||||
PIT_StopTimer(PIT, kPIT_Chnl_0);
|
||||
|
||||
PIT_DisableInterrupts(PIT, kPIT_Chnl_3, kPIT_TimerInterruptEnable);
|
||||
NVIC_DisableIRQ(PIT3_IRQn);
|
||||
|
||||
us_ticker_inited = false;
|
||||
}
|
||||
|
|
|
@ -139,5 +139,13 @@ void us_ticker_fire_interrupt(void)
|
|||
|
||||
void us_ticker_free(void)
|
||||
{
|
||||
PIT_StopTimer(PIT, kPIT_Chnl_3);
|
||||
PIT_StopTimer(PIT, kPIT_Chnl_2);
|
||||
PIT_StopTimer(PIT, kPIT_Chnl_1);
|
||||
PIT_StopTimer(PIT, kPIT_Chnl_0);
|
||||
|
||||
PIT_DisableInterrupts(PIT, kPIT_Chnl_3, kPIT_TimerInterruptEnable);
|
||||
NVIC_DisableIRQ(PIT3_IRQn);
|
||||
|
||||
us_ticker_inited = false;
|
||||
}
|
||||
|
|
|
@ -155,5 +155,11 @@ void us_ticker_fire_interrupt(void)
|
|||
|
||||
void us_ticker_free(void)
|
||||
{
|
||||
PIT_StopTimer(PIT, kPIT_Chnl_1);
|
||||
PIT_StopTimer(PIT, kPIT_Chnl_0);
|
||||
|
||||
TPM_DisableInterrupts(TPM2, kTPM_TimeOverflowInterruptEnable);
|
||||
NVIC_DisableIRQ(TPM2_IRQn);
|
||||
|
||||
us_ticker_inited = false;
|
||||
}
|
||||
|
|
|
@ -139,5 +139,13 @@ void us_ticker_fire_interrupt(void)
|
|||
|
||||
void us_ticker_free(void)
|
||||
{
|
||||
PIT_StopTimer(PIT, kPIT_Chnl_3);
|
||||
PIT_StopTimer(PIT, kPIT_Chnl_2);
|
||||
PIT_StopTimer(PIT, kPIT_Chnl_1);
|
||||
PIT_StopTimer(PIT, kPIT_Chnl_0);
|
||||
|
||||
PIT_DisableInterrupts(PIT, kPIT_Chnl_3, kPIT_TimerInterruptEnable);
|
||||
NVIC_DisableIRQ(PIT3_IRQn);
|
||||
|
||||
us_ticker_inited = false;
|
||||
}
|
||||
|
|
|
@ -70,6 +70,7 @@ void us_ticker_init(void)
|
|||
PIT_StopTimer(PIT, kPIT_Chnl_2);
|
||||
PIT_SetTimerPeriod(PIT, kPIT_Chnl_2, busClock / 1000000 - 1);
|
||||
PIT_SetTimerChainMode(PIT, kPIT_Chnl_3, true);
|
||||
PIT_ClearStatusFlags(PIT, kPIT_Chnl_3, PIT_TFLG_TIF_MASK);
|
||||
NVIC_SetVector(PIT3_IRQn, (uint32_t) pit_isr);
|
||||
NVIC_EnableIRQ(PIT3_IRQn);
|
||||
PIT_DisableInterrupts(PIT, kPIT_Chnl_3, kPIT_TimerInterruptEnable);
|
||||
|
@ -139,5 +140,13 @@ void us_ticker_fire_interrupt(void)
|
|||
|
||||
void us_ticker_free(void)
|
||||
{
|
||||
PIT_StartTimer(PIT, kPIT_Chnl_3);
|
||||
PIT_StartTimer(PIT, kPIT_Chnl_2);
|
||||
PIT_StartTimer(PIT, kPIT_Chnl_1);
|
||||
PIT_StartTimer(PIT, kPIT_Chnl_0);
|
||||
|
||||
PIT_DisableInterrupts(PIT, kPIT_Chnl_3, kPIT_TimerInterruptEnable);
|
||||
NVIC_DisableIRQ(PIT3_IRQn);
|
||||
|
||||
us_ticker_inited = false;
|
||||
}
|
||||
|
|
|
@ -69,6 +69,7 @@ void lp_ticker_init(void)
|
|||
lp_ticker_inited = true;
|
||||
} else {
|
||||
LPTMR_DisableInterrupts(LPTMR0, kLPTMR_TimerInterruptEnable);
|
||||
NVIC_EnableIRQ(LPTMR0_IRQn);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -119,7 +120,8 @@ void lp_ticker_clear_interrupt(void)
|
|||
|
||||
void lp_ticker_free(void)
|
||||
{
|
||||
|
||||
LPTMR_DisableInterrupts(LPTMR0, kLPTMR_TimerInterruptEnable);
|
||||
NVIC_DisableIRQ(LPTMR0_IRQn);
|
||||
}
|
||||
|
||||
#endif /* DEVICE_LPTICKER */
|
||||
|
|
|
@ -180,6 +180,15 @@ void common_rtc_init(void)
|
|||
m_common_rtc_enabled = true;
|
||||
}
|
||||
|
||||
void common_rtc_free()
|
||||
{
|
||||
nrf_rtc_task_trigger(COMMON_RTC_INSTANCE, NRF_RTC_TASK_STOP);
|
||||
nrf_rtc_int_disable(COMMON_RTC_INSTANCE, LP_TICKER_INT_MASK);
|
||||
NVIC_DisableIRQ(nrf_drv_get_IRQn(COMMON_RTC_INSTANCE));
|
||||
|
||||
m_common_rtc_enabled = false;
|
||||
}
|
||||
|
||||
void common_rtc_set_interrupt(uint32_t ticks_count, uint32_t cc_channel,
|
||||
uint32_t int_mask)
|
||||
{
|
||||
|
|
|
@ -36,8 +36,7 @@ void lp_ticker_init(void)
|
|||
|
||||
void lp_ticker_free(void)
|
||||
{
|
||||
// A common counter is used for RTC, lp_ticker and us_ticker, so it can't be
|
||||
// disabled here, but this does not cause any extra cost.
|
||||
common_rtc_free();
|
||||
}
|
||||
|
||||
uint32_t lp_ticker_read()
|
||||
|
|
|
@ -140,8 +140,7 @@ void us_ticker_clear_interrupt(void)
|
|||
void us_ticker_free(void)
|
||||
{
|
||||
nrf_timer_task_trigger(NRF_TIMER1, NRF_TIMER_TASK_STOP);
|
||||
|
||||
nrf_timer_int_disable(NRF_TIMER1, nrf_timer_compare_int_get(NRF_TIMER_CC_CHANNEL0));
|
||||
|
||||
NVIC_DisableIRQ(TIMER1_IRQn);
|
||||
us_ticker_initialized = false;
|
||||
}
|
||||
|
|
|
@ -80,5 +80,8 @@ void us_ticker_clear_interrupt(void) {
|
|||
|
||||
void us_ticker_free(void)
|
||||
{
|
||||
US_TICKER_TIMER->TCR = 0;
|
||||
|
||||
US_TICKER_TIMER->MCR &= ~1;
|
||||
NVIC_DisableIRQ(US_TICKER_TIMER_IRQn);
|
||||
}
|
||||
|
|
|
@ -100,5 +100,8 @@ void us_ticker_fire_interrupt(void)
|
|||
|
||||
void us_ticker_free(void)
|
||||
{
|
||||
|
||||
CTIMER_StopTimer(CTIMER1);
|
||||
CTIMER1->MCR &= ~1;
|
||||
NVIC_DisableIRQ(CTIMER1_IRQn);
|
||||
us_ticker_inited = false;
|
||||
}
|
||||
|
|
|
@ -122,5 +122,5 @@ void us_ticker_clear_interrupt(void)
|
|||
|
||||
void us_ticker_free(void)
|
||||
{
|
||||
|
||||
HalTimerOp.HalTimerDis((u32)TimerAdapter.TimerId);
|
||||
}
|
||||
|
|
|
@ -231,7 +231,7 @@ void lp_ticker_clear_interrupt(void)
|
|||
|
||||
void lp_ticker_free(void)
|
||||
{
|
||||
|
||||
lp_ticker_disable_interrupt();
|
||||
}
|
||||
|
||||
/*****************************************************************/
|
||||
|
@ -278,12 +278,12 @@ void lp_ticker_disable_interrupt(void)
|
|||
|
||||
void lp_ticker_clear_interrupt(void)
|
||||
{
|
||||
NVIC_DisableIRQ(RTC_WKUP_IRQn);
|
||||
lp_ticker_disable_interrupt();
|
||||
}
|
||||
|
||||
void lp_ticker_free(void)
|
||||
{
|
||||
|
||||
lp_ticker_disable_interrupt();
|
||||
}
|
||||
|
||||
#endif /* MBED_CONF_TARGET_LPTICKER_LPTIM */
|
||||
|
|
|
@ -206,6 +206,7 @@ void us_ticker_init(void)
|
|||
{
|
||||
// Timer is already initialized in HAL_InitTick()
|
||||
__HAL_TIM_DISABLE_IT(&TimMasterHandle, TIM_IT_CC1);
|
||||
HAL_TIM_OC_Start(&TimMasterHandle, TIM_CHANNEL_1);
|
||||
}
|
||||
|
||||
uint32_t us_ticker_read()
|
||||
|
@ -259,6 +260,7 @@ void restore_timer_ctx(void)
|
|||
|
||||
void us_ticker_free(void)
|
||||
{
|
||||
|
||||
HAL_TIM_OC_Stop(&TimMasterHandle, TIM_CHANNEL_1);
|
||||
us_ticker_disable_interrupt();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue