aboutsummaryrefslogtreecommitdiffstats
path: root/os
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2013-04-10 13:48:02 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2013-04-10 13:48:02 +0000
commit411d89eb6b893ddbeb530cb3fc606044776cdaf2 (patch)
tree535b7dd08451900884ad15f84b30fb346bb4d3ee /os
parent2585da7468ef6629ba98bbf857a0a874248656e9 (diff)
downloadChibiOS-411d89eb6b893ddbeb530cb3fc606044776cdaf2.tar.gz
ChibiOS-411d89eb6b893ddbeb530cb3fc606044776cdaf2.tar.bz2
ChibiOS-411d89eb6b893ddbeb530cb3fc606044776cdaf2.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@5584 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os')
-rw-r--r--os/ports/GCC/PPC/ivor.s10
1 files changed, 10 insertions, 0 deletions
diff --git a/os/ports/GCC/PPC/ivor.s b/os/ports/GCC/PPC/ivor.s
index 46dc66bf5..8235af0e5 100644
--- a/os/ports/GCC/PPC/ivor.s
+++ b/os/ports/GCC/PPC/ivor.s
@@ -86,6 +86,11 @@ _IVOR10:
lis %r3, 0x0800 /* DIS bit mask. */
mtspr 336, %r3 /* TSR register. */
+#if PPC_USE_IRQ_PREEMPTION
+ /* Allows preemption while executing the software handler.*/
+ wrteei 1
+#endif
+
#if CH_DBG_SYSTEM_STATE_CHECK
bl dbg_check_enter_isr
bl dbg_check_lock_from_isr
@@ -96,6 +101,11 @@ _IVOR10:
bl dbg_check_leave_isr
#endif
+#if PPC_USE_IRQ_PREEMPTION
+ /* Prevents preemption again.*/
+ wrteei 0
+#endif
+
/* System tick handler invocation.*/
#if CH_DBG_SYSTEM_STATE_CHECK
bl dbg_check_lock