git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@6922 35acf78f-673a-0410-8e92-d51de3d6d3f4

This commit is contained in:
gdisirio 2014-05-07 14:38:02 +00:00
parent b4ebba0b50
commit dd4f3da00e
5 changed files with 148 additions and 102 deletions

View File

@ -52,9 +52,13 @@ SCB_ICSR SET 0xE000ED04
EXTERN chThdExit EXTERN chThdExit
EXTERN chSchDoReschedule 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 #if CH_DBG_SYSTEM_STATE_CHECK
EXTERN dbg_check_unlock EXTERN _dbg_check_unlock
EXTERN dbg_check_lock EXTERN _dbg_check_lock
#endif #endif
THUMB THUMB
@ -88,7 +92,7 @@ _port_switch:
PUBLIC _port_thread_start PUBLIC _port_thread_start
_port_thread_start: _port_thread_start:
#if CH_DBG_SYSTEM_STATE_CHECK #if CH_DBG_SYSTEM_STATE_CHECK
bl dbg_check_unlock bl _dbg_check_unlock
#endif #endif
cpsie i cpsie i
mov r0, r5 mov r0, r5
@ -102,12 +106,18 @@ _port_thread_start:
PUBLIC _port_switch_from_isr PUBLIC _port_switch_from_isr
PUBLIC _port_exit_from_isr PUBLIC _port_exit_from_isr
_port_switch_from_isr: _port_switch_from_isr:
#if CH_DBG_STATISTICS
bl _stats_start_measure_crit_thd
#endif
#if CH_DBG_SYSTEM_STATE_CHECK #if CH_DBG_SYSTEM_STATE_CHECK
bl dbg_check_lock bl _dbg_check_lock
#endif #endif
bl chSchDoReschedule bl chSchDoReschedule
#if CH_DBG_SYSTEM_STATE_CHECK #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 #endif
_port_exit_from_isr: _port_exit_from_isr:
ldr r2, =SCB_ICSR ldr r2, =SCB_ICSR

View File

@ -53,9 +53,13 @@ ICSR_PENDSVSET SET 0x10000000
EXTERN chThdExit EXTERN chThdExit
EXTERN chSchDoReschedule 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 #if CH_DBG_SYSTEM_STATE_CHECK
EXTERN dbg_check_unlock EXTERN _dbg_check_unlock
EXTERN dbg_check_lock EXTERN _dbg_check_lock
#endif #endif
THUMB THUMB
@ -83,7 +87,7 @@ _port_switch:
PUBLIC _port_thread_start PUBLIC _port_thread_start
_port_thread_start: _port_thread_start:
#if CH_DBG_SYSTEM_STATE_CHECK #if CH_DBG_SYSTEM_STATE_CHECK
bl dbg_check_unlock bl _dbg_check_unlock
#endif #endif
#if CORTEX_SIMPLIFIED_PRIORITY #if CORTEX_SIMPLIFIED_PRIORITY
cpsie i cpsie i
@ -102,12 +106,18 @@ _port_thread_start:
PUBLIC _port_switch_from_isr PUBLIC _port_switch_from_isr
PUBLIC _port_exit_from_isr PUBLIC _port_exit_from_isr
_port_switch_from_isr: _port_switch_from_isr:
#if CH_DBG_STATISTICS
bl _stats_start_measure_crit_thd
#endif
#if CH_DBG_SYSTEM_STATE_CHECK #if CH_DBG_SYSTEM_STATE_CHECK
bl dbg_check_lock bl _dbg_check_lock
#endif #endif
bl chSchDoReschedule bl chSchDoReschedule
#if CH_DBG_SYSTEM_STATE_CHECK #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 #endif
_port_exit_from_isr: _port_exit_from_isr:
#if CORTEX_SIMPLIFIED_PRIORITY #if CORTEX_SIMPLIFIED_PRIORITY
@ -116,10 +126,10 @@ _port_exit_from_isr:
mov r2, #ICSR_PENDSVSET mov r2, #ICSR_PENDSVSET
str r2, [r3] str r2, [r3]
cpsie i cpsie i
.L3: b .L3
#else #else
svc #0 svc #0
#endif #endif
.L3: b .L3
END END

View File

@ -49,9 +49,13 @@ SCB_ICSR EQU 0xE000ED04
IMPORT chThdExit IMPORT chThdExit
IMPORT chSchDoReschedule 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 #if CH_DBG_SYSTEM_STATE_CHECK
IMPORT dbg_check_unlock IMPORT _dbg_check_unlock
IMPORT dbg_check_lock IMPORT _dbg_check_lock
#endif #endif
/* /*
@ -84,7 +88,7 @@ _port_switch PROC
EXPORT _port_thread_start EXPORT _port_thread_start
_port_thread_start PROC _port_thread_start PROC
#if CH_DBG_SYSTEM_STATE_CHECK #if CH_DBG_SYSTEM_STATE_CHECK
bl dbg_check_unlock bl _dbg_check_unlock
#endif #endif
cpsie i cpsie i
mov r0, r5 mov r0, r5
@ -99,12 +103,18 @@ _port_thread_start PROC
EXPORT _port_switch_from_isr EXPORT _port_switch_from_isr
EXPORT _port_exit_from_isr EXPORT _port_exit_from_isr
_port_switch_from_isr PROC _port_switch_from_isr PROC
#if CH_DBG_STATISTICS
bl _stats_start_measure_crit_thd
#endif
#if CH_DBG_SYSTEM_STATE_CHECK #if CH_DBG_SYSTEM_STATE_CHECK
bl dbg_check_lock bl _dbg_check_lock
#endif #endif
bl chSchDoReschedule bl chSchDoReschedule
#if CH_DBG_SYSTEM_STATE_CHECK #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 #endif
_port_exit_from_isr _port_exit_from_isr
ldr r2, =SCB_ICSR ldr r2, =SCB_ICSR

View File

@ -50,9 +50,13 @@ ICSR_PENDSVSET EQU 0x10000000
IMPORT chThdExit IMPORT chThdExit
IMPORT chSchDoReschedule 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 #if CH_DBG_SYSTEM_STATE_CHECK
IMPORT dbg_check_unlock IMPORT _dbg_check_unlock
IMPORT dbg_check_lock IMPORT _dbg_check_lock
#endif #endif
/* /*
@ -79,7 +83,7 @@ _port_switch PROC
EXPORT _port_thread_start EXPORT _port_thread_start
_port_thread_start PROC _port_thread_start PROC
#if CH_DBG_SYSTEM_STATE_CHECK #if CH_DBG_SYSTEM_STATE_CHECK
bl dbg_check_unlock bl _dbg_check_unlock
#endif #endif
#if CORTEX_SIMPLIFIED_PRIORITY #if CORTEX_SIMPLIFIED_PRIORITY
cpsie i cpsie i
@ -99,12 +103,18 @@ _port_thread_start PROC
EXPORT _port_switch_from_isr EXPORT _port_switch_from_isr
EXPORT _port_exit_from_isr EXPORT _port_exit_from_isr
_port_switch_from_isr PROC _port_switch_from_isr PROC
#if CH_DBG_STATISTICS
bl _stats_start_measure_crit_thd
#endif
#if CH_DBG_SYSTEM_STATE_CHECK #if CH_DBG_SYSTEM_STATE_CHECK
bl dbg_check_lock bl _dbg_check_lock
#endif #endif
bl chSchDoReschedule bl chSchDoReschedule
#if CH_DBG_SYSTEM_STATE_CHECK #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 #endif
_port_exit_from_isr _port_exit_from_isr
#if CORTEX_SIMPLIFIED_PRIORITY #if CORTEX_SIMPLIFIED_PRIORITY
@ -113,10 +123,10 @@ _port_exit_from_isr
mov r2, #ICSR_PENDSVSET mov r2, #ICSR_PENDSVSET
str r2, [r3, #0] str r2, [r3, #0]
cpsie i cpsie i
waithere b waithere
#else #else
svc #0 svc #0
#endif #endif
waithere b waithere
ENDP ENDP
END END

View File

@ -105,14 +105,14 @@ _IVOR10:
#endif #endif
#if CH_DBG_SYSTEM_STATE_CHECK #if CH_DBG_SYSTEM_STATE_CHECK
bl dbg_check_enter_isr bl _dbg_check_enter_isr
bl dbg_check_lock_from_isr bl _dbg_check_lock_from_isr
#endif #endif
/* System tick handler invocation.*/ /* System tick handler invocation.*/
bl chSysTimerHandlerI bl chSysTimerHandlerI
#if CH_DBG_SYSTEM_STATE_CHECK #if CH_DBG_SYSTEM_STATE_CHECK
bl dbg_check_unlock_from_isr bl _dbg_check_unlock_from_isr
bl dbg_check_leave_isr bl _dbg_check_leave_isr
#endif #endif
#if PPC_USE_IRQ_PREEMPTION #if PPC_USE_IRQ_PREEMPTION
@ -202,8 +202,11 @@ _ivor_exit:
eaddi %r0, %r0, -1 eaddi %r0, %r0, -1
mtspr 272, %r0 mtspr 272, %r0
#if CH_DBG_STATISTICS
bl _stats_start_measure_crit_thd
#endif
#if CH_DBG_SYSTEM_STATE_CHECK #if CH_DBG_SYSTEM_STATE_CHECK
bl dbg_check_lock bl _dbg_check_lock
#endif #endif
bl chSchIsPreemptionRequired bl chSchIsPreemptionRequired
cmpli cr0, %r3, 0 cmpli cr0, %r3, 0
@ -211,7 +214,10 @@ _ivor_exit:
bl chSchDoReschedule bl chSchDoReschedule
.noresch: .noresch:
#if CH_DBG_SYSTEM_STATE_CHECK #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 #endif
/* Restoring the external context.*/ /* Restoring the external context.*/