git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@6922 35acf78f-673a-0410-8e92-d51de3d6d3f4
This commit is contained in:
parent
b4ebba0b50
commit
dd4f3da00e
|
@ -52,9 +52,13 @@ SCB_ICSR SET 0xE000ED04
|
|||
|
||||
EXTERN chThdExit
|
||||
EXTERN chSchDoReschedule
|
||||
#if CH_DBG_STATISTICS
|
||||
EXTERN _stats_start_measure_crit_thd
|
||||
EXTERN _stats_stop_measure_crit_thd
|
||||
#endif
|
||||
#if CH_DBG_SYSTEM_STATE_CHECK
|
||||
EXTERN dbg_check_unlock
|
||||
EXTERN dbg_check_lock
|
||||
EXTERN _dbg_check_unlock
|
||||
EXTERN _dbg_check_lock
|
||||
#endif
|
||||
|
||||
THUMB
|
||||
|
@ -88,7 +92,7 @@ _port_switch:
|
|||
PUBLIC _port_thread_start
|
||||
_port_thread_start:
|
||||
#if CH_DBG_SYSTEM_STATE_CHECK
|
||||
bl dbg_check_unlock
|
||||
bl _dbg_check_unlock
|
||||
#endif
|
||||
cpsie i
|
||||
mov r0, r5
|
||||
|
@ -102,12 +106,18 @@ _port_thread_start:
|
|||
PUBLIC _port_switch_from_isr
|
||||
PUBLIC _port_exit_from_isr
|
||||
_port_switch_from_isr:
|
||||
#if CH_DBG_STATISTICS
|
||||
bl _stats_start_measure_crit_thd
|
||||
#endif
|
||||
#if CH_DBG_SYSTEM_STATE_CHECK
|
||||
bl dbg_check_lock
|
||||
bl _dbg_check_lock
|
||||
#endif
|
||||
bl chSchDoReschedule
|
||||
#if CH_DBG_SYSTEM_STATE_CHECK
|
||||
bl dbg_check_unlock
|
||||
bl _dbg_check_unlock
|
||||
#endif
|
||||
#if CH_DBG_STATISTICS
|
||||
bl _stats_stop_measure_crit_thd
|
||||
#endif
|
||||
_port_exit_from_isr:
|
||||
ldr r2, =SCB_ICSR
|
||||
|
|
|
@ -53,9 +53,13 @@ ICSR_PENDSVSET SET 0x10000000
|
|||
|
||||
EXTERN chThdExit
|
||||
EXTERN chSchDoReschedule
|
||||
#if CH_DBG_STATISTICS
|
||||
EXTERN _stats_start_measure_crit_thd
|
||||
EXTERN _stats_stop_measure_crit_thd
|
||||
#endif
|
||||
#if CH_DBG_SYSTEM_STATE_CHECK
|
||||
EXTERN dbg_check_unlock
|
||||
EXTERN dbg_check_lock
|
||||
EXTERN _dbg_check_unlock
|
||||
EXTERN _dbg_check_lock
|
||||
#endif
|
||||
|
||||
THUMB
|
||||
|
@ -83,7 +87,7 @@ _port_switch:
|
|||
PUBLIC _port_thread_start
|
||||
_port_thread_start:
|
||||
#if CH_DBG_SYSTEM_STATE_CHECK
|
||||
bl dbg_check_unlock
|
||||
bl _dbg_check_unlock
|
||||
#endif
|
||||
#if CORTEX_SIMPLIFIED_PRIORITY
|
||||
cpsie i
|
||||
|
@ -102,12 +106,18 @@ _port_thread_start:
|
|||
PUBLIC _port_switch_from_isr
|
||||
PUBLIC _port_exit_from_isr
|
||||
_port_switch_from_isr:
|
||||
#if CH_DBG_STATISTICS
|
||||
bl _stats_start_measure_crit_thd
|
||||
#endif
|
||||
#if CH_DBG_SYSTEM_STATE_CHECK
|
||||
bl dbg_check_lock
|
||||
bl _dbg_check_lock
|
||||
#endif
|
||||
bl chSchDoReschedule
|
||||
#if CH_DBG_SYSTEM_STATE_CHECK
|
||||
bl dbg_check_unlock
|
||||
bl _dbg_check_unlock
|
||||
#endif
|
||||
#if CH_DBG_STATISTICS
|
||||
bl _stats_stop_measure_crit_thd
|
||||
#endif
|
||||
_port_exit_from_isr:
|
||||
#if CORTEX_SIMPLIFIED_PRIORITY
|
||||
|
@ -116,10 +126,10 @@ _port_exit_from_isr:
|
|||
mov r2, #ICSR_PENDSVSET
|
||||
str r2, [r3]
|
||||
cpsie i
|
||||
.L3: b .L3
|
||||
#else
|
||||
svc #0
|
||||
#endif
|
||||
.L3: b .L3
|
||||
|
||||
END
|
||||
|
||||
|
|
|
@ -49,9 +49,13 @@ SCB_ICSR EQU 0xE000ED04
|
|||
|
||||
IMPORT chThdExit
|
||||
IMPORT chSchDoReschedule
|
||||
#if CH_DBG_STATISTICS
|
||||
IMPORT _stats_start_measure_crit_thd
|
||||
IMPORT _stats_stop_measure_crit_thd
|
||||
#endif
|
||||
#if CH_DBG_SYSTEM_STATE_CHECK
|
||||
IMPORT dbg_check_unlock
|
||||
IMPORT dbg_check_lock
|
||||
IMPORT _dbg_check_unlock
|
||||
IMPORT _dbg_check_lock
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
@ -84,7 +88,7 @@ _port_switch PROC
|
|||
EXPORT _port_thread_start
|
||||
_port_thread_start PROC
|
||||
#if CH_DBG_SYSTEM_STATE_CHECK
|
||||
bl dbg_check_unlock
|
||||
bl _dbg_check_unlock
|
||||
#endif
|
||||
cpsie i
|
||||
mov r0, r5
|
||||
|
@ -99,12 +103,18 @@ _port_thread_start PROC
|
|||
EXPORT _port_switch_from_isr
|
||||
EXPORT _port_exit_from_isr
|
||||
_port_switch_from_isr PROC
|
||||
#if CH_DBG_STATISTICS
|
||||
bl _stats_start_measure_crit_thd
|
||||
#endif
|
||||
#if CH_DBG_SYSTEM_STATE_CHECK
|
||||
bl dbg_check_lock
|
||||
bl _dbg_check_lock
|
||||
#endif
|
||||
bl chSchDoReschedule
|
||||
#if CH_DBG_SYSTEM_STATE_CHECK
|
||||
bl dbg_check_unlock
|
||||
bl _dbg_check_unlock
|
||||
#endif
|
||||
#if CH_DBG_STATISTICS
|
||||
bl _stats_stop_measure_crit_thd
|
||||
#endif
|
||||
_port_exit_from_isr
|
||||
ldr r2, =SCB_ICSR
|
||||
|
|
|
@ -50,9 +50,13 @@ ICSR_PENDSVSET EQU 0x10000000
|
|||
|
||||
IMPORT chThdExit
|
||||
IMPORT chSchDoReschedule
|
||||
#if CH_DBG_STATISTICS
|
||||
IMPORT _stats_start_measure_crit_thd
|
||||
IMPORT _stats_stop_measure_crit_thd
|
||||
#endif
|
||||
#if CH_DBG_SYSTEM_STATE_CHECK
|
||||
IMPORT dbg_check_unlock
|
||||
IMPORT dbg_check_lock
|
||||
IMPORT _dbg_check_unlock
|
||||
IMPORT _dbg_check_lock
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
@ -79,7 +83,7 @@ _port_switch PROC
|
|||
EXPORT _port_thread_start
|
||||
_port_thread_start PROC
|
||||
#if CH_DBG_SYSTEM_STATE_CHECK
|
||||
bl dbg_check_unlock
|
||||
bl _dbg_check_unlock
|
||||
#endif
|
||||
#if CORTEX_SIMPLIFIED_PRIORITY
|
||||
cpsie i
|
||||
|
@ -99,12 +103,18 @@ _port_thread_start PROC
|
|||
EXPORT _port_switch_from_isr
|
||||
EXPORT _port_exit_from_isr
|
||||
_port_switch_from_isr PROC
|
||||
#if CH_DBG_STATISTICS
|
||||
bl _stats_start_measure_crit_thd
|
||||
#endif
|
||||
#if CH_DBG_SYSTEM_STATE_CHECK
|
||||
bl dbg_check_lock
|
||||
bl _dbg_check_lock
|
||||
#endif
|
||||
bl chSchDoReschedule
|
||||
#if CH_DBG_SYSTEM_STATE_CHECK
|
||||
bl dbg_check_unlock
|
||||
bl _dbg_check_unlock
|
||||
#endif
|
||||
#if CH_DBG_STATISTICS
|
||||
bl _stats_stop_measure_crit_thd
|
||||
#endif
|
||||
_port_exit_from_isr
|
||||
#if CORTEX_SIMPLIFIED_PRIORITY
|
||||
|
@ -113,10 +123,10 @@ _port_exit_from_isr
|
|||
mov r2, #ICSR_PENDSVSET
|
||||
str r2, [r3, #0]
|
||||
cpsie i
|
||||
waithere b waithere
|
||||
#else
|
||||
svc #0
|
||||
#endif
|
||||
waithere b waithere
|
||||
ENDP
|
||||
|
||||
END
|
||||
|
|
|
@ -105,14 +105,14 @@ _IVOR10:
|
|||
#endif
|
||||
|
||||
#if CH_DBG_SYSTEM_STATE_CHECK
|
||||
bl dbg_check_enter_isr
|
||||
bl dbg_check_lock_from_isr
|
||||
bl _dbg_check_enter_isr
|
||||
bl _dbg_check_lock_from_isr
|
||||
#endif
|
||||
/* System tick handler invocation.*/
|
||||
bl chSysTimerHandlerI
|
||||
#if CH_DBG_SYSTEM_STATE_CHECK
|
||||
bl dbg_check_unlock_from_isr
|
||||
bl dbg_check_leave_isr
|
||||
bl _dbg_check_unlock_from_isr
|
||||
bl _dbg_check_leave_isr
|
||||
#endif
|
||||
|
||||
#if PPC_USE_IRQ_PREEMPTION
|
||||
|
@ -202,8 +202,11 @@ _ivor_exit:
|
|||
eaddi %r0, %r0, -1
|
||||
mtspr 272, %r0
|
||||
|
||||
#if CH_DBG_STATISTICS
|
||||
bl _stats_start_measure_crit_thd
|
||||
#endif
|
||||
#if CH_DBG_SYSTEM_STATE_CHECK
|
||||
bl dbg_check_lock
|
||||
bl _dbg_check_lock
|
||||
#endif
|
||||
bl chSchIsPreemptionRequired
|
||||
cmpli cr0, %r3, 0
|
||||
|
@ -211,7 +214,10 @@ _ivor_exit:
|
|||
bl chSchDoReschedule
|
||||
.noresch:
|
||||
#if CH_DBG_SYSTEM_STATE_CHECK
|
||||
bl dbg_check_unlock
|
||||
bl _dbg_check_unlock
|
||||
#endif
|
||||
#if CH_DBG_STATISTICS
|
||||
bl _stats_stop_measure_crit_thd
|
||||
#endif
|
||||
|
||||
/* Restoring the external context.*/
|
||||
|
|
Loading…
Reference in New Issue