git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@13761 27425a3e-05d8-49a3-a47f-9c15f0e5edd8

This commit is contained in:
Giovanni Di Sirio 2020-07-15 10:06:20 +00:00
parent 9f4fea9677
commit 6d831b1378
4 changed files with 90 additions and 90 deletions

View File

@ -71,14 +71,14 @@ SCB_ICSR SET 0xE000ED04
EXTERN chThdExit
EXTERN chSysHalt
EXTERN chSchDoReschedule
EXTERN chSchDoPreemption
#if CH_DBG_STATISTICS
EXTERN _stats_start_measure_crit_thd
EXTERN _stats_stop_measure_crit_thd
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
@ -86,8 +86,8 @@ SCB_ICSR SET 0xE000ED04
/*
* Performs a context switch between two threads.
*/
PUBLIC _port_switch
_port_switch:
PUBLIC __port_switch
__port_switch:
push {r4, r5, r6, r7, lr}
mov r4, r8
mov r5, r9
@ -109,42 +109,42 @@ _port_switch:
* Start a thread by invoking its work function.
* If the work function returns @p chThdExit() is automatically invoked.
*/
PUBLIC _port_thread_start
_port_thread_start:
PUBLIC __port_thread_start
__port_thread_start:
#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
bl __stats_stop_measure_crit_thd
#endif
cpsie i
mov r0, r5
blx r4
movs r0, #0 /* MSG_OK */
bl chThdExit
_zombies: b _zombies
.zombies: b .zombies
/*
* Post-IRQ switch code.
* Exception handlers return here for context switching.
*/
PUBLIC _port_switch_from_isr
PUBLIC _port_exit_from_isr
_port_switch_from_isr:
PUBLIC __port_switch_from_isr
PUBLIC __port_exit_from_isr
__port_switch_from_isr:
#if CH_DBG_STATISTICS
bl _stats_start_measure_crit_thd
bl __stats_start_measure_crit_thd
#endif
#if CH_DBG_SYSTEM_STATE_CHECK
bl _dbg_check_lock
bl __dbg_check_lock
#endif
bl chSchDoReschedule
bl chSchDoPreemption
#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
bl __stats_stop_measure_crit_thd
#endif
_port_exit_from_isr:
__port_exit_from_isr:
ldr r2, =SCB_ICSR
movs r3, #128
#if CORTEX_ALTERNATE_SWITCH
@ -155,8 +155,8 @@ _port_exit_from_isr:
lsls r3, r3, #24
str r3, [r2, #0]
#endif
waithere:
b waithere
.waithere:
b .waithere
END

View File

@ -67,21 +67,21 @@ SCB_ICSR EQU 0xE000ED04
AREA |.text|, CODE, READONLY
IMPORT chThdExit
IMPORT chSchDoReschedule
IMPORT chSchDoPreemption
#if CH_DBG_STATISTICS
IMPORT _stats_start_measure_crit_thd
IMPORT _stats_stop_measure_crit_thd
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
/*
* Performs a context switch between two threads.
*/
EXPORT _port_switch
_port_switch PROC
EXPORT __port_switch
__port_switch PROC
push {r4, r5, r6, r7, lr}
mov r4, r8
mov r5, r9
@ -104,41 +104,41 @@ _port_switch PROC
* Start a thread by invoking its work function.
* If the work function returns @p chThdExit() is automatically invoked.
*/
EXPORT _port_thread_start
_port_thread_start 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 CH_DBG_STATISTICS
bl _stats_stop_measure_crit_thd
bl __stats_stop_measure_crit_thd
#endif
cpsie i
mov r0, r5
blx r4
movs r0, #0 /* MSG_OK */
bl chThdExit
_zombies b _zombies
.zombies b .zombies
ENDP
/*
* Post-IRQ switch code.
* Exception handlers return here for context switching.
*/
EXPORT _port_switch_from_isr
EXPORT _port_exit_from_isr
_port_switch_from_isr 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
bl __stats_start_measure_crit_thd
#endif
#if CH_DBG_SYSTEM_STATE_CHECK
bl _dbg_check_lock
bl __dbg_check_lock
#endif
bl chSchDoReschedule
bl chSchDoPreemption
#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
bl __stats_stop_measure_crit_thd
#endif
_port_exit_from_isr
ldr r2, =SCB_ICSR
@ -151,7 +151,7 @@ _port_exit_from_isr
lsls r3, r3, #24
str r3, [r2, #0]
#endif
waithere b waithere
.waithere b .waithere
ENDP
END

View File

@ -71,17 +71,17 @@ ICSR_PENDSVSET SET 0x10000000
SECTION .text:CODE:NOROOT(2)
EXTERN chThdExit
EXTERN chSchDoReschedule
EXTERN chSchDoPreemption
#if CH_DBG_ENABLE_STACK_CHECK && PORT_ENABLE_GUARD_PAGES
EXTERN _port_set_region
EXTERN __port_set_region
#endif
#if CH_DBG_STATISTICS
EXTERN _stats_start_measure_crit_thd
EXTERN _stats_stop_measure_crit_thd
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
@ -89,8 +89,8 @@ ICSR_PENDSVSET SET 0x10000000
/*
* Performs a context switch between two threads.
*/
PUBLIC _port_switch
_port_switch:
PUBLIC __port_switch
__port_switch:
push {r4, r5, r6, r7, r8, r9, r10, r11, lr}
#if CORTEX_USE_FPU
vpush {s16-s31}
@ -116,16 +116,16 @@ _port_switch:
* Start a thread by invoking its work function.
* If the work function returns @p chThdExit() is automatically invoked.
*/
PUBLIC _port_thread_start
_port_thread_start:
PUBLIC __port_thread_start
__port_thread_start:
#if CH_DBG_ENABLE_STACK_CHECK && PORT_ENABLE_GUARD_PAGES
bl _port_set_region
bl __port_set_region
#endif
#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
bl __stats_stop_measure_crit_thd
#endif
#if CORTEX_SIMPLIFIED_PRIORITY
cpsie i
@ -137,29 +137,29 @@ _port_thread_start:
blx r4
movs r0, #0 /* MSG_OK */
bl chThdExit
_zombies: b _zombies
.zombies: b .zombies
/*
* Post-IRQ switch code.
* Exception handlers return here for context switching.
*/
PUBLIC _port_switch_from_isr
PUBLIC _port_exit_from_isr
_port_switch_from_isr:
PUBLIC __port_switch_from_isr
PUBLIC __port_exit_from_isr
__port_switch_from_isr:
#if CH_DBG_STATISTICS
bl _stats_start_measure_crit_thd
bl __stats_start_measure_crit_thd
#endif
#if CH_DBG_SYSTEM_STATE_CHECK
bl _dbg_check_lock
bl __dbg_check_lock
#endif
bl chSchDoReschedule
bl chSchDoPreemption
#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
bl __stats_stop_measure_crit_thd
#endif
_port_exit_from_isr:
__port_exit_from_isr:
#if CORTEX_SIMPLIFIED_PRIORITY
mov r3, #LWRD SCB_ICSR
movt r3, #HWRD SCB_ICSR

View File

@ -68,24 +68,24 @@ ICSR_PENDSVSET EQU 0x10000000
AREA |.text|, CODE, READONLY
IMPORT chThdExit
IMPORT chSchDoReschedule
IMPORT chSchDoPreemption
#if CH_DBG_ENABLE_STACK_CHECK && PORT_ENABLE_GUARD_PAGES
IMPORT _port_set_region
#endif
#if CH_DBG_STATISTICS
IMPORT _stats_start_measure_crit_thd
IMPORT _stats_stop_measure_crit_thd
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
/*
* Performs a context switch between two threads.
*/
EXPORT _port_switch
_port_switch PROC
EXPORT __port_switch
__port_switch PROC
push {r4, r5, r6, r7, r8, r9, r10, r11, lr}
#if CORTEX_USE_FPU
vpush {s16-s31}
@ -112,16 +112,16 @@ _port_switch PROC
* Start a thread by invoking its work function.
* If the work function returns @p chThdExit() is automatically invoked.
*/
EXPORT _port_thread_start
_port_thread_start PROC
EXPORT __port_thread_start
__port_thread_start PROC
#if CH_DBG_ENABLE_STACK_CHECK && PORT_ENABLE_GUARD_PAGES
bl _port_set_region
bl __port_set_region
#endif
#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
bl __stats_stop_measure_crit_thd
#endif
#if CORTEX_SIMPLIFIED_PRIORITY
cpsie i
@ -133,30 +133,30 @@ _port_thread_start PROC
blx r4
movs r0, #0 /* MSG_OK */
bl chThdExit
_zombies b _zombies
.zombies b .zombies
ENDP
/*
* Post-IRQ switch code.
* Exception handlers return here for context switching.
*/
EXPORT _port_switch_from_isr
EXPORT _port_exit_from_isr
_port_switch_from_isr 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
bl __stats_start_measure_crit_thd
#endif
#if CH_DBG_SYSTEM_STATE_CHECK
bl _dbg_check_lock
bl __dbg_check_lock
#endif
bl chSchDoReschedule
bl chSchDoPreemption
#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
bl __stats_stop_measure_crit_thd
#endif
_port_exit_from_isr
__port_exit_from_isr
#if CORTEX_SIMPLIFIED_PRIORITY
mov r3, #SCB_ICSR :AND: 0xFFFF
movt r3, #SCB_ICSR :SHR: 16
@ -166,7 +166,7 @@ _port_exit_from_isr
#else
svc #0
#endif
waithere b waithere
.waithere b .waithere
ENDP
END