aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal/ports
diff options
context:
space:
mode:
authoredolomb <none@example.com>2017-08-11 13:54:22 +0000
committeredolomb <none@example.com>2017-08-11 13:54:22 +0000
commitb2bd02f3df7e59ea4e8618f3bcdb14cf860e797b (patch)
tree48829f982e0eb600b5aead6e7259bbaa71ffbe01 /os/hal/ports
parenta152d4e54534be7ee3c00d47e656d8cc7e439379 (diff)
downloadChibiOS-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
Diffstat (limited to 'os/hal/ports')
-rw-r--r--os/hal/ports/SAMA/SAMA5D2x/aic.c12
-rw-r--r--os/hal/ports/SAMA/SAMA5D2x/aic.h18
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. */
/*===========================================================================*/