the program have one sensor acs712 and moduleds1302

Dependencies:   FATFileSystem mbed

Committer:
RUBENTEC
Date:
Thu Jun 08 20:17:34 2017 +0000
Revision:
0:b82abca089ac
ds1302-bluetooth-acs712

Who changed what in which revision?

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