os_mbox.lst
来自「atmega单片机用的ucos系统 占用内存适中 是atmega单片机合适的操作」· LST 代码 · 共 1,285 行 · 第 1/5 页
LST
1,285 行
431:OSsrc/os_mbox.c **** } else {
432:OSsrc/os_mbox.c **** (void)OS_EventTaskRdy(pevent, msg, OS_STAT_MBOX); /* No, Post to HPT waiting on mbox
838 .LM126:
839 02ee 42E0 ldi r20,lo8(2)
840 02f0 CE01 movw r24,r28
841 02f2 0E94 0000 call OS_EventTaskRdy
842 .L50:
433:OSsrc/os_mbox.c **** }
434:OSsrc/os_mbox.c **** OS_EXIT_CRITICAL();
844 .LM127:
845 /* #APP */
846 02f6 0F90 pop __tmp_reg__
847 02f8 0FBE out __SREG__,__tmp_reg__
435:OSsrc/os_mbox.c **** OS_Sched(); /* Find HPT ready to run
849 .LM128:
850 /* #NOAPP */
851 02fa 0E94 0000 call OS_Sched
852 02fe 0DC0 rjmp .L54
853 .L45:
436:OSsrc/os_mbox.c **** return (OS_NO_ERR);
437:OSsrc/os_mbox.c **** }
438:OSsrc/os_mbox.c **** if (pevent->OSEventPtr != (void *)0) { /* Make sure mailbox doesn't already have a m
855 .LM129:
856 0300 8C81 ldd r24,Y+4
857 0302 9D81 ldd r25,Y+5
858 0304 892B or r24,r25
859 0306 29F0 breq .L51
439:OSsrc/os_mbox.c **** OS_EXIT_CRITICAL();
861 .LM130:
862 /* #APP */
863 0308 0F90 pop __tmp_reg__
864 030a 0FBE out __SREG__,__tmp_reg__
440:OSsrc/os_mbox.c **** return (OS_MBOX_FULL);
866 .LM131:
867 /* #NOAPP */
868 030c 84E1 ldi r24,lo8(20)
869 030e 90E0 ldi r25,hi8(20)
870 0310 06C0 rjmp .L41
871 .L51:
441:OSsrc/os_mbox.c **** }
442:OSsrc/os_mbox.c **** pevent->OSEventPtr = msg; /* Place message in mailbox
873 .LM132:
874 0312 6C83 std Y+4,r22
875 0314 7D83 std Y+5,r23
443:OSsrc/os_mbox.c **** OS_EXIT_CRITICAL();
877 .LM133:
878 /* #APP */
879 0316 0F90 pop __tmp_reg__
880 0318 0FBE out __SREG__,__tmp_reg__
881 /* #NOAPP */
882 .L54:
444:OSsrc/os_mbox.c **** return (OS_NO_ERR);
884 .LM134:
885 031a 80E0 ldi r24,lo8(0)
886 031c 90E0 ldi r25,hi8(0)
887 .L41:
888 /* epilogue: frame size=0 */
889 031e DF91 pop r29
890 0320 CF91 pop r28
891 0322 1F91 pop r17
892 0324 0F91 pop r16
893 0326 0895 ret
894 /* epilogue end (size=5) */
895 /* function OSMboxPostOpt size 78 (69) */
897 .Lscope5:
901 .global OSMboxQuery
903 OSMboxQuery:
445:OSsrc/os_mbox.c **** }
446:OSsrc/os_mbox.c **** #endif
447:OSsrc/os_mbox.c ****
448:OSsrc/os_mbox.c **** /*$PAGE*/
449:OSsrc/os_mbox.c **** /*
450:OSsrc/os_mbox.c **** ***************************************************************************************************
451:OSsrc/os_mbox.c **** * QUERY A MESSAGE MAILBOX
452:OSsrc/os_mbox.c **** *
453:OSsrc/os_mbox.c **** * Description: This function obtains information about a message mailbox.
454:OSsrc/os_mbox.c **** *
455:OSsrc/os_mbox.c **** * Arguments : pevent is a pointer to the event control block associated with the desired ma
456:OSsrc/os_mbox.c **** *
457:OSsrc/os_mbox.c **** * p_mbox_data is a pointer to a structure that will contain information about the me
458:OSsrc/os_mbox.c **** * mailbox.
459:OSsrc/os_mbox.c **** *
460:OSsrc/os_mbox.c **** * Returns : OS_NO_ERR The call was successful and the message was sent
461:OSsrc/os_mbox.c **** * OS_ERR_EVENT_TYPE If you are attempting to obtain data from a non mailbox.
462:OSsrc/os_mbox.c **** * OS_ERR_PEVENT_NULL If 'pevent' is a NULL pointer
463:OSsrc/os_mbox.c **** ***************************************************************************************************
464:OSsrc/os_mbox.c **** */
465:OSsrc/os_mbox.c ****
466:OSsrc/os_mbox.c **** #if OS_MBOX_QUERY_EN > 0
467:OSsrc/os_mbox.c **** INT8U OSMboxQuery (OS_EVENT *pevent, OS_MBOX_DATA *p_mbox_data)
468:OSsrc/os_mbox.c **** {
905 .LM135:
906 /* prologue: frame size=0 */
907 0328 CF93 push r28
908 032a DF93 push r29
909 /* prologue end (size=2) */
910 032c FC01 movw r30,r24
911 032e DB01 movw r26,r22
469:OSsrc/os_mbox.c **** INT8U *psrc;
470:OSsrc/os_mbox.c **** INT8U *pdest;
471:OSsrc/os_mbox.c **** #if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status regis
472:OSsrc/os_mbox.c **** OS_CPU_SR cpu_sr;
473:OSsrc/os_mbox.c ****
474:OSsrc/os_mbox.c ****
475:OSsrc/os_mbox.c ****
476:OSsrc/os_mbox.c **** cpu_sr = 0; /* Prevent compiler warning
477:OSsrc/os_mbox.c **** #endif
478:OSsrc/os_mbox.c **** #if OS_ARG_CHK_EN > 0
479:OSsrc/os_mbox.c **** if (pevent == (OS_EVENT *)0) { /* Validate 'pevent'
913 .LM136:
914 0330 892B or r24,r25
915 0332 19F4 brne .L56
480:OSsrc/os_mbox.c **** return (OS_ERR_PEVENT_NULL);
917 .LM137:
918 0334 84E0 ldi r24,lo8(4)
919 0336 90E0 ldi r25,hi8(4)
920 0338 24C0 rjmp .L55
921 .L56:
481:OSsrc/os_mbox.c **** }
482:OSsrc/os_mbox.c **** #endif
483:OSsrc/os_mbox.c **** if (pevent->OSEventType != OS_EVENT_TYPE_MBOX) { /* Validate event block type
923 .LM138:
924 033a 8081 ld r24,Z
925 033c 8130 cpi r24,lo8(1)
926 033e 19F0 breq .L57
484:OSsrc/os_mbox.c **** return (OS_ERR_EVENT_TYPE);
928 .LM139:
929 0340 81E0 ldi r24,lo8(1)
930 0342 90E0 ldi r25,hi8(1)
931 0344 1EC0 rjmp .L55
932 .L57:
485:OSsrc/os_mbox.c **** }
486:OSsrc/os_mbox.c **** OS_ENTER_CRITICAL();
934 .LM140:
935 /* #APP */
936 0346 0FB6 in __tmp_reg__,__SREG__
937 0348 F894 cli
938 034a 0F92 push __tmp_reg__
487:OSsrc/os_mbox.c **** p_mbox_data->OSEventGrp = pevent->OSEventGrp; /* Copy message mailbox wait list
940 .LM141:
941 /* #NOAPP */
942 034c 8181 ldd r24,Z+1
943 034e EB01 movw r28,r22
944 0350 8A87 std Y+10,r24
488:OSsrc/os_mbox.c **** psrc = &pevent->OSEventTbl[0];
489:OSsrc/os_mbox.c **** pdest = &p_mbox_data->OSEventTbl[0];
490:OSsrc/os_mbox.c ****
491:OSsrc/os_mbox.c **** #if OS_EVENT_TBL_SIZE > 0
492:OSsrc/os_mbox.c **** *pdest++ = *psrc++;
946 .LM142:
947 0352 8681 ldd r24,Z+6
948 0354 8A83 std Y+2,r24
493:OSsrc/os_mbox.c **** #endif
494:OSsrc/os_mbox.c ****
495:OSsrc/os_mbox.c **** #if OS_EVENT_TBL_SIZE > 1
496:OSsrc/os_mbox.c **** *pdest++ = *psrc++;
950 .LM143:
951 0356 8781 ldd r24,Z+7
952 0358 8B83 std Y+3,r24
497:OSsrc/os_mbox.c **** #endif
498:OSsrc/os_mbox.c ****
499:OSsrc/os_mbox.c **** #if OS_EVENT_TBL_SIZE > 2
500:OSsrc/os_mbox.c **** *pdest++ = *psrc++;
954 .LM144:
955 035a 8085 ldd r24,Z+8
956 035c 8C83 std Y+4,r24
501:OSsrc/os_mbox.c **** #endif
502:OSsrc/os_mbox.c ****
503:OSsrc/os_mbox.c **** #if OS_EVENT_TBL_SIZE > 3
504:OSsrc/os_mbox.c **** *pdest++ = *psrc++;
958 .LM145:
959 035e 8185 ldd r24,Z+9
960 0360 8D83 std Y+5,r24
505:OSsrc/os_mbox.c **** #endif
506:OSsrc/os_mbox.c ****
507:OSsrc/os_mbox.c **** #if OS_EVENT_TBL_SIZE > 4
508:OSsrc/os_mbox.c **** *pdest++ = *psrc++;
962 .LM146:
963 0362 8285 ldd r24,Z+10
964 0364 8E83 std Y+6,r24
509:OSsrc/os_mbox.c **** #endif
510:OSsrc/os_mbox.c ****
511:OSsrc/os_mbox.c **** #if OS_EVENT_TBL_SIZE > 5
512:OSsrc/os_mbox.c **** *pdest++ = *psrc++;
966 .LM147:
967 0366 8385 ldd r24,Z+11
968 0368 8F83 std Y+7,r24
513:OSsrc/os_mbox.c **** #endif
514:OSsrc/os_mbox.c ****
515:OSsrc/os_mbox.c **** #if OS_EVENT_TBL_SIZE > 6
516:OSsrc/os_mbox.c **** *pdest++ = *psrc++;
970 .LM148:
971 036a 8485 ldd r24,Z+12
972 036c 8887 std Y+8,r24
517:OSsrc/os_mbox.c **** #endif
518:OSsrc/os_mbox.c ****
519:OSsrc/os_mbox.c **** #if OS_EVENT_TBL_SIZE > 7
520:OSsrc/os_mbox.c **** *pdest = *psrc;
974 .LM149:
975 036e 8585 ldd r24,Z+13
976 0370 8987 std Y+9,r24
521:OSsrc/os_mbox.c **** #endif
522:OSsrc/os_mbox.c **** p_mbox_data->OSMsg = pevent->OSEventPtr; /* Get message from mailbox
978 .LM150:
979 0372 8481 ldd r24,Z+4
980 0374 9581 ldd r25,Z+5
981 0376 8D93 st X+,r24
982 0378 9C93 st X,r25
523:OSsrc/os_mbox.c **** OS_EXIT_CRITICAL();
984 .LM151:
985 /* #APP */
986 037a 0F90 pop __tmp_reg__
987 037c 0FBE out __SREG__,__tmp_reg__
524:OSsrc/os_mbox.c **** return (OS_NO_ERR);
989 .LM152:
990 /* #NOAPP */
991 037e 80E0 ldi r24,lo8(0)
992 0380 90E0 ldi r25,hi8(0)
993 .L55:
994 /* epilogue: frame size=0 */
995 0382 DF91 pop r29
996 0384 CF91 pop r28
997 0386 0895 ret
998 /* epilogue end (size=3) */
999 /* function OSMboxQuery size 53 (48) */
1001 .Lscope6:
1002 .text
1004 Letext:
1005 /* File "OSsrc/os_mbox.c": code 510 = 0x01fe ( 469), prologues 17, epilogues 24 */
DEFINED SYMBOLS
*ABS*:00000000 os_mbox.c
*ABS*:0000003f __SREG__
*ABS*:0000003e __SP_H__
*ABS*:0000003d __SP_L__
*ABS*:00000000 __tmp_reg__
*ABS*:00000001 __zero_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccA5aaaa.s:87 .text:00000000 OSMboxAccept
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccA5aaaa.s:149 .text:0000002a OSMboxCreate
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccA5aaaa.s:245 .text:00000084 OSMboxDel
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccA5aaaa.s:463 .text:0000016a OSMboxPend
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccA5aaaa.s:649 .text:00000236 OSMboxPost
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccA5aaaa.s:766 .text:0000029e OSMboxPostOpt
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccA5aaaa.s:903 .text:00000328 OSMboxQuery
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccA5aaaa.s:1004 .text:00000388 Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
OSIntNesting
OSEventFreeList
OS_EventWaitListInit
OS_EventTaskRdy
OS_Sched
OSTCBCur
OS_EventTaskWait
OS_EventTO
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?