📄 os_time.lst
字号:
194 ptcb->OSTCBStatPend = OS_STAT_PEND_OK;
\ ??OSTimeDlyResume_5:
\ 0000006E 0020 MOVS R0,#+0
\ 00000070 85F83500 STRB R0,[R5, #+53]
195 }
196 if ((ptcb->OSTCBStat & OS_STAT_SUSPEND) == OS_STAT_RDY) { /* Is task suspended? */
\ ??OSTimeDlyResume_6:
\ 00000074 95F83400 LDRB R0,[R5, #+52]
\ 00000078 0007 LSLS R0,R0,#+28
\ 0000007A 17D4 BMI.N ??OSTimeDlyResume_7
197 OSRdyGrp |= ptcb->OSTCBBitY; /* No, Make ready */
\ 0000007C .... LDR.N R0,??DataTable4_4
\ 0000007E 0078 LDRB R0,[R0, #+0]
\ 00000080 95F83A10 LDRB R1,[R5, #+58]
\ 00000084 0843 ORRS R0,R1,R0
\ 00000086 .... LDR.N R1,??DataTable4_4
\ 00000088 0870 STRB R0,[R1, #+0]
198 OSRdyTbl[ptcb->OSTCBY] |= ptcb->OSTCBBitX;
\ 0000008A 95F83800 LDRB R0,[R5, #+56]
\ 0000008E .... LDR.N R1,??DataTable4_3
\ 00000090 405C LDRB R0,[R0, R1]
\ 00000092 95F83910 LDRB R1,[R5, #+57]
\ 00000096 0843 ORRS R0,R1,R0
\ 00000098 95F83810 LDRB R1,[R5, #+56]
\ 0000009C .... LDR.N R2,??DataTable4_3
\ 0000009E 8854 STRB R0,[R1, R2]
199 OS_EXIT_CRITICAL();
\ 000000A0 3000 MOVS R0,R6
\ 000000A2 ........ BL OS_CPU_SR_Restore
200 OS_Sched(); /* See if this is new highest priority */
\ 000000A6 ........ BL OS_Sched
\ 000000AA 02E0 B.N ??OSTimeDlyResume_8
201 } else {
202 OS_EXIT_CRITICAL(); /* Task may be suspended */
\ ??OSTimeDlyResume_7:
\ 000000AC 3000 MOVS R0,R6
\ 000000AE ........ BL OS_CPU_SR_Restore
203 }
204 return (OS_ERR_NONE);
\ ??OSTimeDlyResume_8:
\ 000000B2 0020 MOVS R0,#+0
\ ??OSTimeDlyResume_1:
\ 000000B4 70BD POP {R4-R6,PC} ;; return
205 }
206 #endif
207 /*$PAGE*/
208 /*
209 *********************************************************************************************************
210 * GET CURRENT SYSTEM TIME
211 *
212 * Description: This function is used by your application to obtain the current value of the 32-bit
213 * counter which keeps track of the number of clock ticks.
214 *
215 * Arguments : none
216 *
217 * Returns : The current value of OSTime
218 *********************************************************************************************************
219 */
220
221 #if OS_TIME_GET_SET_EN > 0u
\ In section .text, align 2, keep-with-next
222 INT32U OSTimeGet (void)
223 {
\ OSTimeGet:
\ 00000000 38B5 PUSH {R3-R5,LR}
224 INT32U ticks;
225 #if OS_CRITICAL_METHOD == 3u /* Allocate storage for CPU status register */
226 OS_CPU_SR cpu_sr = 0u;
\ 00000002 0025 MOVS R5,#+0
227 #endif
228
229
230
231 OS_ENTER_CRITICAL();
\ 00000004 ........ BL OS_CPU_SR_Save
\ 00000008 0500 MOVS R5,R0
232 ticks = OSTime;
\ 0000000A .... LDR.N R0,??DataTable4_6
\ 0000000C 0068 LDR R0,[R0, #+0]
\ 0000000E 0400 MOVS R4,R0
233 OS_EXIT_CRITICAL();
\ 00000010 2800 MOVS R0,R5
\ 00000012 ........ BL OS_CPU_SR_Restore
234 return (ticks);
\ 00000016 2000 MOVS R0,R4
\ 00000018 32BD POP {R1,R4,R5,PC} ;; return
235 }
236 #endif
237
238 /*
239 *********************************************************************************************************
240 * SET SYSTEM CLOCK
241 *
242 * Description: This function sets the 32-bit counter which keeps track of the number of clock ticks.
243 *
244 * Arguments : ticks specifies the new value that OSTime needs to take.
245 *
246 * Returns : none
247 *********************************************************************************************************
248 */
249
250 #if OS_TIME_GET_SET_EN > 0u
\ In section .text, align 2, keep-with-next
251 void OSTimeSet (INT32U ticks)
252 {
\ OSTimeSet:
\ 00000000 38B5 PUSH {R3-R5,LR}
\ 00000002 0400 MOVS R4,R0
253 #if OS_CRITICAL_METHOD == 3u /* Allocate storage for CPU status register */
254 OS_CPU_SR cpu_sr = 0u;
\ 00000004 0025 MOVS R5,#+0
255 #endif
256
257
258
259 OS_ENTER_CRITICAL();
\ 00000006 ........ BL OS_CPU_SR_Save
\ 0000000A 0500 MOVS R5,R0
260 OSTime = ticks;
\ 0000000C .... LDR.N R0,??DataTable4_6
\ 0000000E 0460 STR R4,[R0, #+0]
261 OS_EXIT_CRITICAL();
\ 00000010 2800 MOVS R0,R5
\ 00000012 ........ BL OS_CPU_SR_Restore
262 }
\ 00000016 31BD POP {R0,R4,R5,PC} ;; return
\ In section .text, align 4, keep-with-next
\ ??DataTable4:
\ 00000000 ........ DC32 OSIntNesting
\ In section .text, align 4, keep-with-next
\ ??DataTable4_1:
\ 00000000 ........ DC32 OSLockNesting
\ In section .text, align 4, keep-with-next
\ ??DataTable4_2:
\ 00000000 ........ DC32 OSTCBCur
\ In section .text, align 4, keep-with-next
\ ??DataTable4_3:
\ 00000000 ........ DC32 OSRdyTbl
\ In section .text, align 4, keep-with-next
\ ??DataTable4_4:
\ 00000000 ........ DC32 OSRdyGrp
\ In section .text, align 4, keep-with-next
\ ??DataTable4_5:
\ 00000000 ........ DC32 OSTCBPrioTbl
\ In section .text, align 4, keep-with-next
\ ??DataTable4_6:
\ 00000000 ........ DC32 OSTime
263 #endif
Maximum stack usage in bytes:
Function .cstack
-------- -------
OSTimeDly 16
OSTimeDlyHMSM 24
OSTimeDlyResume 16
OSTimeGet 16
OSTimeSet 16
Section sizes:
Function/Label Bytes
-------------- -----
OSTimeDly 110
OSTimeDlyHMSM 98
OSTimeDlyResume 182
OSTimeGet 26
OSTimeSet 24
??DataTable4 4
??DataTable4_1 4
??DataTable4_2 4
??DataTable4_3 4
??DataTable4_4 4
??DataTable4_5 4
??DataTable4_6 4
468 bytes in section .text
468 bytes of CODE memory
Errors: none
Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -