mbed-rtos for GR-peach

Fork of mbed-rtos by mbed official

Committer:
mbed_official
Date:
Thu Nov 06 13:00:11 2014 +0000
Revision:
49:77c8e4604045
Synchronized with git revision 7b90c2ba137baaf9769219e0e8a7b8e8d1299c4f

Full URL: https://github.com/mbedmicro/mbed/commit/7b90c2ba137baaf9769219e0e8a7b8e8d1299c4f/

This target is not yet tested, so it can't be released as part of the official
SDK build for now.

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 49:77c8e4604045 18 * - Neither the name of ARM nor the names of its contributors may be used
mbed_official 49:77c8e4604045 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 49:77c8e4604045 22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 49:77c8e4604045 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 49:77c8e4604045 27 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
mbed_official 49:77c8e4604045 28 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
mbed_official 49:77c8e4604045 29 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
mbed_official 49:77c8e4604045 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 49:77c8e4604045 38 .equ TCB_TSTACK, 36
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 49:77c8e4604045 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 49:77c8e4604045 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 *---------------------------------------------------------------------------*/