Please see my note book http://mbed.org/users/kenjiArai/notebook/freertos-on-mbed-board-with-mbed-cloud-ide--never-/

This is too old.
Below is another FreeRTOS on mbed.
http://developer.mbed.org/users/rgrover1/code/FreeRTOS/
I don't know it works well or not.
I have not evaluated it.

Committer:
kenjiArai
Date:
Sat Jan 01 11:17:45 2011 +0000
Revision:
0:d4960fcea8ff

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kenjiArai 0:d4960fcea8ff 1 ;//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
kenjiArai 0:d4960fcea8ff 2 ;
kenjiArai 0:d4960fcea8ff 3 ; This is a program for FreeRTOS on LPC1768 mbed IDE
kenjiArai 0:d4960fcea8ff 4 ;
kenjiArai 0:d4960fcea8ff 5 ; C source file: port_asm.c
kenjiArai 0:d4960fcea8ff 6 ; Compiled on: GCC: (Sourcery G++ Lite 2010q1-188) 4.4.1
kenjiArai 0:d4960fcea8ff 7 ; Hand modification by: Kenji Arai / JH1PJL
kenjiArai 0:d4960fcea8ff 8 ; http://www.page.sannet.ne.jp/kenjia/index.html
kenjiArai 0:d4960fcea8ff 9 ;
kenjiArai 0:d4960fcea8ff 10 ; Started on: October 31st, 2010
kenjiArai 0:d4960fcea8ff 11 ; updated on: October 31st, 2010
kenjiArai 0:d4960fcea8ff 12 ;
kenjiArai 0:d4960fcea8ff 13 ;//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
kenjiArai 0:d4960fcea8ff 14 ; .syntax unified
kenjiArai 0:d4960fcea8ff 15 ; .cpu cortex-m3
kenjiArai 0:d4960fcea8ff 16 ; .fpu softvfp
kenjiArai 0:d4960fcea8ff 17 ; .eabi_attribute 20, 1
kenjiArai 0:d4960fcea8ff 18 ; .eabi_attribute 21, 1
kenjiArai 0:d4960fcea8ff 19 ; .eabi_attribute 23, 3
kenjiArai 0:d4960fcea8ff 20 ; .eabi_attribute 24, 1
kenjiArai 0:d4960fcea8ff 21 ; .eabi_attribute 25, 1
kenjiArai 0:d4960fcea8ff 22 ; .eabi_attribute 26, 1
kenjiArai 0:d4960fcea8ff 23 ; .eabi_attribute 30, 6
kenjiArai 0:d4960fcea8ff 24 ; .eabi_attribute 18, 4
kenjiArai 0:d4960fcea8ff 25
kenjiArai 0:d4960fcea8ff 26 EXTERN pxCurrentTCB
kenjiArai 0:d4960fcea8ff 27 EXTERN uxCriticalNesting
kenjiArai 0:d4960fcea8ff 28 EXTERN vTaskSwitchContext
kenjiArai 0:d4960fcea8ff 29 EXTERN vTaskIncrementTick
kenjiArai 0:d4960fcea8ff 30 EXTERN prvCopyDataToQueue
kenjiArai 0:d4960fcea8ff 31 EXTERN xTaskRemoveFromEventList
kenjiArai 0:d4960fcea8ff 32 EXTERN prvCopyDataFromQueue
kenjiArai 0:d4960fcea8ff 33 EXTERN prvIdleTask
kenjiArai 0:d4960fcea8ff 34 EXTERN xTaskGenericCreate
kenjiArai 0:d4960fcea8ff 35 EXTERN xSchedulerRunning
kenjiArai 0:d4960fcea8ff 36 EXTERN xTickCount
kenjiArai 0:d4960fcea8ff 37 EXTERN vConfigureTimerForRunTimeStats
kenjiArai 0:d4960fcea8ff 38 EXTERN xPortStartScheduler
kenjiArai 0:d4960fcea8ff 39 EXTERN vPortEndScheduler
kenjiArai 0:d4960fcea8ff 40
kenjiArai 0:d4960fcea8ff 41 CODE16
kenjiArai 0:d4960fcea8ff 42 PRESERVE8
kenjiArai 0:d4960fcea8ff 43 AREA Port, CODE, READONLY
kenjiArai 0:d4960fcea8ff 44 ;//////////////////////////////////////////////////////
kenjiArai 0:d4960fcea8ff 45 ; .thumb
kenjiArai 0:d4960fcea8ff 46 THUMB
kenjiArai 0:d4960fcea8ff 47 ; .file "port_asm.c"
kenjiArai 0:d4960fcea8ff 48 ; .text
kenjiArai 0:d4960fcea8ff 49 ; .align 2
kenjiArai 0:d4960fcea8ff 50 ALIGN 2
kenjiArai 0:d4960fcea8ff 51 GLOBAL Reset_Handler
kenjiArai 0:d4960fcea8ff 52 THUMB
kenjiArai 0:d4960fcea8ff 53 Reset_Handler
kenjiArai 0:d4960fcea8ff 54 push {r7, lr}
kenjiArai 0:d4960fcea8ff 55 pop {r7, pc}
kenjiArai 0:d4960fcea8ff 56
kenjiArai 0:d4960fcea8ff 57 ;///////////////////////////////////////////////////////
kenjiArai 0:d4960fcea8ff 58 ALIGN 2
kenjiArai 0:d4960fcea8ff 59 ; .global vPortSVCHandler
kenjiArai 0:d4960fcea8ff 60 GLOBAL vPortSVCHandler
kenjiArai 0:d4960fcea8ff 61 ; .thumb
kenjiArai 0:d4960fcea8ff 62 THUMB
kenjiArai 0:d4960fcea8ff 63 ; .thumb_func
kenjiArai 0:d4960fcea8ff 64 ; .type vPortSVCHandler, %function
kenjiArai 0:d4960fcea8ff 65 ;vPortSVCHandler:
kenjiArai 0:d4960fcea8ff 66 vPortSVCHandler
kenjiArai 0:d4960fcea8ff 67 ; @ Naked Function: prologue and epilogue provided by programmer.
kenjiArai 0:d4960fcea8ff 68 ; @ args = 0, pretend = 0, frame = 0
kenjiArai 0:d4960fcea8ff 69 ; @ frame_needed = 1, uses_anonymous_args = 0
kenjiArai 0:d4960fcea8ff 70 ;@ 199 "port_asm.c" 1
kenjiArai 0:d4960fcea8ff 71 ldr r3, pxCurrentTCBConst2
kenjiArai 0:d4960fcea8ff 72 ldr r1, [r3]
kenjiArai 0:d4960fcea8ff 73 ldr r0, [r1]
kenjiArai 0:d4960fcea8ff 74 ldmia r0!, {r4-r11}
kenjiArai 0:d4960fcea8ff 75 msr psp, r0
kenjiArai 0:d4960fcea8ff 76 mov r0, #0
kenjiArai 0:d4960fcea8ff 77 msr basepri, r0
kenjiArai 0:d4960fcea8ff 78 orr r14, #0xd
kenjiArai 0:d4960fcea8ff 79 bx r14
kenjiArai 0:d4960fcea8ff 80
kenjiArai 0:d4960fcea8ff 81 ; .align 2
kenjiArai 0:d4960fcea8ff 82 ALIGN 2
kenjiArai 0:d4960fcea8ff 83 ;pxCurrentTCBConst2: .word pxCurrentTCB
kenjiArai 0:d4960fcea8ff 84 pxCurrentTCBConst2 DCD pxCurrentTCB
kenjiArai 0:d4960fcea8ff 85
kenjiArai 0:d4960fcea8ff 86 ;@ 0 "" 2
kenjiArai 0:d4960fcea8ff 87 ; .thumb
kenjiArai 0:d4960fcea8ff 88 THUMB
kenjiArai 0:d4960fcea8ff 89 ; .size vPortSVCHandler, .-vPortSVCHandler
kenjiArai 0:d4960fcea8ff 90 ;///////////////////////////////////////////////////////
kenjiArai 0:d4960fcea8ff 91 ; .align 2
kenjiArai 0:d4960fcea8ff 92 ALIGN 2
kenjiArai 0:d4960fcea8ff 93 ; .global vPortStartFirstTask
kenjiArai 0:d4960fcea8ff 94 GLOBAL vPortStartFirstTask
kenjiArai 0:d4960fcea8ff 95 ; .thumb
kenjiArai 0:d4960fcea8ff 96 THUMB
kenjiArai 0:d4960fcea8ff 97 ; .thumb_func
kenjiArai 0:d4960fcea8ff 98 ; .type vPortStartFirstTask, %function
kenjiArai 0:d4960fcea8ff 99 ;vPortStartFirstTask:
kenjiArai 0:d4960fcea8ff 100 vPortStartFirstTask
kenjiArai 0:d4960fcea8ff 101 ; @ Naked Function: prologue and epilogue provided by programmer.
kenjiArai 0:d4960fcea8ff 102 ; @ args = 0, pretend = 0, frame = 0
kenjiArai 0:d4960fcea8ff 103 ; @ frame_needed = 1, uses_anonymous_args = 0
kenjiArai 0:d4960fcea8ff 104 ;@ 218 "port_asm.c" 1
kenjiArai 0:d4960fcea8ff 105 ldr r0, =0xE000ED08
kenjiArai 0:d4960fcea8ff 106 ldr r0, [r0]
kenjiArai 0:d4960fcea8ff 107 ldr r0, [r0]
kenjiArai 0:d4960fcea8ff 108 msr msp, r0
kenjiArai 0:d4960fcea8ff 109 svc 0
kenjiArai 0:d4960fcea8ff 110
kenjiArai 0:d4960fcea8ff 111 ;@ 0 "" 2
kenjiArai 0:d4960fcea8ff 112 ; .thumb
kenjiArai 0:d4960fcea8ff 113 THUMB
kenjiArai 0:d4960fcea8ff 114 ; .size vPortStartFirstTask, .-vPortStartFirstTask
kenjiArai 0:d4960fcea8ff 115 ;///////////////////////////////////////////////////////
kenjiArai 0:d4960fcea8ff 116 ; .align 2
kenjiArai 0:d4960fcea8ff 117 ALIGN 2
kenjiArai 0:d4960fcea8ff 118 ; .global vPortEnterCritical
kenjiArai 0:d4960fcea8ff 119 GLOBAL vPortEnterCritical
kenjiArai 0:d4960fcea8ff 120 ; .thumb
kenjiArai 0:d4960fcea8ff 121 THUMB
kenjiArai 0:d4960fcea8ff 122 ; .thumb_func
kenjiArai 0:d4960fcea8ff 123 ; .type vPortEnterCritical, %function
kenjiArai 0:d4960fcea8ff 124 ;vPortEnterCritical:
kenjiArai 0:d4960fcea8ff 125 vPortEnterCritical
kenjiArai 0:d4960fcea8ff 126 ; @ args = 0, pretend = 0, frame = 0
kenjiArai 0:d4960fcea8ff 127 ; @ frame_needed = 1, uses_anonymous_args = 0
kenjiArai 0:d4960fcea8ff 128 ; @ link register save eliminated.
kenjiArai 0:d4960fcea8ff 129 push {r7}
kenjiArai 0:d4960fcea8ff 130 add r7, sp, #0
kenjiArai 0:d4960fcea8ff 131 ;@ 270 "port_asm.c" 1
kenjiArai 0:d4960fcea8ff 132 mov r0, #40
kenjiArai 0:d4960fcea8ff 133 msr basepri, r0
kenjiArai 0:d4960fcea8ff 134
kenjiArai 0:d4960fcea8ff 135 ;@ 0 "" 2
kenjiArai 0:d4960fcea8ff 136 ; .thumb
kenjiArai 0:d4960fcea8ff 137 THUMB
kenjiArai 0:d4960fcea8ff 138 movw r3, #:lower16:uxCriticalNesting
kenjiArai 0:d4960fcea8ff 139 movt r3, #:upper16:uxCriticalNesting
kenjiArai 0:d4960fcea8ff 140 ldr r3, [r3, #0]
kenjiArai 0:d4960fcea8ff 141 add r2, r3, #1
kenjiArai 0:d4960fcea8ff 142 movw r3, #:lower16:uxCriticalNesting
kenjiArai 0:d4960fcea8ff 143 movt r3, #:upper16:uxCriticalNesting
kenjiArai 0:d4960fcea8ff 144 str r2, [r3, #0]
kenjiArai 0:d4960fcea8ff 145 mov sp, r7
kenjiArai 0:d4960fcea8ff 146 pop {r7}
kenjiArai 0:d4960fcea8ff 147 bx lr
kenjiArai 0:d4960fcea8ff 148 ; .size vPortEnterCritical, .-vPortEnterCritical
kenjiArai 0:d4960fcea8ff 149 ;///////////////////////////////////////////////////////
kenjiArai 0:d4960fcea8ff 150 ; .align 2
kenjiArai 0:d4960fcea8ff 151 ALIGN 2
kenjiArai 0:d4960fcea8ff 152 ; .global vPortExitCritical
kenjiArai 0:d4960fcea8ff 153 GLOBAL vPortExitCritical
kenjiArai 0:d4960fcea8ff 154 ; .thumb
kenjiArai 0:d4960fcea8ff 155 THUMB
kenjiArai 0:d4960fcea8ff 156 ; .thumb_func
kenjiArai 0:d4960fcea8ff 157 ; .type vPortExitCritical, %function
kenjiArai 0:d4960fcea8ff 158 ;vPortExitCritical:
kenjiArai 0:d4960fcea8ff 159 vPortExitCritical
kenjiArai 0:d4960fcea8ff 160 ; @ args = 0, pretend = 0, frame = 0
kenjiArai 0:d4960fcea8ff 161 ; @ frame_needed = 1, uses_anonymous_args = 0
kenjiArai 0:d4960fcea8ff 162 ; @ link register save eliminated.
kenjiArai 0:d4960fcea8ff 163 push {r7}
kenjiArai 0:d4960fcea8ff 164 add r7, sp, #0
kenjiArai 0:d4960fcea8ff 165 movw r3, #:lower16:uxCriticalNesting
kenjiArai 0:d4960fcea8ff 166 movt r3, #:upper16:uxCriticalNesting
kenjiArai 0:d4960fcea8ff 167 ldr r3, [r3, #0]
kenjiArai 0:d4960fcea8ff 168 add r2, r3, #-1
kenjiArai 0:d4960fcea8ff 169 movw r3, #:lower16:uxCriticalNesting
kenjiArai 0:d4960fcea8ff 170 movt r3, #:upper16:uxCriticalNesting
kenjiArai 0:d4960fcea8ff 171 str r2, [r3, #0]
kenjiArai 0:d4960fcea8ff 172 movw r3, #:lower16:uxCriticalNesting
kenjiArai 0:d4960fcea8ff 173 movt r3, #:upper16:uxCriticalNesting
kenjiArai 0:d4960fcea8ff 174 ldr r3, [r3, #0]
kenjiArai 0:d4960fcea8ff 175 cmp r3, #0
kenjiArai 0:d4960fcea8ff 176 ; bne .L9
kenjiArai 0:d4960fcea8ff 177 bne Jmp0
kenjiArai 0:d4960fcea8ff 178 ;@ 280 "port_asm.c" 1
kenjiArai 0:d4960fcea8ff 179 mov r0, #0
kenjiArai 0:d4960fcea8ff 180 msr basepri, r0
kenjiArai 0:d4960fcea8ff 181
kenjiArai 0:d4960fcea8ff 182 ;@ 0 "" 2
kenjiArai 0:d4960fcea8ff 183 ; .thumb
kenjiArai 0:d4960fcea8ff 184 THUMB
kenjiArai 0:d4960fcea8ff 185 ;.L9:
kenjiArai 0:d4960fcea8ff 186 Jmp0
kenjiArai 0:d4960fcea8ff 187 mov sp, r7
kenjiArai 0:d4960fcea8ff 188 pop {r7}
kenjiArai 0:d4960fcea8ff 189 bx lr
kenjiArai 0:d4960fcea8ff 190 ; .size vPortExitCritical, .-vPortExitCritical
kenjiArai 0:d4960fcea8ff 191 ;///////////////////////////////////////////////////////
kenjiArai 0:d4960fcea8ff 192 ; .align 2
kenjiArai 0:d4960fcea8ff 193 ALIGN 2
kenjiArai 0:d4960fcea8ff 194 ; .global xPortPendSVHandler
kenjiArai 0:d4960fcea8ff 195 GLOBAL xPortPendSVHandler
kenjiArai 0:d4960fcea8ff 196 ; .thumb
kenjiArai 0:d4960fcea8ff 197 THUMB
kenjiArai 0:d4960fcea8ff 198 ; .thumb_func
kenjiArai 0:d4960fcea8ff 199 ; .type xPortPendSVHandler, %function
kenjiArai 0:d4960fcea8ff 200 ;xPortPendSVHandler:
kenjiArai 0:d4960fcea8ff 201 xPortPendSVHandler
kenjiArai 0:d4960fcea8ff 202 ; @ Naked Function: prologue and epilogue provided by programmer.
kenjiArai 0:d4960fcea8ff 203 ; @ args = 0, pretend = 0, frame = 0
kenjiArai 0:d4960fcea8ff 204 ; @ frame_needed = 1, uses_anonymous_args = 0
kenjiArai 0:d4960fcea8ff 205 ;@ 289 "port_asm.c" 1
kenjiArai 0:d4960fcea8ff 206 mrs r0, psp
kenjiArai 0:d4960fcea8ff 207
kenjiArai 0:d4960fcea8ff 208 ldr r3, pxCurrentTCBConst
kenjiArai 0:d4960fcea8ff 209 ldr r2, [r3]
kenjiArai 0:d4960fcea8ff 210
kenjiArai 0:d4960fcea8ff 211 stmdb r0!, {r4-r11}
kenjiArai 0:d4960fcea8ff 212 str r0, [r2]
kenjiArai 0:d4960fcea8ff 213
kenjiArai 0:d4960fcea8ff 214 stmdb sp!, {r3, r14}
kenjiArai 0:d4960fcea8ff 215 mov r0, #40
kenjiArai 0:d4960fcea8ff 216 msr basepri, r0
kenjiArai 0:d4960fcea8ff 217 ; error " port_asm_mbed.s.s.LPC1768.o(Port) contains invalid call from '~PRES8 (The user did not require code to preserve 8-byte aligment of 8-byte data objects)' function to 'REQ8 (Code was permitted to depend on the 8-byte aligment of 8-byte data items)' function vTaskSwitchContext. (EL6238E)
kenjiArai 0:d4960fcea8ff 218 bl vTaskSwitchContext
kenjiArai 0:d4960fcea8ff 219
kenjiArai 0:d4960fcea8ff 220 mov r0, #0
kenjiArai 0:d4960fcea8ff 221 msr basepri, r0
kenjiArai 0:d4960fcea8ff 222 ldmia sp!, {r3, r14}
kenjiArai 0:d4960fcea8ff 223
kenjiArai 0:d4960fcea8ff 224 ldr r1, [r3]
kenjiArai 0:d4960fcea8ff 225 ldr r0, [r1]
kenjiArai 0:d4960fcea8ff 226 ldmia r0!, {r4-r11}
kenjiArai 0:d4960fcea8ff 227 msr psp, r0
kenjiArai 0:d4960fcea8ff 228 bx r14
kenjiArai 0:d4960fcea8ff 229
kenjiArai 0:d4960fcea8ff 230 ; .align 2
kenjiArai 0:d4960fcea8ff 231 ALIGN 2
kenjiArai 0:d4960fcea8ff 232 ;pxCurrentTCBConst: .word pxCurrentTCB
kenjiArai 0:d4960fcea8ff 233 pxCurrentTCBConst DCD pxCurrentTCB
kenjiArai 0:d4960fcea8ff 234
kenjiArai 0:d4960fcea8ff 235 ;@ 0 "" 2
kenjiArai 0:d4960fcea8ff 236 ; .thumb
kenjiArai 0:d4960fcea8ff 237 THUMB
kenjiArai 0:d4960fcea8ff 238 ; .size xPortPendSVHandler, .-xPortPendSVHandler
kenjiArai 0:d4960fcea8ff 239 ;///////////////////////////////////////////////////////
kenjiArai 0:d4960fcea8ff 240 ; .align 2
kenjiArai 0:d4960fcea8ff 241 ALIGN 2
kenjiArai 0:d4960fcea8ff 242 ; .global xPortSysTickHandler
kenjiArai 0:d4960fcea8ff 243 GLOBAL xPortSysTickHandler
kenjiArai 0:d4960fcea8ff 244 ; .thumb
kenjiArai 0:d4960fcea8ff 245 THUMB
kenjiArai 0:d4960fcea8ff 246 ; .thumb_func
kenjiArai 0:d4960fcea8ff 247 ; .type xPortSysTickHandler, %function
kenjiArai 0:d4960fcea8ff 248 ;xPortSysTickHandler:
kenjiArai 0:d4960fcea8ff 249 xPortSysTickHandler
kenjiArai 0:d4960fcea8ff 250 ; @ args = 0, pretend = 0, frame = 8
kenjiArai 0:d4960fcea8ff 251 ; @ frame_needed = 1, uses_anonymous_args = 0
kenjiArai 0:d4960fcea8ff 252 push {r7, lr}
kenjiArai 0:d4960fcea8ff 253 sub sp, sp, #8
kenjiArai 0:d4960fcea8ff 254 add r7, sp, #0
kenjiArai 0:d4960fcea8ff 255 ; movw r3, #:lower16:-536810236
kenjiArai 0:d4960fcea8ff 256 ; movt r3, #:upper16:-536810236
kenjiArai 0:d4960fcea8ff 257 movw r3, #0xED04
kenjiArai 0:d4960fcea8ff 258 movt r3, #0xE000
kenjiArai 0:d4960fcea8ff 259 ; movw r3, #:LDW:(-536810236)
kenjiArai 0:d4960fcea8ff 260 ; movt r3, #:HDW:(-536810236)
kenjiArai 0:d4960fcea8ff 261 ; mov32 r3, -536810236
kenjiArai 0:d4960fcea8ff 262 ; mov r2, #268435456
kenjiArai 0:d4960fcea8ff 263 str r2, [r3, #0]
kenjiArai 0:d4960fcea8ff 264 mov r3, #0
kenjiArai 0:d4960fcea8ff 265 str r3, [r7, #4]
kenjiArai 0:d4960fcea8ff 266 ;@ 329 "port_asm.c" 1
kenjiArai 0:d4960fcea8ff 267 mov r0, #40
kenjiArai 0:d4960fcea8ff 268 msr basepri, r0
kenjiArai 0:d4960fcea8ff 269
kenjiArai 0:d4960fcea8ff 270 ;@ 0 "" 2
kenjiArai 0:d4960fcea8ff 271 ; .thumb
kenjiArai 0:d4960fcea8ff 272 THUMB
kenjiArai 0:d4960fcea8ff 273 bl vTaskIncrementTick
kenjiArai 0:d4960fcea8ff 274 ;@ 333 "port_asm.c" 1
kenjiArai 0:d4960fcea8ff 275 mov r0, #0
kenjiArai 0:d4960fcea8ff 276 msr basepri, r0
kenjiArai 0:d4960fcea8ff 277
kenjiArai 0:d4960fcea8ff 278 ;@ 0 "" 2
kenjiArai 0:d4960fcea8ff 279 ; .thumb
kenjiArai 0:d4960fcea8ff 280 THUMB
kenjiArai 0:d4960fcea8ff 281 add r7, r7, #8
kenjiArai 0:d4960fcea8ff 282 mov sp, r7
kenjiArai 0:d4960fcea8ff 283 pop {r7, pc}
kenjiArai 0:d4960fcea8ff 284 ; .size xPortSysTickHandler, .-xPortSysTickHandler
kenjiArai 0:d4960fcea8ff 285 ;///////////////////////////////////////////////////////
kenjiArai 0:d4960fcea8ff 286 ; .align 2
kenjiArai 0:d4960fcea8ff 287 ALIGN 2
kenjiArai 0:d4960fcea8ff 288 ; .global xQueueGenericSendFromISR
kenjiArai 0:d4960fcea8ff 289 GLOBAL xQueueGenericSendFromISR
kenjiArai 0:d4960fcea8ff 290 ; .thumb
kenjiArai 0:d4960fcea8ff 291 THUMB
kenjiArai 0:d4960fcea8ff 292 ; .thumb_func
kenjiArai 0:d4960fcea8ff 293 ; .type xQueueGenericSendFromISR, %function
kenjiArai 0:d4960fcea8ff 294 ;xQueueGenericSendFromISR:
kenjiArai 0:d4960fcea8ff 295 xQueueGenericSendFromISR
kenjiArai 0:d4960fcea8ff 296 ; @ args = 0, pretend = 0, frame = 24
kenjiArai 0:d4960fcea8ff 297 ; @ frame_needed = 1, uses_anonymous_args = 0
kenjiArai 0:d4960fcea8ff 298 push {r7, lr}
kenjiArai 0:d4960fcea8ff 299 sub sp, sp, #24
kenjiArai 0:d4960fcea8ff 300 add r7, sp, #0
kenjiArai 0:d4960fcea8ff 301 str r0, [r7, #12]
kenjiArai 0:d4960fcea8ff 302 str r1, [r7, #8]
kenjiArai 0:d4960fcea8ff 303 str r2, [r7, #4]
kenjiArai 0:d4960fcea8ff 304 str r3, [r7, #0]
kenjiArai 0:d4960fcea8ff 305 mov r3, #0
kenjiArai 0:d4960fcea8ff 306 str r3, [r7, #20]
kenjiArai 0:d4960fcea8ff 307 ;@ 399 "port_asm.c" 1
kenjiArai 0:d4960fcea8ff 308 mov r0, #40
kenjiArai 0:d4960fcea8ff 309 msr basepri, r0
kenjiArai 0:d4960fcea8ff 310
kenjiArai 0:d4960fcea8ff 311 ;@ 0 "" 2
kenjiArai 0:d4960fcea8ff 312 ; .thumb
kenjiArai 0:d4960fcea8ff 313 THUMB
kenjiArai 0:d4960fcea8ff 314 ldr r3, [r7, #12]
kenjiArai 0:d4960fcea8ff 315 ldr r2, [r3, #56]
kenjiArai 0:d4960fcea8ff 316 ldr r3, [r7, #12]
kenjiArai 0:d4960fcea8ff 317 ldr r3, [r3, #60]
kenjiArai 0:d4960fcea8ff 318 cmp r2, r3
kenjiArai 0:d4960fcea8ff 319 ; bcs .L15
kenjiArai 0:d4960fcea8ff 320 bcs Jmp5
kenjiArai 0:d4960fcea8ff 321 ldr r0, [r7, #12]
kenjiArai 0:d4960fcea8ff 322 ldr r1, [r7, #8]
kenjiArai 0:d4960fcea8ff 323 ldr r2, [r7, #0]
kenjiArai 0:d4960fcea8ff 324 bl prvCopyDataToQueue
kenjiArai 0:d4960fcea8ff 325 ldr r3, [r7, #12]
kenjiArai 0:d4960fcea8ff 326 ldr r3, [r3, #72]
kenjiArai 0:d4960fcea8ff 327 cmp r3, #-1
kenjiArai 0:d4960fcea8ff 328 ; bne .L16
kenjiArai 0:d4960fcea8ff 329 bne Jmp1
kenjiArai 0:d4960fcea8ff 330 ldr r3, [r7, #12]
kenjiArai 0:d4960fcea8ff 331 ldr r3, [r3, #36]
kenjiArai 0:d4960fcea8ff 332 cmp r3, #0
kenjiArai 0:d4960fcea8ff 333 ; beq .L21
kenjiArai 0:d4960fcea8ff 334 beq Jmp2
kenjiArai 0:d4960fcea8ff 335 ldr r3, [r7, #12]
kenjiArai 0:d4960fcea8ff 336 add r3, r3, #36
kenjiArai 0:d4960fcea8ff 337 mov r0, r3
kenjiArai 0:d4960fcea8ff 338 bl xTaskRemoveFromEventList
kenjiArai 0:d4960fcea8ff 339 mov r3, r0
kenjiArai 0:d4960fcea8ff 340 cmp r3, #0
kenjiArai 0:d4960fcea8ff 341 ; beq .L22
kenjiArai 0:d4960fcea8ff 342 beq Jmp3
kenjiArai 0:d4960fcea8ff 343 ldr r3, [r7, #4]
kenjiArai 0:d4960fcea8ff 344 mov r2, #1
kenjiArai 0:d4960fcea8ff 345 str r2, [r3, #0]
kenjiArai 0:d4960fcea8ff 346 ; b .L18
kenjiArai 0:d4960fcea8ff 347 b Jmp4
kenjiArai 0:d4960fcea8ff 348 ;.L16:
kenjiArai 0:d4960fcea8ff 349 Jmp1
kenjiArai 0:d4960fcea8ff 350 ldr r3, [r7, #12]
kenjiArai 0:d4960fcea8ff 351 ldr r3, [r3, #72]
kenjiArai 0:d4960fcea8ff 352 add r2, r3, #1
kenjiArai 0:d4960fcea8ff 353 ldr r3, [r7, #12]
kenjiArai 0:d4960fcea8ff 354 str r2, [r3, #72]
kenjiArai 0:d4960fcea8ff 355 ; b .L18
kenjiArai 0:d4960fcea8ff 356 b Jmp4
kenjiArai 0:d4960fcea8ff 357 ;.L21:
kenjiArai 0:d4960fcea8ff 358 Jmp2
kenjiArai 0:d4960fcea8ff 359 nop
kenjiArai 0:d4960fcea8ff 360 ; b .L18
kenjiArai 0:d4960fcea8ff 361 b Jmp4
kenjiArai 0:d4960fcea8ff 362 ;.L22:
kenjiArai 0:d4960fcea8ff 363 Jmp3
kenjiArai 0:d4960fcea8ff 364 nop
kenjiArai 0:d4960fcea8ff 365 ;.L18:
kenjiArai 0:d4960fcea8ff 366 Jmp4
kenjiArai 0:d4960fcea8ff 367 mov r3, #1
kenjiArai 0:d4960fcea8ff 368 str r3, [r7, #16]
kenjiArai 0:d4960fcea8ff 369 ; b .L19
kenjiArai 0:d4960fcea8ff 370 b Jmp6
kenjiArai 0:d4960fcea8ff 371 ;.L15:
kenjiArai 0:d4960fcea8ff 372 Jmp5
kenjiArai 0:d4960fcea8ff 373 mov r3, #0
kenjiArai 0:d4960fcea8ff 374 str r3, [r7, #16]
kenjiArai 0:d4960fcea8ff 375 ;.L19:
kenjiArai 0:d4960fcea8ff 376 Jmp6
kenjiArai 0:d4960fcea8ff 377 ;@ 436 "port_asm.c" 1
kenjiArai 0:d4960fcea8ff 378 mov r0, #0
kenjiArai 0:d4960fcea8ff 379 msr basepri, r0
kenjiArai 0:d4960fcea8ff 380
kenjiArai 0:d4960fcea8ff 381 ;@ 0 "" 2
kenjiArai 0:d4960fcea8ff 382 ; .thumb
kenjiArai 0:d4960fcea8ff 383 THUMB
kenjiArai 0:d4960fcea8ff 384 ldr r3, [r7, #16]
kenjiArai 0:d4960fcea8ff 385 mov r0, r3
kenjiArai 0:d4960fcea8ff 386 add r7, r7, #24
kenjiArai 0:d4960fcea8ff 387 mov sp, r7
kenjiArai 0:d4960fcea8ff 388 pop {r7, pc}
kenjiArai 0:d4960fcea8ff 389 ; .size xQueueGenericSendFromISR, .-xQueueGenericSendFromISR
kenjiArai 0:d4960fcea8ff 390 ;///////////////////////////////////////////////////////
kenjiArai 0:d4960fcea8ff 391 ; .align 2
kenjiArai 0:d4960fcea8ff 392 ALIGN 2
kenjiArai 0:d4960fcea8ff 393 ; .global xQueueReceiveFromISR
kenjiArai 0:d4960fcea8ff 394 GLOBAL xQueueReceiveFromISR
kenjiArai 0:d4960fcea8ff 395 ; .thumb
kenjiArai 0:d4960fcea8ff 396 THUMB
kenjiArai 0:d4960fcea8ff 397 ; .thumb_func
kenjiArai 0:d4960fcea8ff 398 ; .type xQueueReceiveFromISR, %function
kenjiArai 0:d4960fcea8ff 399 ;xQueueReceiveFromISR:
kenjiArai 0:d4960fcea8ff 400 xQueueReceiveFromISR
kenjiArai 0:d4960fcea8ff 401 ; @ args = 0, pretend = 0, frame = 24
kenjiArai 0:d4960fcea8ff 402 ; @ frame_needed = 1, uses_anonymous_args = 0
kenjiArai 0:d4960fcea8ff 403 push {r7, lr}
kenjiArai 0:d4960fcea8ff 404 sub sp, sp, #24
kenjiArai 0:d4960fcea8ff 405 add r7, sp, #0
kenjiArai 0:d4960fcea8ff 406 str r0, [r7, #12]
kenjiArai 0:d4960fcea8ff 407 str r1, [r7, #8]
kenjiArai 0:d4960fcea8ff 408 str r2, [r7, #4]
kenjiArai 0:d4960fcea8ff 409 mov r3, #0
kenjiArai 0:d4960fcea8ff 410 str r3, [r7, #20]
kenjiArai 0:d4960fcea8ff 411 ;@ 449 "port_asm.c" 1
kenjiArai 0:d4960fcea8ff 412 mov r0, #40
kenjiArai 0:d4960fcea8ff 413 msr basepri, r0
kenjiArai 0:d4960fcea8ff 414
kenjiArai 0:d4960fcea8ff 415 ;@ 0 "" 2
kenjiArai 0:d4960fcea8ff 416 ; .thumb
kenjiArai 0:d4960fcea8ff 417 THUMB
kenjiArai 0:d4960fcea8ff 418 ldr r3, [r7, #12]
kenjiArai 0:d4960fcea8ff 419 ldr r3, [r3, #56]
kenjiArai 0:d4960fcea8ff 420 cmp r3, #0
kenjiArai 0:d4960fcea8ff 421 ; beq .L24
kenjiArai 0:d4960fcea8ff 422 beq Jmp11
kenjiArai 0:d4960fcea8ff 423 ldr r0, [r7, #12]
kenjiArai 0:d4960fcea8ff 424 ldr r1, [r7, #8]
kenjiArai 0:d4960fcea8ff 425 bl prvCopyDataFromQueue
kenjiArai 0:d4960fcea8ff 426 ldr r3, [r7, #12]
kenjiArai 0:d4960fcea8ff 427 ldr r3, [r3, #56]
kenjiArai 0:d4960fcea8ff 428 add r2, r3, #-1
kenjiArai 0:d4960fcea8ff 429 ldr r3, [r7, #12]
kenjiArai 0:d4960fcea8ff 430 str r2, [r3, #56]
kenjiArai 0:d4960fcea8ff 431 ldr r3, [r7, #12]
kenjiArai 0:d4960fcea8ff 432 ldr r3, [r3, #68]
kenjiArai 0:d4960fcea8ff 433 cmp r3, #-1
kenjiArai 0:d4960fcea8ff 434 ; bne .L25
kenjiArai 0:d4960fcea8ff 435 bne Jmp7
kenjiArai 0:d4960fcea8ff 436 ldr r3, [r7, #12]
kenjiArai 0:d4960fcea8ff 437 ldr r3, [r3, #16]
kenjiArai 0:d4960fcea8ff 438 cmp r3, #0
kenjiArai 0:d4960fcea8ff 439 ; beq .L30
kenjiArai 0:d4960fcea8ff 440 beq Jmp8
kenjiArai 0:d4960fcea8ff 441 ldr r3, [r7, #12]
kenjiArai 0:d4960fcea8ff 442 add r3, r3, #16
kenjiArai 0:d4960fcea8ff 443 mov r0, r3
kenjiArai 0:d4960fcea8ff 444 bl xTaskRemoveFromEventList
kenjiArai 0:d4960fcea8ff 445 mov r3, r0
kenjiArai 0:d4960fcea8ff 446 cmp r3, #0
kenjiArai 0:d4960fcea8ff 447 ; beq .L31
kenjiArai 0:d4960fcea8ff 448 beq Jmp9
kenjiArai 0:d4960fcea8ff 449 ldr r3, [r7, #4]
kenjiArai 0:d4960fcea8ff 450 mov r2, #1
kenjiArai 0:d4960fcea8ff 451 str r2, [r3, #0]
kenjiArai 0:d4960fcea8ff 452 ; b .L27
kenjiArai 0:d4960fcea8ff 453 b Jmp10
kenjiArai 0:d4960fcea8ff 454 ;.L25:
kenjiArai 0:d4960fcea8ff 455 Jmp7
kenjiArai 0:d4960fcea8ff 456 ldr r3, [r7, #12]
kenjiArai 0:d4960fcea8ff 457 ldr r3, [r3, #68]
kenjiArai 0:d4960fcea8ff 458 add r2, r3, #1
kenjiArai 0:d4960fcea8ff 459 ldr r3, [r7, #12]
kenjiArai 0:d4960fcea8ff 460 str r2, [r3, #68]
kenjiArai 0:d4960fcea8ff 461 ; b .L27
kenjiArai 0:d4960fcea8ff 462 b Jmp10
kenjiArai 0:d4960fcea8ff 463 ;.L30:
kenjiArai 0:d4960fcea8ff 464 Jmp8
kenjiArai 0:d4960fcea8ff 465 nop
kenjiArai 0:d4960fcea8ff 466 ; b .L27
kenjiArai 0:d4960fcea8ff 467 b Jmp10
kenjiArai 0:d4960fcea8ff 468 ;.L31:
kenjiArai 0:d4960fcea8ff 469 Jmp9
kenjiArai 0:d4960fcea8ff 470 nop
kenjiArai 0:d4960fcea8ff 471 ;.L27:
kenjiArai 0:d4960fcea8ff 472 Jmp10
kenjiArai 0:d4960fcea8ff 473 mov r3, #1
kenjiArai 0:d4960fcea8ff 474 str r3, [r7, #16]
kenjiArai 0:d4960fcea8ff 475 ; b .L28
kenjiArai 0:d4960fcea8ff 476 b Jmp12
kenjiArai 0:d4960fcea8ff 477 ;.L24:
kenjiArai 0:d4960fcea8ff 478 Jmp11
kenjiArai 0:d4960fcea8ff 479 mov r3, #0
kenjiArai 0:d4960fcea8ff 480 str r3, [r7, #16]
kenjiArai 0:d4960fcea8ff 481 ;.L28:
kenjiArai 0:d4960fcea8ff 482 Jmp12
kenjiArai 0:d4960fcea8ff 483 ;@ 489 "port_asm.c" 1
kenjiArai 0:d4960fcea8ff 484 mov r0, #0
kenjiArai 0:d4960fcea8ff 485 msr basepri, r0
kenjiArai 0:d4960fcea8ff 486
kenjiArai 0:d4960fcea8ff 487 ;@ 0 "" 2
kenjiArai 0:d4960fcea8ff 488 ; .thumb
kenjiArai 0:d4960fcea8ff 489 THUMB
kenjiArai 0:d4960fcea8ff 490 ldr r3, [r7, #16]
kenjiArai 0:d4960fcea8ff 491 mov r0, r3
kenjiArai 0:d4960fcea8ff 492 add r7, r7, #24
kenjiArai 0:d4960fcea8ff 493 mov sp, r7
kenjiArai 0:d4960fcea8ff 494 pop {r7, pc}
kenjiArai 0:d4960fcea8ff 495 ; .size xQueueReceiveFromISR, .-xQueueReceiveFromISR
kenjiArai 0:d4960fcea8ff 496 ;///////////////////////////////////////////////////////
kenjiArai 0:d4960fcea8ff 497 ; .section .rodata
kenjiArai 0:d4960fcea8ff 498 ; AREA Text, CODE, READONLY ??????????????????????????????????????????????
kenjiArai 0:d4960fcea8ff 499 ; .align 2
kenjiArai 0:d4960fcea8ff 500 ALIGN 2
kenjiArai 0:d4960fcea8ff 501 ;.LC0:
kenjiArai 0:d4960fcea8ff 502 Txt0
kenjiArai 0:d4960fcea8ff 503 ; .ascii "IDLE\000"
kenjiArai 0:d4960fcea8ff 504 DCB "IDLE\000",0
kenjiArai 0:d4960fcea8ff 505 ; .text
kenjiArai 0:d4960fcea8ff 506 ; AREA Port, CODE, READONLY ??????????????????????????????????????????????
kenjiArai 0:d4960fcea8ff 507 ;///////////////////////////////////////////////////////
kenjiArai 0:d4960fcea8ff 508 ; .align 2
kenjiArai 0:d4960fcea8ff 509 ALIGN 2
kenjiArai 0:d4960fcea8ff 510 ; .global vTaskStartScheduler
kenjiArai 0:d4960fcea8ff 511 GLOBAL vTaskStartScheduler
kenjiArai 0:d4960fcea8ff 512 ; .thumb
kenjiArai 0:d4960fcea8ff 513 THUMB
kenjiArai 0:d4960fcea8ff 514 ; .thumb_func
kenjiArai 0:d4960fcea8ff 515 ; .type vTaskStartScheduler, %function
kenjiArai 0:d4960fcea8ff 516 ;vTaskStartScheduler:
kenjiArai 0:d4960fcea8ff 517 vTaskStartScheduler
kenjiArai 0:d4960fcea8ff 518 ; @ args = 0, pretend = 0, frame = 8
kenjiArai 0:d4960fcea8ff 519 ; @ frame_needed = 1, uses_anonymous_args = 0
kenjiArai 0:d4960fcea8ff 520 push {r7, lr}
kenjiArai 0:d4960fcea8ff 521 sub sp, sp, #24
kenjiArai 0:d4960fcea8ff 522 add r7, sp, #16
kenjiArai 0:d4960fcea8ff 523 ; movw r3, #:lower16:.LC0
kenjiArai 0:d4960fcea8ff 524 ; movt r3, #:upper16:.LC0
kenjiArai 0:d4960fcea8ff 525 ; movw r3, # LDW Txt0
kenjiArai 0:d4960fcea8ff 526 ; movt r3, # HDW Txt0
kenjiArai 0:d4960fcea8ff 527 movw r3, #:lower16:Txt0
kenjiArai 0:d4960fcea8ff 528 movt r3, #:upper16:Txt0
kenjiArai 0:d4960fcea8ff 529 mov r2, #0
kenjiArai 0:d4960fcea8ff 530 str r2, [sp, #0]
kenjiArai 0:d4960fcea8ff 531 mov r2, #0
kenjiArai 0:d4960fcea8ff 532 str r2, [sp, #4]
kenjiArai 0:d4960fcea8ff 533 mov r2, #0
kenjiArai 0:d4960fcea8ff 534 str r2, [sp, #8]
kenjiArai 0:d4960fcea8ff 535 mov r2, #0
kenjiArai 0:d4960fcea8ff 536 str r2, [sp, #12]
kenjiArai 0:d4960fcea8ff 537 movw r0, #:lower16:prvIdleTask
kenjiArai 0:d4960fcea8ff 538 movt r0, #:upper16:prvIdleTask
kenjiArai 0:d4960fcea8ff 539 mov r1, r3
kenjiArai 0:d4960fcea8ff 540 mov r2, #64
kenjiArai 0:d4960fcea8ff 541 mov r3, #0
kenjiArai 0:d4960fcea8ff 542 bl xTaskGenericCreate
kenjiArai 0:d4960fcea8ff 543 mov r3, r0
kenjiArai 0:d4960fcea8ff 544 str r3, [r7, #4]
kenjiArai 0:d4960fcea8ff 545 ldr r3, [r7, #4]
kenjiArai 0:d4960fcea8ff 546 cmp r3, #1
kenjiArai 0:d4960fcea8ff 547 ; bne .L34
kenjiArai 0:d4960fcea8ff 548 bne Jmp13
kenjiArai 0:d4960fcea8ff 549 ;@ 514 "port_asm.c" 1
kenjiArai 0:d4960fcea8ff 550 mov r0, #40
kenjiArai 0:d4960fcea8ff 551 msr basepri, r0
kenjiArai 0:d4960fcea8ff 552
kenjiArai 0:d4960fcea8ff 553 ;@ 0 "" 2
kenjiArai 0:d4960fcea8ff 554 ; .thumb
kenjiArai 0:d4960fcea8ff 555 THUMB
kenjiArai 0:d4960fcea8ff 556 movw r3, #:lower16:xSchedulerRunning
kenjiArai 0:d4960fcea8ff 557 movt r3, #:upper16:xSchedulerRunning
kenjiArai 0:d4960fcea8ff 558 mov r2, #1
kenjiArai 0:d4960fcea8ff 559 str r2, [r3, #0]
kenjiArai 0:d4960fcea8ff 560 movw r3, #:lower16:xTickCount
kenjiArai 0:d4960fcea8ff 561 movt r3, #:upper16:xTickCount
kenjiArai 0:d4960fcea8ff 562 mov r2, #0
kenjiArai 0:d4960fcea8ff 563 str r2, [r3, #0]
kenjiArai 0:d4960fcea8ff 564 bl vConfigureTimerForRunTimeStats
kenjiArai 0:d4960fcea8ff 565 bl xPortStartScheduler
kenjiArai 0:d4960fcea8ff 566 ;.L34:
kenjiArai 0:d4960fcea8ff 567 Jmp13
kenjiArai 0:d4960fcea8ff 568 add r7, r7, #8
kenjiArai 0:d4960fcea8ff 569 mov sp, r7
kenjiArai 0:d4960fcea8ff 570 pop {r7, pc}
kenjiArai 0:d4960fcea8ff 571 ; .size vTaskStartScheduler, .-vTaskStartScheduler
kenjiArai 0:d4960fcea8ff 572 ;///////////////////////////////////////////////////////
kenjiArai 0:d4960fcea8ff 573 ; .align 2
kenjiArai 0:d4960fcea8ff 574 ALIGN 2
kenjiArai 0:d4960fcea8ff 575 ; .global vTaskEndScheduler
kenjiArai 0:d4960fcea8ff 576 GLOBAL vTaskEndScheduler
kenjiArai 0:d4960fcea8ff 577 ; .thumb
kenjiArai 0:d4960fcea8ff 578 THUMB
kenjiArai 0:d4960fcea8ff 579 ; .thumb_func
kenjiArai 0:d4960fcea8ff 580 ; .type vTaskEndScheduler, %function
kenjiArai 0:d4960fcea8ff 581 ;vTaskEndScheduler:
kenjiArai 0:d4960fcea8ff 582 vTaskEndScheduler
kenjiArai 0:d4960fcea8ff 583 ; @ args = 0, pretend = 0, frame = 0
kenjiArai 0:d4960fcea8ff 584 ; @ frame_needed = 1, uses_anonymous_args = 0
kenjiArai 0:d4960fcea8ff 585 push {r7, lr}
kenjiArai 0:d4960fcea8ff 586 add r7, sp, #0
kenjiArai 0:d4960fcea8ff 587 ;@ 546 "port_asm.c" 1
kenjiArai 0:d4960fcea8ff 588 mov r0, #40
kenjiArai 0:d4960fcea8ff 589 msr basepri, r0
kenjiArai 0:d4960fcea8ff 590
kenjiArai 0:d4960fcea8ff 591 ;@ 0 "" 2
kenjiArai 0:d4960fcea8ff 592 ; .thumb
kenjiArai 0:d4960fcea8ff 593 THUMB
kenjiArai 0:d4960fcea8ff 594 movw r3, #:lower16:xSchedulerRunning
kenjiArai 0:d4960fcea8ff 595 movt r3, #:upper16:xSchedulerRunning
kenjiArai 0:d4960fcea8ff 596 mov r2, #0
kenjiArai 0:d4960fcea8ff 597 str r2, [r3, #0]
kenjiArai 0:d4960fcea8ff 598 bl vPortEndScheduler
kenjiArai 0:d4960fcea8ff 599 pop {r7, pc}
kenjiArai 0:d4960fcea8ff 600 ; .size vTaskEndScheduler, .-vTaskEndScheduler
kenjiArai 0:d4960fcea8ff 601 ; .ident "GCC: (Sourcery G++ Lite 2010q1-188) 4.4.1"
kenjiArai 0:d4960fcea8ff 602 ALIGN 2
kenjiArai 0:d4960fcea8ff 603 nop
kenjiArai 0:d4960fcea8ff 604 nop
kenjiArai 0:d4960fcea8ff 605 nop
kenjiArai 0:d4960fcea8ff 606 END