summaryrefslogtreecommitdiff
path: root/FreeRTOS/Source/portable
diff options
context:
space:
mode:
Diffstat (limited to 'FreeRTOS/Source/portable')
-rw-r--r--FreeRTOS/Source/portable/GCC/MicroBlazeV8/portasm.S10
-rw-r--r--FreeRTOS/Source/portable/GCC/MicroBlazeV8/portmacro.h6
2 files changed, 8 insertions, 8 deletions
diff --git a/FreeRTOS/Source/portable/GCC/MicroBlazeV8/portasm.S b/FreeRTOS/Source/portable/GCC/MicroBlazeV8/portasm.S
index 5be5fde3c..8d3020048 100644
--- a/FreeRTOS/Source/portable/GCC/MicroBlazeV8/portasm.S
+++ b/FreeRTOS/Source/portable/GCC/MicroBlazeV8/portasm.S
@@ -292,7 +292,7 @@ back into the caller stack. */
returned to last left the Running state by calling taskYIELD() (rather than
being preempted by an interrupt). */
.text
- .align 2
+ .align 4
exit_from_yield:
/* r18 was being used as a temporary. Now restore its true value from the
@@ -308,7 +308,7 @@ exit_from_yield:
.text
- .align 2
+ .align 4
_interrupt_handler:
portSAVE_CONTEXT
@@ -350,7 +350,7 @@ task_switch_not_requested:
.text
- .align 2
+ .align 4
VPortYieldASM:
portSAVE_CONTEXT
@@ -371,7 +371,7 @@ VPortYieldASM:
portRESTORE_CONTEXT
.text
- .align 2
+ .align 4
vPortStartFirstTask:
portRESTORE_CONTEXT
@@ -381,7 +381,7 @@ vPortStartFirstTask:
#if MICROBLAZE_EXCEPTIONS_ENABLED == 1
.text
- .align 2
+ .align 4
vPortExceptionHandlerEntry:
/* Take a copy of the stack pointer before vPortExecptionHandler is called,
diff --git a/FreeRTOS/Source/portable/GCC/MicroBlazeV8/portmacro.h b/FreeRTOS/Source/portable/GCC/MicroBlazeV8/portmacro.h
index 557c3f08d..0f4d1ede2 100644
--- a/FreeRTOS/Source/portable/GCC/MicroBlazeV8/portmacro.h
+++ b/FreeRTOS/Source/portable/GCC/MicroBlazeV8/portmacro.h
@@ -143,7 +143,7 @@ typedef unsigned long UBaseType_t;
/* Interrupt control macros and functions. */
void microblaze_disable_interrupts( void );
void microblaze_enable_interrupts( void );
-#define portDISABLE_INTERRUPTS() microblaze_disable_interrupts()
+#define portDISABLE_INTERRUPTS() microblaze_disable_interrupts(); __asm volatile( "mbar 1" ); __asm volatile( "mbar 2" )
#define portENABLE_INTERRUPTS() microblaze_enable_interrupts()
/*-----------------------------------------------------------*/
@@ -152,8 +152,8 @@ void microblaze_enable_interrupts( void );
void vPortEnterCritical( void );
void vPortExitCritical( void );
#define portENTER_CRITICAL() { \
- extern volatile UBaseType_t uxCriticalNesting; \
- microblaze_disable_interrupts(); \
+ extern volatile UBaseType_t uxCriticalNesting; \
+ portDISABLE_INTERRUPTS(); \
uxCriticalNesting++; \
}