git-svn-id: svn://svn.code.sf.net/p/chibios/svn/branches/kernel_3_dev@6105 35acf78f-673a-0410-8e92-d51de3d6d3f4

This commit is contained in:
gdisirio 2013-08-08 12:38:43 +00:00
parent 0ef4a97438
commit 9728e44141
4 changed files with 20 additions and 28 deletions

View File

@ -41,7 +41,7 @@
* setting also defines the system tick time unit.
*/
#if !defined(CH_CFG_ST_FREQUENCY) || defined(__DOXYGEN__)
#define CH_CFG_ST_FREQUENCY 1000
#define CH_CFG_ST_FREQUENCY 10000
#endif
/**
@ -62,7 +62,7 @@
* this value.
*/
#if !defined(CH_CFG_TIMEDELTA) || defined(__DOXYGEN__)
#define CH_CFG_TIMEDELTA 0
#define CH_CFG_TIMEDELTA 2
#endif
/**

View File

@ -104,8 +104,19 @@ void st_lld_init(void) {
#if OSAL_ST_MODE == OSAL_ST_MODE_FREERUNNING
/* Free running counter mode.*/
rccEnableTIM2(FALSE);
/* Initializing the counter in free running mode.*/
STM32_TIM2->PSC = STM32_TIMCLK2 / OSAL_SYSTICK_FREQUENCY - 1;
STM32_TIM2->ARR = 0xFFFFFFFF;
STM32_TIM2->CCMR1 = 0;
STM32_TIM2->CCR[0] = 0;
STM32_TIM2->DIER = 0;
STM32_TIM2->CR2 = 0;
STM32_TIM2->EGR = TIM_EGR_UG;
STM32_TIM2->CR1 = TIM_CR1_CEN;
/* IRQ enabled.*/
nvicEnableVector(STM32_TIM2_NUMBER, ST_TIMER_PRIORITY);
STM32_TIM2->PSC = STM32_TIMCLK2 / OSAL_SYSTICK_FREQUENCY - 1;
#endif
#if OSAL_ST_MODE == OSAL_ST_MODE_PERIODIC
@ -117,6 +128,7 @@ void st_lld_init(void) {
SysTick_CTRL_ENABLE_Msk |
SysTick_CTRL_TICKINT_Msk;
/* IRQ enabled.*/
nvicSetSystemHandlerPriority(SysTick_IRQn, ST_TIMER_PRIORITY);
#endif
}

View File

@ -429,14 +429,10 @@ static inline void port_init(void) {
DWT->CTRL |= DWT_CTRL_CYCCNTENA_Msk;
/* Initialization of the system vectors used by the port.*/
#if !CORTEX_SIMPLIFIED_PRIORITY
NVIC_SetPriority(SVCall_IRQn, CORTEX_PRIORITY_SVCALL);
NVIC_SetPriority(PendSV_IRQn, CORTEX_PRIORITY_PENDSV);
#if CH_CFG_TIMEDELTA > 0
/* TODO: Remove initialization, all the timers handling has to be performed
outside the port layer.*/
port_timer_init();
#endif
NVIC_SetPriority(PendSV_IRQn, CORTEX_PRIORITY_PENDSV);
}
/**

View File

@ -26,8 +26,8 @@
* @{
*/
#ifndef _CHTIMER_H_
#define _CHTIMER_H_
#ifndef _SYSTICK_H_
#define _SYSTICK_H_
/*===========================================================================*/
/* Module constants. */
@ -57,22 +57,6 @@
/* Module inline functions. */
/*===========================================================================*/
/**
* @brief Timer unit initialization.
*
* @notapi
*/
static inline void port_timer_init(void) {
TIM2->ARR = 0xFFFFFFFF;
TIM2->CCMR1 = 0;
TIM2->CCR1 = 0;
TIM2->DIER = 0;
TIM2->CR2 = 0;
TIM2->EGR = TIM_EGR_UG;
TIM2->CR1 = TIM_CR1_CEN;
}
/**
* @brief Returns the system time.
*
@ -151,6 +135,6 @@ static inline systime_t port_timer_get_alarm(void) {
return TIM2->CCR1;
}
#endif /* _CHTIMER_H_ */
#endif /* _SYSTICK_H_ */
/** @} */