From b2bd02f3df7e59ea4e8618f3bcdb14cf860e797b Mon Sep 17 00:00:00 2001 From: edolomb Date: Fri, 11 Aug 2017 13:54:22 +0000 Subject: Added macros Enabled/Disabled write protection git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@10398 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/hal/ports/SAMA/SAMA5D2x/aic.c | 12 ++++++------ os/hal/ports/SAMA/SAMA5D2x/aic.h | 18 ++++++++++++++++++ 2 files changed, 24 insertions(+), 6 deletions(-) (limited to 'os') diff --git a/os/hal/ports/SAMA/SAMA5D2x/aic.c b/os/hal/ports/SAMA/SAMA5D2x/aic.c index 5be032cf0..311324a10 100644 --- a/os/hal/ports/SAMA/SAMA5D2x/aic.c +++ b/os/hal/ports/SAMA/SAMA5D2x/aic.c @@ -83,7 +83,7 @@ void aicConfigureInt(uint32_t source, uint8_t prior) { Aic *aic = SAIC; /* Disable write protection */ - aic->AIC_WPMR = AIC_WPMR_WPKEY_PASSWD; + aicDisableWP(aic); /* Set source id */ aic->AIC_SSR = source; /* Disable the interrupt first */ @@ -93,7 +93,7 @@ void aicConfigureInt(uint32_t source, uint8_t prior) { /* Clear interrupt */ aic->AIC_ICCR = AIC_ICCR_INTCLR; /* Enable write protection */ - aic->AIC_WPMR = AIC_WPMR_WPKEY_PASSWD | AIC_WPMR_WPEN; + aicEnableWP(aic); } /** @@ -107,12 +107,12 @@ void aicSetSourceVector(uint32_t source, bool (*handler)(void)) { Aic *aic = SAIC; /* Disable write protection */ - aic->AIC_WPMR = AIC_WPMR_WPKEY_PASSWD; + aicDisableWP(aic); /* Select source and assign handler */ aic->AIC_SSR = AIC_SSR_INTSEL(source); aic->AIC_SVR = (uint32_t)handler; /* Enable write protection */ - aic->AIC_WPMR = AIC_WPMR_WPKEY_PASSWD | AIC_WPMR_WPEN; + aicEnableWP(aic); } /** @@ -125,11 +125,11 @@ void aicSetSpuriousVector(bool (*handler)(void)) { Aic *aic = SAIC; /* Disable write protection */ - aic->AIC_WPMR = AIC_WPMR_WPKEY_PASSWD; + aicDisableWP(aic); /* Assign handler */ aic->AIC_SPU = (uint32_t)handler; /* Enable write protection */ - aic->AIC_WPMR = AIC_WPMR_WPKEY_PASSWD | AIC_WPMR_WPEN; + aicEnableWP(aic); } /** diff --git a/os/hal/ports/SAMA/SAMA5D2x/aic.h b/os/hal/ports/SAMA/SAMA5D2x/aic.h index 8ee0fa8f7..efecaf6bb 100644 --- a/os/hal/ports/SAMA/SAMA5D2x/aic.h +++ b/os/hal/ports/SAMA/SAMA5D2x/aic.h @@ -44,7 +44,25 @@ /*===========================================================================*/ /* Driver macros. */ /*===========================================================================*/ +/** + * @brief Enable write protection on AIC registers block. + * + * @param[in] aicx pointer to a AIC register block + * @api + */ +#define aicEnableWP(aic) { \ + aic->AIC_WPMR = AIC_WPMR_WPKEY_PASSWD | AIC_WPMR_WPEN; \ +} +/** + * @brief Disable write protection on AIC registers block. + * + * @param[in] aicx pointer to a AIC register block + * @api + */ +#define aicDisableWP(aic) { \ + aic->AIC_WPMR = AIC_WPMR_WPKEY_PASSWD; \ +} /*===========================================================================*/ /* External declarations. */ /*===========================================================================*/ -- cgit v1.2.3