diff options
Diffstat (limited to 'FreeRTOS/Source/portable')
-rw-r--r-- | FreeRTOS/Source/portable/GCC/MicroBlazeV8/portasm.S | 10 | ||||
-rw-r--r-- | FreeRTOS/Source/portable/GCC/MicroBlazeV8/portmacro.h | 6 |
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++; \
}
|