📄 os_mbox.ls1
字号:
456 ; } else {
457 ; OS_EventTaskRdy(pevent, msg, OS_STAT_MBOX); /* No, Post to HPT waiting on
mbox */
458 ; }
459 ; OS_EXIT_CRITICAL();
460 ; OS_Sched(); /* Find highest priority task
ready to run */
461 ; return (OS_NO_ERR);
462 ; }
463 ; if (pevent->OSEventPtr != (void *)0) { /* Make sure mailbox doesn't alread
y have a msg */
A51 MACRO ASSEMBLER OS_MBOX 08/08/2005 11:36:44 PAGE 10
464 ; OS_EXIT_CRITICAL();
465 ; return (OS_MBOX_FULL);
466 ; }
467 ; pevent->OSEventPtr = msg; /* Place message in mailbox
*/
468 ; OS_EXIT_CRITICAL();
469 ; return (OS_NO_ERR);
470 ; }
471 ; #endif
472 ;
473 ; /*$PAGE*/
474 ; /*
475 ; *****************************************************************************************
****************
476 ; * QUERY A MESSAGE MAILBOX
477 ; *
478 ; * Description: This function obtains information about a message mailbox.
479 ; *
480 ; * Arguments : pevent is a pointer to the event control block associated with the
desired mailbox
481 ; *
482 ; * pdata is a pointer to a structure that will contain information ab
out the message
483 ; * mailbox.
484 ; *
485 ; * Returns : OS_NO_ERR The call was successful and the message was sent
486 ; * OS_ERR_EVENT_TYPE If you are attempting to obtain data from a non mailbo
x.
487 ; * OS_ERR_PEVENT_NULL If 'pevent' is a NULL pointer
488 ; *****************************************************************************************
****************
489 ; */
490 ;
491 ; #if OS_MBOX_QUERY_EN > 0
492 ; INT8U OSMboxQuery (OS_EVENT *pevent, OS_MBOX_DATA *ppdata)
493 ; {
494 ;
495 ; INT8U *psrc;
496 ; INT8U *pdest;
497 ;
498 ;
499 ; #if OS_ARG_CHK_EN > 0
500 ; if (pevent == (OS_EVENT *)0) { /* Validate 'pevent'
*/
501 ; return (OS_ERR_PEVENT_NULL);
502 ; }
503 ; if (pevent->OSEventType != OS_EVENT_TYPE_MBOX) { /* Validate event block type
*/
504 ; return (OS_ERR_EVENT_TYPE);
505 ; }
506 ; #endif
507 ; OS_ENTER_CRITICAL();
508 ; ppdata->OSEventGrp = pevent->OSEventGrp; /* Copy message mailbox wait
list */
509 ; psrc = &pevent->OSEventTbl[0];
510 ; pdest = &ppdata->OSEventTbl[0];
511 ;
512 ; #if OS_EVENT_TBL_SIZE > 0
513 ; *pdest++ = *psrc++;
514 ; #endif
515 ;
516 ; #if OS_EVENT_TBL_SIZE > 1
517 ; *pdest++ = *psrc++;
518 ; #endif
519 ;
520 ; #if OS_EVENT_TBL_SIZE > 2
A51 MACRO ASSEMBLER OS_MBOX 08/08/2005 11:36:44 PAGE 11
521 ; *pdest++ = *psrc++;
522 ; #endif
523 ;
524 ; #if OS_EVENT_TBL_SIZE > 3
525 ; *pdest++ = *psrc++;
526 ; #endif
527 ;
528 ; #if OS_EVENT_TBL_SIZE > 4
529 ; *pdest++ = *psrc++;
530 ; #endif
531 ;
532 ; #if OS_EVENT_TBL_SIZE > 5
533 ; *pdest++ = *psrc++;
534 ; #endif
535 ;
536 ; #if OS_EVENT_TBL_SIZE > 6
537 ; *pdest++ = *psrc++;
538 ; #endif
539 ;
540 ; #if OS_EVENT_TBL_SIZE > 7
541 ; *pdest = *psrc;
542 ; #endif
543 ; ppdata->OSMsg = pevent->OSEventPtr; /* Get message from mailbox
*/
544 ; OS_EXIT_CRITICAL();
545 ; return (OS_NO_ERR);
546 ; }
547 ; #endif /* OS_MBOX_QUERY_EN
*/
548 ; #endif /* OS_MBOX_EN
*/
549 ; *** sync lost ***
550 ; *** sync lost ***
551 ; *** sync lost ***
552 END
A51 MACRO ASSEMBLER OS_MBOX 08/08/2005 11:36:44 PAGE 12
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
AC . . . . . . . . B ADDR 00D0H.6 A
ACC. . . . . . . . D ADDR 00E0H A
B. . . . . . . . . D ADDR 00F0H A
CY . . . . . . . . B ADDR 00D0H.7 A
DPH. . . . . . . . D ADDR 0083H A
DPL. . . . . . . . D ADDR 0082H A
EA . . . . . . . . B ADDR 00A8H.7 A
ES . . . . . . . . B ADDR 00A8H.4 A
ET0. . . . . . . . B ADDR 00A8H.1 A
ET1. . . . . . . . B ADDR 00A8H.3 A
EX0. . . . . . . . B ADDR 00A8H.0 A
EX1. . . . . . . . B ADDR 00A8H.2 A
F0 . . . . . . . . B ADDR 00D0H.5 A
IE . . . . . . . . D ADDR 00A8H A
IE0. . . . . . . . B ADDR 0088H.1 A
IE1. . . . . . . . B ADDR 0088H.3 A
INT0 . . . . . . . B ADDR 00B0H.2 A
INT1 . . . . . . . B ADDR 00B0H.3 A
IP . . . . . . . . D ADDR 00B8H A
IT0. . . . . . . . B ADDR 0088H.0 A
IT1. . . . . . . . B ADDR 0088H.2 A
OS_MBOX. . . . . . N NUMB -----
OV . . . . . . . . B ADDR 00D0H.2 A
P. . . . . . . . . B ADDR 00D0H.0 A
P0 . . . . . . . . D ADDR 0080H A
P1 . . . . . . . . D ADDR 0090H A
P2 . . . . . . . . D ADDR 00A0H A
P3 . . . . . . . . D ADDR 00B0H A
PCON . . . . . . . D ADDR 0087H A
PS . . . . . . . . B ADDR 00B8H.4 A
PSW. . . . . . . . D ADDR 00D0H A
PT0. . . . . . . . B ADDR 00B8H.1 A
PT1. . . . . . . . B ADDR 00B8H.3 A
PX0. . . . . . . . B ADDR 00B8H.0 A
PX1. . . . . . . . B ADDR 00B8H.2 A
RB8. . . . . . . . B ADDR 0098H.2 A
RD . . . . . . . . B ADDR 00B0H.7 A
REN. . . . . . . . B ADDR 0098H.4 A
RI . . . . . . . . B ADDR 0098H.0 A
RS0. . . . . . . . B ADDR 00D0H.3 A
RS1. . . . . . . . B ADDR 00D0H.4 A
RXD. . . . . . . . B ADDR 00B0H.0 A
SBUF . . . . . . . D ADDR 0099H A
SCON . . . . . . . D ADDR 0098H A
SM0. . . . . . . . B ADDR 0098H.7 A
SM1. . . . . . . . B ADDR 0098H.6 A
SM2. . . . . . . . B ADDR 0098H.5 A
SP . . . . . . . . D ADDR 0081H A
T0 . . . . . . . . B ADDR 00B0H.4 A
T1 . . . . . . . . B ADDR 00B0H.5 A
TB8. . . . . . . . B ADDR 0098H.3 A
TCON . . . . . . . D ADDR 0088H A
TF0. . . . . . . . B ADDR 0088H.5 A
TF1. . . . . . . . B ADDR 0088H.7 A
TH0. . . . . . . . D ADDR 008CH A
TH1. . . . . . . . D ADDR 008DH A
TI . . . . . . . . B ADDR 0098H.1 A
TL0. . . . . . . . D ADDR 008AH A
TL1. . . . . . . . D ADDR 008BH A
TMOD . . . . . . . D ADDR 0089H A
A51 MACRO ASSEMBLER OS_MBOX 08/08/2005 11:36:44 PAGE 13
TR0. . . . . . . . B ADDR 0088H.4 A
TR1. . . . . . . . B ADDR 0088H.6 A
TXD. . . . . . . . B ADDR 00B0H.1 A
WR . . . . . . . . B ADDR 00B0H.6 A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -