Official mbed Real Time Operating System based on the RTX implementation of the CMSIS-RTOS API open standard.

Dependents:   denki-yohou_b TestY201 Network-RTOS NTPClient_HelloWorld ... more

Deprecated

This is the mbed 2 rtos library. mbed OS 5 integrates the mbed library with mbed-rtos. With this, we have provided thread safety for all mbed APIs. If you'd like to learn about using mbed OS 5, please see the docs.

Committer:
mbed_official
Date:
Thu Mar 12 14:31:19 2015 +0000
Revision:
68:d3d0e710b443
Parent:
59:28712e303960
Synchronized with git revision 051854181516992fb498d51f9ee6e70cbad9e083

Full URL: https://github.com/mbedmicro/mbed/commit/051854181516992fb498d51f9ee6e70cbad9e083/

Fix ksdk mcu HAL - stopbit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 49:77c8e4604045 1 /*----------------------------------------------------------------------------
mbed_official 49:77c8e4604045 2 * RL-ARM - RTX
mbed_official 49:77c8e4604045 3 *----------------------------------------------------------------------------
mbed_official 49:77c8e4604045 4 * Name: HAL_CM0.S
mbed_official 49:77c8e4604045 5 * Purpose: Hardware Abstraction Layer for Cortex-M0
mbed_official 49:77c8e4604045 6 * Rev.: V4.60
mbed_official 49:77c8e4604045 7 *----------------------------------------------------------------------------
mbed_official 49:77c8e4604045 8 *
mbed_official 49:77c8e4604045 9 * Copyright (c) 1999-2009 KEIL, 2009-2012 ARM Germany GmbH
mbed_official 49:77c8e4604045 10 * All rights reserved.
mbed_official 49:77c8e4604045 11 * Redistribution and use in source and binary forms, with or without
mbed_official 49:77c8e4604045 12 * modification, are permitted provided that the following conditions are met:
mbed_official 49:77c8e4604045 13 * - Redistributions of source code must retain the above copyright
mbed_official 49:77c8e4604045 14 * notice, this list of conditions and the following disclaimer.
mbed_official 49:77c8e4604045 15 * - Redistributions in binary form must reproduce the above copyright
mbed_official 49:77c8e4604045 16 * notice, this list of conditions and the following disclaimer in the
mbed_official 49:77c8e4604045 17 * documentation and/or other materials provided with the distribution.
mbed_official 68:d3d0e710b443 18 * - Neither the name of ARM nor the names of its contributors may be used
mbed_official 68:d3d0e710b443 19 * to endorse or promote products derived from this software without
mbed_official 49:77c8e4604045 20 * specific prior written permission.
mbed_official 49:77c8e4604045 21 *
mbed_official 68:d3d0e710b443 22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 68:d3d0e710b443 23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 49:77c8e4604045 24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
mbed_official 49:77c8e4604045 25 * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
mbed_official 49:77c8e4604045 26 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
mbed_official 68:d3d0e710b443 27 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
mbed_official 68:d3d0e710b443 28 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
mbed_official 68:d3d0e710b443 29 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
mbed_official 68:d3d0e710b443 30 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
mbed_official 49:77c8e4604045 31 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
mbed_official 49:77c8e4604045 32 * POSSIBILITY OF SUCH DAMAGE.
mbed_official 49:77c8e4604045 33 *---------------------------------------------------------------------------*/
mbed_official 49:77c8e4604045 34
mbed_official 49:77c8e4604045 35 .file "HAL_CM0.S"
mbed_official 49:77c8e4604045 36 .syntax unified
mbed_official 49:77c8e4604045 37
mbed_official 59:28712e303960 38 .equ TCB_TSTACK, 40
mbed_official 49:77c8e4604045 39
mbed_official 49:77c8e4604045 40
mbed_official 49:77c8e4604045 41 /*----------------------------------------------------------------------------
mbed_official 49:77c8e4604045 42 * Functions
mbed_official 49:77c8e4604045 43 *---------------------------------------------------------------------------*/
mbed_official 49:77c8e4604045 44
mbed_official 49:77c8e4604045 45 .thumb
mbed_official 49:77c8e4604045 46
mbed_official 49:77c8e4604045 47 .section ".text"
mbed_official 49:77c8e4604045 48 .align 2
mbed_official 49:77c8e4604045 49
mbed_official 49:77c8e4604045 50
mbed_official 49:77c8e4604045 51 /*--------------------------- rt_set_PSP ------------------------------------*/
mbed_official 49:77c8e4604045 52
mbed_official 49:77c8e4604045 53 # void rt_set_PSP (U32 stack);
mbed_official 49:77c8e4604045 54
mbed_official 49:77c8e4604045 55 .thumb_func
mbed_official 49:77c8e4604045 56 .type rt_set_PSP, %function
mbed_official 49:77c8e4604045 57 .global rt_set_PSP
mbed_official 49:77c8e4604045 58 rt_set_PSP:
mbed_official 49:77c8e4604045 59 .fnstart
mbed_official 49:77c8e4604045 60 .cantunwind
mbed_official 49:77c8e4604045 61
mbed_official 49:77c8e4604045 62 MSR PSP,R0
mbed_official 49:77c8e4604045 63 BX LR
mbed_official 49:77c8e4604045 64
mbed_official 49:77c8e4604045 65 .fnend
mbed_official 49:77c8e4604045 66 .size rt_set_PSP, .-rt_set_PSP
mbed_official 49:77c8e4604045 67
mbed_official 49:77c8e4604045 68
mbed_official 49:77c8e4604045 69 /*--------------------------- rt_get_PSP ------------------------------------*/
mbed_official 49:77c8e4604045 70
mbed_official 49:77c8e4604045 71 # U32 rt_get_PSP (void);
mbed_official 49:77c8e4604045 72
mbed_official 49:77c8e4604045 73 .thumb_func
mbed_official 49:77c8e4604045 74 .type rt_get_PSP, %function
mbed_official 49:77c8e4604045 75 .global rt_get_PSP
mbed_official 49:77c8e4604045 76 rt_get_PSP:
mbed_official 49:77c8e4604045 77 .fnstart
mbed_official 49:77c8e4604045 78 .cantunwind
mbed_official 49:77c8e4604045 79
mbed_official 49:77c8e4604045 80 MRS R0,PSP
mbed_official 49:77c8e4604045 81 BX LR
mbed_official 49:77c8e4604045 82
mbed_official 49:77c8e4604045 83 .fnend
mbed_official 49:77c8e4604045 84 .size rt_get_PSP, .-rt_get_PSP
mbed_official 49:77c8e4604045 85
mbed_official 49:77c8e4604045 86
mbed_official 49:77c8e4604045 87 /*--------------------------- os_set_env ------------------------------------*/
mbed_official 49:77c8e4604045 88
mbed_official 49:77c8e4604045 89 # void os_set_env (void);
mbed_official 49:77c8e4604045 90 /* Switch to Unprivileged/Privileged Thread mode, use PSP. */
mbed_official 49:77c8e4604045 91
mbed_official 49:77c8e4604045 92 .thumb_func
mbed_official 49:77c8e4604045 93 .type os_set_env, %function
mbed_official 49:77c8e4604045 94 .global os_set_env
mbed_official 49:77c8e4604045 95 os_set_env:
mbed_official 49:77c8e4604045 96 .fnstart
mbed_official 49:77c8e4604045 97 .cantunwind
mbed_official 49:77c8e4604045 98
mbed_official 49:77c8e4604045 99 MOV R0,SP /* PSP = MSP */
mbed_official 49:77c8e4604045 100 MSR PSP,R0
mbed_official 49:77c8e4604045 101 LDR R0,=os_flags
mbed_official 49:77c8e4604045 102 LDRB R0,[R0]
mbed_official 49:77c8e4604045 103 LSLS R0,#31
mbed_official 49:77c8e4604045 104 BNE PrivilegedE
mbed_official 49:77c8e4604045 105 MOVS R0,#0x03 /* Unprivileged Thread mode, use PSP */
mbed_official 49:77c8e4604045 106 MSR CONTROL,R0
mbed_official 49:77c8e4604045 107 BX LR
mbed_official 49:77c8e4604045 108 PrivilegedE:
mbed_official 49:77c8e4604045 109 MOVS R0,#0x02 /* Privileged Thread mode, use PSP */
mbed_official 49:77c8e4604045 110 MSR CONTROL,R0
mbed_official 49:77c8e4604045 111 BX LR
mbed_official 49:77c8e4604045 112
mbed_official 49:77c8e4604045 113 .fnend
mbed_official 49:77c8e4604045 114 .size os_set_env, .-os_set_env
mbed_official 49:77c8e4604045 115
mbed_official 49:77c8e4604045 116
mbed_official 49:77c8e4604045 117 /*--------------------------- _alloc_box ------------------------------------*/
mbed_official 49:77c8e4604045 118
mbed_official 49:77c8e4604045 119 # void *_alloc_box (void *box_mem);
mbed_official 49:77c8e4604045 120 /* Function wrapper for Unprivileged/Privileged mode. */
mbed_official 49:77c8e4604045 121
mbed_official 49:77c8e4604045 122 .thumb_func
mbed_official 49:77c8e4604045 123 .type _alloc_box, %function
mbed_official 49:77c8e4604045 124 .global _alloc_box
mbed_official 49:77c8e4604045 125 _alloc_box:
mbed_official 49:77c8e4604045 126 .fnstart
mbed_official 49:77c8e4604045 127 .cantunwind
mbed_official 49:77c8e4604045 128
mbed_official 49:77c8e4604045 129 LDR R3,=rt_alloc_box
mbed_official 49:77c8e4604045 130 MOV R12,R3
mbed_official 49:77c8e4604045 131 MRS R3,IPSR
mbed_official 49:77c8e4604045 132 LSLS R3,#24
mbed_official 49:77c8e4604045 133 BNE PrivilegedA
mbed_official 49:77c8e4604045 134 MRS R3,CONTROL
mbed_official 49:77c8e4604045 135 LSLS R3,#31
mbed_official 49:77c8e4604045 136 BEQ PrivilegedA
mbed_official 49:77c8e4604045 137 SVC 0
mbed_official 49:77c8e4604045 138 BX LR
mbed_official 49:77c8e4604045 139 PrivilegedA:
mbed_official 49:77c8e4604045 140 BX R12
mbed_official 49:77c8e4604045 141
mbed_official 49:77c8e4604045 142 .fnend
mbed_official 49:77c8e4604045 143 .size _alloc_box, .-_alloc_box
mbed_official 49:77c8e4604045 144
mbed_official 49:77c8e4604045 145
mbed_official 49:77c8e4604045 146 /*--------------------------- _free_box -------------------------------------*/
mbed_official 49:77c8e4604045 147
mbed_official 49:77c8e4604045 148 # int _free_box (void *box_mem, void *box);
mbed_official 49:77c8e4604045 149 /* Function wrapper for Unprivileged/Privileged mode. */
mbed_official 49:77c8e4604045 150
mbed_official 49:77c8e4604045 151 .thumb_func
mbed_official 49:77c8e4604045 152 .type _free_box, %function
mbed_official 49:77c8e4604045 153 .global _free_box
mbed_official 49:77c8e4604045 154 _free_box:
mbed_official 49:77c8e4604045 155 .fnstart
mbed_official 49:77c8e4604045 156 .cantunwind
mbed_official 49:77c8e4604045 157
mbed_official 49:77c8e4604045 158 LDR R3,=rt_free_box
mbed_official 49:77c8e4604045 159 MOV R12,R3
mbed_official 49:77c8e4604045 160 MRS R3,IPSR
mbed_official 49:77c8e4604045 161 LSLS R3,#24
mbed_official 49:77c8e4604045 162 BNE PrivilegedF
mbed_official 49:77c8e4604045 163 MRS R3,CONTROL
mbed_official 49:77c8e4604045 164 LSLS R3,#31
mbed_official 49:77c8e4604045 165 BEQ PrivilegedF
mbed_official 49:77c8e4604045 166 SVC 0
mbed_official 49:77c8e4604045 167 BX LR
mbed_official 49:77c8e4604045 168 PrivilegedF:
mbed_official 49:77c8e4604045 169 BX R12
mbed_official 49:77c8e4604045 170
mbed_official 49:77c8e4604045 171 .fnend
mbed_official 49:77c8e4604045 172 .size _free_box, .-_free_box
mbed_official 49:77c8e4604045 173
mbed_official 49:77c8e4604045 174
mbed_official 49:77c8e4604045 175 /*-------------------------- SVC_Handler ------------------------------------*/
mbed_official 49:77c8e4604045 176
mbed_official 49:77c8e4604045 177 # void SVC_Handler (void);
mbed_official 49:77c8e4604045 178
mbed_official 49:77c8e4604045 179 .thumb_func
mbed_official 49:77c8e4604045 180 .type SVC_Handler, %function
mbed_official 49:77c8e4604045 181 .global SVC_Handler
mbed_official 49:77c8e4604045 182 SVC_Handler:
mbed_official 49:77c8e4604045 183 .fnstart
mbed_official 49:77c8e4604045 184 .cantunwind
mbed_official 49:77c8e4604045 185
mbed_official 49:77c8e4604045 186 MRS R0,PSP /* Read PSP */
mbed_official 49:77c8e4604045 187 LDR R1,[R0,#24] /* Read Saved PC from Stack */
mbed_official 49:77c8e4604045 188 SUBS R1,R1,#2 /* Point to SVC Instruction */
mbed_official 49:77c8e4604045 189 LDRB R1,[R1] /* Load SVC Number */
mbed_official 49:77c8e4604045 190 CMP R1,#0
mbed_official 49:77c8e4604045 191 BNE SVC_User /* User SVC Number > 0 */
mbed_official 49:77c8e4604045 192
mbed_official 49:77c8e4604045 193 MOV LR,R4
mbed_official 49:77c8e4604045 194 LDMIA R0,{R0-R3,R4} /* Read R0-R3,R12 from stack */
mbed_official 49:77c8e4604045 195 MOV R12,R4
mbed_official 49:77c8e4604045 196 MOV R4,LR
mbed_official 49:77c8e4604045 197 BLX R12 /* Call SVC Function */
mbed_official 49:77c8e4604045 198
mbed_official 49:77c8e4604045 199 MRS R3,PSP /* Read PSP */
mbed_official 49:77c8e4604045 200 STMIA R3!,{R0-R2} /* Store return values */
mbed_official 49:77c8e4604045 201
mbed_official 49:77c8e4604045 202 LDR R3,=os_tsk
mbed_official 49:77c8e4604045 203 LDMIA R3!,{R1,R2} /* os_tsk.run, os_tsk.new */
mbed_official 49:77c8e4604045 204 CMP R1,R2
mbed_official 49:77c8e4604045 205 BEQ SVC_Exit /* no task switch */
mbed_official 49:77c8e4604045 206
mbed_official 49:77c8e4604045 207 SUBS R3,#8
mbed_official 49:77c8e4604045 208 CMP R1,#0 /* Runtask deleted? */
mbed_official 49:77c8e4604045 209 BEQ SVC_Next
mbed_official 49:77c8e4604045 210
mbed_official 49:77c8e4604045 211 MRS R0,PSP /* Read PSP */
mbed_official 49:77c8e4604045 212 SUBS R0,R0,#32 /* Adjust Start Address */
mbed_official 68:d3d0e710b443 213 STR R0,[R1,#TCB_TSTACK] /* Update os_tsk.run->tsk_stack */
mbed_official 49:77c8e4604045 214 STMIA R0!,{R4-R7} /* Save old context (R4-R7) */
mbed_official 49:77c8e4604045 215 MOV R4,R8
mbed_official 49:77c8e4604045 216 MOV R5,R9
mbed_official 49:77c8e4604045 217 MOV R6,R10
mbed_official 49:77c8e4604045 218 MOV R7,R11
mbed_official 49:77c8e4604045 219 STMIA R0!,{R4-R7} /* Save old context (R8-R11) */
mbed_official 49:77c8e4604045 220
mbed_official 49:77c8e4604045 221 PUSH {R2,R3}
mbed_official 49:77c8e4604045 222 BL rt_stk_check /* Check for Stack overflow */
mbed_official 49:77c8e4604045 223 POP {R2,R3}
mbed_official 49:77c8e4604045 224
mbed_official 49:77c8e4604045 225 SVC_Next:
mbed_official 49:77c8e4604045 226 STR R2,[R3] /* os_tsk.run = os_tsk.new */
mbed_official 49:77c8e4604045 227
mbed_official 49:77c8e4604045 228 LDR R0,[R2,#TCB_TSTACK] /* os_tsk.new->tsk_stack */
mbed_official 49:77c8e4604045 229 ADDS R0,R0,#16 /* Adjust Start Address */
mbed_official 49:77c8e4604045 230 LDMIA R0!,{R4-R7} /* Restore new Context (R8-R11) */
mbed_official 49:77c8e4604045 231 MOV R8,R4
mbed_official 49:77c8e4604045 232 MOV R9,R5
mbed_official 49:77c8e4604045 233 MOV R10,R6
mbed_official 49:77c8e4604045 234 MOV R11,R7
mbed_official 49:77c8e4604045 235 MSR PSP,R0 /* Write PSP */
mbed_official 49:77c8e4604045 236 SUBS R0,R0,#32 /* Adjust Start Address */
mbed_official 49:77c8e4604045 237 LDMIA R0!,{R4-R7} /* Restore new Context (R4-R7) */
mbed_official 49:77c8e4604045 238
mbed_official 49:77c8e4604045 239 SVC_Exit:
mbed_official 49:77c8e4604045 240 MOVS R0,#~0xFFFFFFFD /* Set EXC_RETURN value */
mbed_official 49:77c8e4604045 241 MVNS R0,R0
mbed_official 49:77c8e4604045 242 BX R0 /* RETI to Thread Mode, use PSP */
mbed_official 49:77c8e4604045 243
mbed_official 49:77c8e4604045 244 /*------------------- User SVC ------------------------------*/
mbed_official 49:77c8e4604045 245
mbed_official 49:77c8e4604045 246 SVC_User:
mbed_official 49:77c8e4604045 247 PUSH {R4,LR} /* Save Registers */
mbed_official 49:77c8e4604045 248 LDR R2,=SVC_Count
mbed_official 49:77c8e4604045 249 LDR R2,[R2]
mbed_official 49:77c8e4604045 250 CMP R1,R2
mbed_official 49:77c8e4604045 251 BHI SVC_Done /* Overflow */
mbed_official 49:77c8e4604045 252
mbed_official 49:77c8e4604045 253 LDR R4,=SVC_Table-4
mbed_official 49:77c8e4604045 254 LSLS R1,R1,#2
mbed_official 49:77c8e4604045 255 LDR R4,[R4,R1] /* Load SVC Function Address */
mbed_official 49:77c8e4604045 256 MOV LR,R4
mbed_official 49:77c8e4604045 257
mbed_official 49:77c8e4604045 258 LDMIA R0,{R0-R3,R4} /* Read R0-R3,R12 from stack */
mbed_official 49:77c8e4604045 259 MOV R12,R4
mbed_official 49:77c8e4604045 260 BLX LR /* Call SVC Function */
mbed_official 49:77c8e4604045 261
mbed_official 49:77c8e4604045 262 MRS R4,PSP /* Read PSP */
mbed_official 49:77c8e4604045 263 STMIA R4!,{R0-R3} /* Function return values */
mbed_official 49:77c8e4604045 264 SVC_Done:
mbed_official 49:77c8e4604045 265 POP {R4,PC} /* RETI */
mbed_official 49:77c8e4604045 266
mbed_official 49:77c8e4604045 267 .fnend
mbed_official 49:77c8e4604045 268 .size SVC_Handler, .-SVC_Handler
mbed_official 68:d3d0e710b443 269
mbed_official 49:77c8e4604045 270
mbed_official 49:77c8e4604045 271 /*-------------------------- PendSV_Handler ---------------------------------*/
mbed_official 49:77c8e4604045 272
mbed_official 49:77c8e4604045 273 # void PendSV_Handler (void);
mbed_official 49:77c8e4604045 274
mbed_official 49:77c8e4604045 275 .thumb_func
mbed_official 49:77c8e4604045 276 .type PendSV_Handler, %function
mbed_official 49:77c8e4604045 277 .global PendSV_Handler
mbed_official 49:77c8e4604045 278 .global Sys_Switch
mbed_official 49:77c8e4604045 279 PendSV_Handler:
mbed_official 49:77c8e4604045 280 .fnstart
mbed_official 49:77c8e4604045 281 .cantunwind
mbed_official 49:77c8e4604045 282
mbed_official 49:77c8e4604045 283 BL rt_pop_req
mbed_official 49:77c8e4604045 284
mbed_official 49:77c8e4604045 285 Sys_Switch:
mbed_official 49:77c8e4604045 286 LDR R3,=os_tsk
mbed_official 49:77c8e4604045 287 LDMIA R3!,{R1,R2} /* os_tsk.run, os_tsk.new */
mbed_official 49:77c8e4604045 288 CMP R1,R2
mbed_official 49:77c8e4604045 289 BEQ Sys_Exit /* no task switch */
mbed_official 49:77c8e4604045 290
mbed_official 49:77c8e4604045 291 SUBS R3,#8
mbed_official 49:77c8e4604045 292
mbed_official 49:77c8e4604045 293 MRS R0,PSP /* Read PSP */
mbed_official 49:77c8e4604045 294 SUBS R0,R0,#32 /* Adjust Start Address */
mbed_official 49:77c8e4604045 295 STR R0,[R1,#TCB_TSTACK] /* Update os_tsk.run->tsk_stack */
mbed_official 49:77c8e4604045 296 STMIA R0!,{R4-R7} /* Save old context (R4-R7) */
mbed_official 49:77c8e4604045 297 MOV R4,R8
mbed_official 49:77c8e4604045 298 MOV R5,R9
mbed_official 49:77c8e4604045 299 MOV R6,R10
mbed_official 49:77c8e4604045 300 MOV R7,R11
mbed_official 49:77c8e4604045 301 STMIA R0!,{R4-R7} /* Save old context (R8-R11) */
mbed_official 49:77c8e4604045 302
mbed_official 49:77c8e4604045 303 PUSH {R2,R3}
mbed_official 49:77c8e4604045 304 BL rt_stk_check /* Check for Stack overflow */
mbed_official 49:77c8e4604045 305 POP {R2,R3}
mbed_official 49:77c8e4604045 306
mbed_official 49:77c8e4604045 307 STR R2,[R3] /* os_tsk.run = os_tsk.new */
mbed_official 49:77c8e4604045 308
mbed_official 49:77c8e4604045 309 LDR R0,[R2,#TCB_TSTACK] /* os_tsk.new->tsk_stack */
mbed_official 49:77c8e4604045 310 ADDS R0,R0,#16 /* Adjust Start Address */
mbed_official 49:77c8e4604045 311 LDMIA R0!,{R4-R7} /* Restore new Context (R8-R11) */
mbed_official 49:77c8e4604045 312 MOV R8,R4
mbed_official 49:77c8e4604045 313 MOV R9,R5
mbed_official 49:77c8e4604045 314 MOV R10,R6
mbed_official 49:77c8e4604045 315 MOV R11,R7
mbed_official 49:77c8e4604045 316 MSR PSP,R0 /* Write PSP */
mbed_official 49:77c8e4604045 317 SUBS R0,R0,#32 /* Adjust Start Address */
mbed_official 49:77c8e4604045 318 LDMIA R0!,{R4-R7} /* Restore new Context (R4-R7) */
mbed_official 49:77c8e4604045 319
mbed_official 49:77c8e4604045 320 Sys_Exit:
mbed_official 49:77c8e4604045 321 MOVS R0,#~0xFFFFFFFD /* Set EXC_RETURN value */
mbed_official 49:77c8e4604045 322 MVNS R0,R0
mbed_official 49:77c8e4604045 323 BX R0 /* RETI to Thread Mode, use PSP */
mbed_official 49:77c8e4604045 324
mbed_official 49:77c8e4604045 325 .fnend
mbed_official 49:77c8e4604045 326 .size PendSV_Handler, .-PendSV_Handler
mbed_official 49:77c8e4604045 327
mbed_official 49:77c8e4604045 328
mbed_official 49:77c8e4604045 329 /*-------------------------- SysTick_Handler --------------------------------*/
mbed_official 49:77c8e4604045 330
mbed_official 49:77c8e4604045 331 # void SysTick_Handler (void);
mbed_official 49:77c8e4604045 332
mbed_official 49:77c8e4604045 333 .thumb_func
mbed_official 49:77c8e4604045 334 .type SysTick_Handler, %function
mbed_official 49:77c8e4604045 335 .global SysTick_Handler
mbed_official 49:77c8e4604045 336 SysTick_Handler:
mbed_official 49:77c8e4604045 337 .fnstart
mbed_official 49:77c8e4604045 338 .cantunwind
mbed_official 49:77c8e4604045 339
mbed_official 49:77c8e4604045 340 BL rt_systick
mbed_official 49:77c8e4604045 341 B Sys_Switch
mbed_official 49:77c8e4604045 342
mbed_official 49:77c8e4604045 343 .fnend
mbed_official 49:77c8e4604045 344 .size SysTick_Handler, .-SysTick_Handler
mbed_official 49:77c8e4604045 345
mbed_official 49:77c8e4604045 346
mbed_official 49:77c8e4604045 347 /*-------------------------- OS_Tick_Handler --------------------------------*/
mbed_official 49:77c8e4604045 348
mbed_official 49:77c8e4604045 349 # void OS_Tick_Handler (void);
mbed_official 49:77c8e4604045 350
mbed_official 49:77c8e4604045 351 .thumb_func
mbed_official 49:77c8e4604045 352 .type OS_Tick_Handler, %function
mbed_official 49:77c8e4604045 353 .global OS_Tick_Handler
mbed_official 49:77c8e4604045 354 OS_Tick_Handler:
mbed_official 49:77c8e4604045 355 .fnstart
mbed_official 49:77c8e4604045 356 .cantunwind
mbed_official 49:77c8e4604045 357
mbed_official 49:77c8e4604045 358 BL os_tick_irqack
mbed_official 49:77c8e4604045 359 BL rt_systick
mbed_official 49:77c8e4604045 360 B Sys_Switch
mbed_official 49:77c8e4604045 361
mbed_official 49:77c8e4604045 362 .fnend
mbed_official 49:77c8e4604045 363 .size OS_Tick_Handler, .-OS_Tick_Handler
mbed_official 49:77c8e4604045 364
mbed_official 49:77c8e4604045 365
mbed_official 49:77c8e4604045 366 .end
mbed_official 49:77c8e4604045 367
mbed_official 49:77c8e4604045 368 /*----------------------------------------------------------------------------
mbed_official 49:77c8e4604045 369 * end of file
mbed_official 49:77c8e4604045 370 *---------------------------------------------------------------------------*/