diff options
author | edolomb <none@example.com> | 2017-08-11 13:54:22 +0000 |
---|---|---|
committer | edolomb <none@example.com> | 2017-08-11 13:54:22 +0000 |
commit | b2bd02f3df7e59ea4e8618f3bcdb14cf860e797b (patch) | |
tree | 48829f982e0eb600b5aead6e7259bbaa71ffbe01 | |
parent | a152d4e54534be7ee3c00d47e656d8cc7e439379 (diff) | |
download | ChibiOS-b2bd02f3df7e59ea4e8618f3bcdb14cf860e797b.tar.gz ChibiOS-b2bd02f3df7e59ea4e8618f3bcdb14cf860e797b.tar.bz2 ChibiOS-b2bd02f3df7e59ea4e8618f3bcdb14cf860e797b.zip |
Added macros Enabled/Disabled write protection
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@10398 35acf78f-673a-0410-8e92-d51de3d6d3f4
-rw-r--r-- | os/hal/ports/SAMA/SAMA5D2x/aic.c | 12 | ||||
-rw-r--r-- | os/hal/ports/SAMA/SAMA5D2x/aic.h | 18 |
2 files changed, 24 insertions, 6 deletions
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. */
/*===========================================================================*/
|