Efficiency changes.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@12436 110e8d01-0319-4d1e-a829-52ad28d1bb01
This commit is contained in:
parent
118309d74b
commit
e9fbae0881
|
@ -33,15 +33,6 @@
|
||||||
/* Driver local definitions. */
|
/* Driver local definitions. */
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
|
|
||||||
/* Handling differences in ST headers.*/
|
|
||||||
#if !defined(STM32L4XX) && !defined(STM32L4XXP)
|
|
||||||
#define EMR1 EMR
|
|
||||||
#define IMR1 IMR
|
|
||||||
#define PR1 PR
|
|
||||||
#define RTSR1 RTSR
|
|
||||||
#define FTSR1 FTSR
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
/* Driver exported variables. */
|
/* Driver exported variables. */
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
|
@ -186,38 +177,6 @@ void extiEnableLine(extiline_t line, extimode_t mode) {
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief STM32 EXTI group 1 IRQ status clearing.
|
|
||||||
*
|
|
||||||
* @param[in] mask mask of group 1 lines to be initialized
|
|
||||||
*
|
|
||||||
* @api
|
|
||||||
*/
|
|
||||||
void extiClearGroup1(uint32_t mask) {
|
|
||||||
|
|
||||||
/* Masked out lines must not be touched by this driver.*/
|
|
||||||
osalDbgAssert((mask & STM32_EXTI_IMR1_MASK) == 0U, "fixed line");
|
|
||||||
|
|
||||||
EXTI->PR1 = mask;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if (STM32_EXTI_NUM_LINES > 32) || defined(__DOXYGEN__)
|
|
||||||
/**
|
|
||||||
* @brief STM32 EXTI group 2 IRQ status clearing.
|
|
||||||
*
|
|
||||||
* @param[in] mask mask of group 2 lines to be initialized
|
|
||||||
*
|
|
||||||
* @api
|
|
||||||
*/
|
|
||||||
void extiClearGroup2(uint32_t mask) {
|
|
||||||
|
|
||||||
/* Masked out lines must not be touched by this driver.*/
|
|
||||||
osalDbgAssert((mask & STM32_EXTI_IMR2_MASK) == 0U, "fixed line");
|
|
||||||
|
|
||||||
EXTI->PR2 = mask;
|
|
||||||
}
|
|
||||||
#endif /* STM32_EXTI_NUM_LINES > 32 */
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief STM32 EXTI line IRQ status clearing.
|
* @brief STM32 EXTI line IRQ status clearing.
|
||||||
*
|
*
|
||||||
|
|
|
@ -44,6 +44,15 @@
|
||||||
#define EXTI_MODE_ACTION_EVENT 4U /**< @brief Event mode. */
|
#define EXTI_MODE_ACTION_EVENT 4U /**< @brief Event mode. */
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
||||||
|
/* Handling differences in ST headers.*/
|
||||||
|
#if !defined(STM32L4XX) && !defined(STM32L4XXP)
|
||||||
|
#define EMR1 EMR
|
||||||
|
#define IMR1 IMR
|
||||||
|
#define PR1 PR
|
||||||
|
#define RTSR1 RTSR
|
||||||
|
#define FTSR1 FTSR
|
||||||
|
#endif
|
||||||
|
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
/* Driver pre-compile time settings. */
|
/* Driver pre-compile time settings. */
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
|
@ -102,6 +111,32 @@ typedef uint32_t extimode_t;
|
||||||
*/
|
*/
|
||||||
#define EXTI_MASK2(line) (uint32_t)(1U << ((line) - 32U))
|
#define EXTI_MASK2(line) (uint32_t)(1U << ((line) - 32U))
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief STM32 EXTI group 1 IRQ status clearing.
|
||||||
|
*
|
||||||
|
* @param[in] mask mask of group 1 lines to be initialized
|
||||||
|
*
|
||||||
|
* @api
|
||||||
|
*/
|
||||||
|
#define extiClearGroup1(mask) do { \
|
||||||
|
osalDbgAssert(((mask) & STM32_EXTI_IMR1_MASK) == 0U, "fixed lines"); \
|
||||||
|
EXTI->PR1 = (uint32_t)(mask); \
|
||||||
|
} while (false)
|
||||||
|
|
||||||
|
#if (STM32_EXTI_NUM_LINES > 32) || defined(__DOXYGEN__)
|
||||||
|
/**
|
||||||
|
* @brief STM32 EXTI group 2 IRQ status clearing.
|
||||||
|
*
|
||||||
|
* @param[in] mask mask of group 2 lines to be initialized
|
||||||
|
*
|
||||||
|
* @api
|
||||||
|
*/
|
||||||
|
#define extiClearGroup2(mask) do { \
|
||||||
|
osalDbgAssert(((mask) & STM32_EXTI_IMR2_MASK) == 0U, "fixed lines"); \
|
||||||
|
EXTI->PR2 = (uint32_t)(mask); \
|
||||||
|
} while (false)
|
||||||
|
#endif /* STM32_EXTI_NUM_LINES > 32 */
|
||||||
|
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
/* External declarations. */
|
/* External declarations. */
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
|
@ -110,10 +145,8 @@ typedef uint32_t extimode_t;
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
void extiEnableGroup1(uint32_t mask, extimode_t mode);
|
void extiEnableGroup1(uint32_t mask, extimode_t mode);
|
||||||
void extiClearGroup1(uint32_t mask);
|
|
||||||
#if (STM32_EXTI_NUM_LINES > 32) || defined(__DOXYGEN__)
|
#if (STM32_EXTI_NUM_LINES > 32) || defined(__DOXYGEN__)
|
||||||
void extiEnableGroup2(uint32_t mask, extimode_t mode);
|
void extiEnableGroup2(uint32_t mask, extimode_t mode);
|
||||||
void extiClearGroup2(uint32_t mask);
|
|
||||||
#endif /* STM32_EXTI_NUM_LINES > 32 */
|
#endif /* STM32_EXTI_NUM_LINES > 32 */
|
||||||
void extiEnableLine(extiline_t line, extimode_t mode);
|
void extiEnableLine(extiline_t line, extimode_t mode);
|
||||||
void extiClearLine(extiline_t line);
|
void extiClearLine(extiline_t line);
|
||||||
|
|
Loading…
Reference in New Issue