os_time.lst
来自「称植到lpc2124上的UCOS2.85版 是本人初学移植和ARM的成果 可」· LST 代码 · 共 748 行 · 第 1/3 页
LST
748 行
473 01cc 83E4 ldi r24,lo8(67)
474 01ce 90E0 ldi r25,hi8(67)
475 01d0 35C0 rjmp .L19
476 .L22:
188:../OSsrc/os_time.c **** }
189:../OSsrc/os_time.c **** if (ptcb->OSTCBDly == 0) { /* See if task is delayed
478 .LM45:
479 01d2 ED01 movw r28,r26
480 01d4 8F89 ldd r24,Y+23
481 01d6 988D ldd r25,Y+24
482 01d8 892B or r24,r25
483 01da 21F4 brne .L23
190:../OSsrc/os_time.c **** OS_EXIT_CRITICAL();
485 .LM46:
486 /* #APP */
487 01dc 7894 sei
191:../OSsrc/os_time.c **** return (OS_ERR_TIME_NOT_DLY); /* Indicate that task was not delaye
489 .LM47:
490 /* #NOAPP */
491 01de 80E5 ldi r24,lo8(80)
492 01e0 90E0 ldi r25,hi8(80)
493 01e2 2CC0 rjmp .L19
494 .L23:
192:../OSsrc/os_time.c **** }
193:../OSsrc/os_time.c ****
194:../OSsrc/os_time.c **** ptcb->OSTCBDly = 0; /* Clear the time delay
496 .LM48:
497 01e4 FD01 movw r30,r26
498 01e6 108E std Z+24,__zero_reg__
499 01e8 178A std Z+23,__zero_reg__
195:../OSsrc/os_time.c **** if ((ptcb->OSTCBStat & OS_STAT_PEND_ANY) != OS_STAT_RDY) {
501 .LM49:
502 01ea 218D ldd r18,Z+25
503 01ec 822F mov r24,r18
504 01ee 9927 clr r25
505 01f0 8773 andi r24,lo8(55)
506 01f2 9070 andi r25,hi8(55)
507 01f4 892B or r24,r25
508 01f6 29F0 breq .L24
196:../OSsrc/os_time.c **** ptcb->OSTCBStat &= ~OS_STAT_PEND_ANY; /* Yes, Clear status flag
510 .LM50:
511 01f8 287C andi r18,lo8(-56)
512 01fa 218F std Z+25,r18
197:../OSsrc/os_time.c **** ptcb->OSTCBStatPend = OS_STAT_PEND_TO; /* Indicate PEND timeout
514 .LM51:
515 01fc 81E0 ldi r24,lo8(1)
516 01fe 828F std Z+26,r24
517 0200 02C0 rjmp .L25
518 .L24:
198:../OSsrc/os_time.c **** } else {
199:../OSsrc/os_time.c **** ptcb->OSTCBStatPend = OS_STAT_PEND_OK;
520 .LM52:
521 0202 ED01 movw r28,r26
522 0204 1A8E std Y+26,__zero_reg__
523 .L25:
200:../OSsrc/os_time.c **** }
201:../OSsrc/os_time.c **** if ((ptcb->OSTCBStat & OS_STAT_SUSPEND) == OS_STAT_RDY) { /* Is task suspended?
525 .LM53:
526 0206 FD01 movw r30,r26
527 0208 818D ldd r24,Z+25
528 020a 83FD sbrc r24,3
529 020c 14C0 rjmp .L26
202:../OSsrc/os_time.c **** OSRdyGrp |= ptcb->OSTCBBitY; /* No, Make ready
531 .LM54:
532 020e 8091 0000 lds r24,OSRdyGrp
533 0212 978D ldd r25,Z+31
534 0214 892B or r24,r25
535 0216 8093 0000 sts OSRdyGrp,r24
203:../OSsrc/os_time.c **** OSRdyTbl[ptcb->OSTCBY] |= ptcb->OSTCBBitX;
537 .LM55:
538 021a 858D ldd r24,Z+29
539 021c E82F mov r30,r24
540 021e FF27 clr r31
541 0220 E050 subi r30,lo8(-(OSRdyTbl))
542 0222 F040 sbci r31,hi8(-(OSRdyTbl))
543 0224 8081 ld r24,Z
544 0226 ED01 movw r28,r26
545 0228 9E8D ldd r25,Y+30
546 022a 892B or r24,r25
547 022c 8083 st Z,r24
204:../OSsrc/os_time.c **** OS_EXIT_CRITICAL();
549 .LM56:
550 /* #APP */
551 022e 7894 sei
205:../OSsrc/os_time.c **** OS_Sched(); /* See if this is new highest priori
553 .LM57:
554 /* #NOAPP */
555 0230 0E94 0000 call OS_Sched
556 0234 01C0 rjmp .L27
557 .L26:
206:../OSsrc/os_time.c **** } else {
207:../OSsrc/os_time.c **** OS_EXIT_CRITICAL(); /* Task may be suspended
559 .LM58:
560 /* #APP */
561 0236 7894 sei
562 /* #NOAPP */
563 .L27:
208:../OSsrc/os_time.c **** }
209:../OSsrc/os_time.c **** return (OS_ERR_NONE);
565 .LM59:
566 0238 80E0 ldi r24,lo8(0)
567 023a 90E0 ldi r25,hi8(0)
568 .L19:
569 /* epilogue: frame size=0 */
570 023c DF91 pop r29
571 023e CF91 pop r28
572 0240 0895 ret
573 /* epilogue end (size=3) */
574 /* function OSTimeDlyResume size 89 (84) */
579 .Lscope2:
581 .global OSTimeGet
583 OSTimeGet:
210:../OSsrc/os_time.c **** }
211:../OSsrc/os_time.c **** #endif
212:../OSsrc/os_time.c **** /*$PAGE*/
213:../OSsrc/os_time.c **** /*
214:../OSsrc/os_time.c **** ***************************************************************************************************
215:../OSsrc/os_time.c **** * GET CURRENT SYSTEM TIME
216:../OSsrc/os_time.c **** *
217:../OSsrc/os_time.c **** * Description: This function is used by your application to obtain the current value of the 32-bit
218:../OSsrc/os_time.c **** * counter which keeps track of the number of clock ticks.
219:../OSsrc/os_time.c **** *
220:../OSsrc/os_time.c **** * Arguments : none
221:../OSsrc/os_time.c **** *
222:../OSsrc/os_time.c **** * Returns : The current value of OSTime
223:../OSsrc/os_time.c **** ***************************************************************************************************
224:../OSsrc/os_time.c **** */
225:../OSsrc/os_time.c ****
226:../OSsrc/os_time.c **** #if OS_TIME_GET_SET_EN > 0
227:../OSsrc/os_time.c **** INT32U OSTimeGet (void)
228:../OSsrc/os_time.c **** {
585 .LM60:
586 /* prologue: frame size=0 */
587 /* prologue end (size=0) */
229:../OSsrc/os_time.c **** INT32U ticks;
230:../OSsrc/os_time.c **** #if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register
231:../OSsrc/os_time.c **** OS_CPU_SR cpu_sr = 0;
232:../OSsrc/os_time.c **** #endif
233:../OSsrc/os_time.c ****
234:../OSsrc/os_time.c ****
235:../OSsrc/os_time.c ****
236:../OSsrc/os_time.c **** OS_ENTER_CRITICAL();
589 .LM61:
590 /* #APP */
591 0242 F894 cli
237:../OSsrc/os_time.c **** ticks = OSTime;
593 .LM62:
594 /* #NOAPP */
595 0244 8091 0000 lds r24,OSTime
596 0248 9091 0000 lds r25,(OSTime)+1
597 024c A091 0000 lds r26,(OSTime)+2
598 0250 B091 0000 lds r27,(OSTime)+3
238:../OSsrc/os_time.c **** OS_EXIT_CRITICAL();
600 .LM63:
601 /* #APP */
602 0254 7894 sei
239:../OSsrc/os_time.c **** return (ticks);
240:../OSsrc/os_time.c **** }
604 .LM64:
605 /* #NOAPP */
606 0256 BC01 movw r22,r24
607 0258 CD01 movw r24,r26
608 /* epilogue: frame size=0 */
609 025a 0895 ret
610 /* epilogue end (size=1) */
611 /* function OSTimeGet size 15 (14) */
616 .Lscope3:
619 .global OSTimeSet
621 OSTimeSet:
241:../OSsrc/os_time.c **** #endif
242:../OSsrc/os_time.c ****
243:../OSsrc/os_time.c **** /*
244:../OSsrc/os_time.c **** ***************************************************************************************************
245:../OSsrc/os_time.c **** * SET SYSTEM CLOCK
246:../OSsrc/os_time.c **** *
247:../OSsrc/os_time.c **** * Description: This function sets the 32-bit counter which keeps track of the number of clock ticks
248:../OSsrc/os_time.c **** *
249:../OSsrc/os_time.c **** * Arguments : ticks specifies the new value that OSTime needs to take.
250:../OSsrc/os_time.c **** *
251:../OSsrc/os_time.c **** * Returns : none
252:../OSsrc/os_time.c **** ***************************************************************************************************
253:../OSsrc/os_time.c **** */
254:../OSsrc/os_time.c ****
255:../OSsrc/os_time.c **** #if OS_TIME_GET_SET_EN > 0
256:../OSsrc/os_time.c **** void OSTimeSet (INT32U ticks)
257:../OSsrc/os_time.c **** {
623 .LM65:
624 /* prologue: frame size=0 */
625 /* prologue end (size=0) */
626 025c DC01 movw r26,r24
627 025e CB01 movw r24,r22
258:../OSsrc/os_time.c **** #if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register
259:../OSsrc/os_time.c **** OS_CPU_SR cpu_sr = 0;
260:../OSsrc/os_time.c **** #endif
261:../OSsrc/os_time.c ****
262:../OSsrc/os_time.c ****
263:../OSsrc/os_time.c ****
264:../OSsrc/os_time.c **** OS_ENTER_CRITICAL();
629 .LM66:
630 /* #APP */
631 0260 F894 cli
265:../OSsrc/os_time.c **** OSTime = ticks;
633 .LM67:
634 /* #NOAPP */
635 0262 8093 0000 sts OSTime,r24
636 0266 9093 0000 sts (OSTime)+1,r25
637 026a A093 0000 sts (OSTime)+2,r26
638 026e B093 0000 sts (OSTime)+3,r27
266:../OSsrc/os_time.c **** OS_EXIT_CRITICAL();
640 .LM68:
641 /* #APP */
642 0272 7894 sei
643 /* #NOAPP */
644 /* epilogue: frame size=0 */
645 0274 0895 ret
646 /* epilogue end (size=1) */
647 /* function OSTimeSet size 15 (14) */
649 .Lscope4:
650 .text
652 Letext:
653 /* File "../OSsrc/os_time.c": code 328 = 0x0148 ( 295), prologues 14, epilogues 19 */
DEFINED SYMBOLS
*ABS*:00000000 os_time.c
C:\WINDOWS\TEMP/cckbbaaa.s:3 *ABS*:0000003f __SREG__
C:\WINDOWS\TEMP/cckbbaaa.s:4 *ABS*:0000003e __SP_H__
C:\WINDOWS\TEMP/cckbbaaa.s:5 *ABS*:0000003d __SP_L__
C:\WINDOWS\TEMP/cckbbaaa.s:6 *ABS*:00000000 __tmp_reg__
C:\WINDOWS\TEMP/cckbbaaa.s:7 *ABS*:00000001 __zero_reg__
C:\WINDOWS\TEMP/cckbbaaa.s:110 .text:00000000 OSTimeDly
C:\WINDOWS\TEMP/cckbbaaa.s:194 .text:00000058 OSTimeDlyHMSM
C:\WINDOWS\TEMP/cckbbaaa.s:417 .text:0000019c OSTimeDlyResume
C:\WINDOWS\TEMP/cckbbaaa.s:583 .text:00000242 OSTimeGet
C:\WINDOWS\TEMP/cckbbaaa.s:621 .text:0000025c OSTimeSet
C:\WINDOWS\TEMP/cckbbaaa.s:652 .text:00000276 Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
OSIntNesting
OSTCBCur
OSRdyTbl
OSRdyGrp
OS_Sched
__mulsi3
__udivmodsi4
OSTCBPrioTbl
OSTime
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?