[rtems commit] arm: Honor cache for Cortex-M7 support
Sebastian Huber
sebh at rtems.org
Fri Jan 15 13:24:13 UTC 2016
Module: rtems
Branch: master
Commit: 819a6b35cc7ad4b3bc542e738c0933d55a132ccf
Changeset: http://git.rtems.org/rtems/commit/?id=819a6b35cc7ad4b3bc542e738c0933d55a132ccf
Author: Sebastian Huber <sebastian.huber at embedded-brains.de>
Date: Thu Jan 14 08:07:06 2016 +0100
arm: Honor cache for Cortex-M7 support
---
cpukit/score/cpu/arm/armv7m-exception-handler-set.c | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/cpukit/score/cpu/arm/armv7m-exception-handler-set.c b/cpukit/score/cpu/arm/armv7m-exception-handler-set.c
index d76dfa8..2718f80 100644
--- a/cpukit/score/cpu/arm/armv7m-exception-handler-set.c
+++ b/cpukit/score/cpu/arm/armv7m-exception-handler-set.c
@@ -5,10 +5,10 @@
*/
/*
- * Copyright (c) 2011 Sebastian Huber. All rights reserved.
+ * Copyright (c) 2011, 2016 Sebastian Huber. All rights reserved.
*
* embedded brains GmbH
- * Obere Lagerstr. 30
+ * Dornierstr. 4
* 82178 Puchheim
* Germany
* <rtems at embedded-brains.de>
@@ -23,6 +23,7 @@
#endif
#include <rtems/score/armv7m.h>
+#include <rtems/rtems/cache.h>
#ifdef ARM_MULTILIB_ARCH_V7M
@@ -33,6 +34,14 @@ void _ARMV7M_Set_exception_handler(
{
if ( _ARMV7M_SCB->vtor [index] != handler ) {
_ARMV7M_SCB->vtor [index] = handler;
+ rtems_cache_flush_multiple_data_lines(
+ &_ARMV7M_SCB->vtor [index],
+ sizeof(_ARMV7M_SCB->vtor [index])
+ );
+ rtems_cache_invalidate_multiple_instruction_lines(
+ &_ARMV7M_SCB->vtor [index],
+ sizeof(_ARMV7M_SCB->vtor [index])
+ );
}
}
More information about the vc
mailing list