📄 os_sem.lst
字号:
345 * Arguments : pevent is a pointer to the event control block associated with the desired
346 * semaphore
347 *
348 * pdata is a pointer to a structure that will contain information about the
349 * semaphore.
350 *
351 * Returns : OS_NO_ERR The call was successful and the message was sent
352 * OS_ERR_EVENT_TYPE If you are attempting to obtain data from a non semaphore.
353 * OS_ERR_PEVENT_NULL If 'pevent' is a NULL pointer.
354 *********************************************************************************************************
355 */
356
357 #if OS_SEM_QUERY_EN > 0
358 INT8U OSSemQuery (OS_EVENT *pevent, OS_SEM_DATA *pdata)
359 {
360 #if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */
361 OS_CPU_SR cpu_sr;
362 #endif
363 INT8U *psrc;
364 INT8U *pdest;
365
366
367 #if OS_ARG_CHK_EN > 0
368 if (pevent == (OS_EVENT *)0) { /* Validate 'pevent' */
\ 01FA 0C93 CMP #0,R12
\ 01FC 0220 JNE (?0112)
369 return (OS_ERR_PEVENT_NULL);
\ 01FE 6C42 MOV.B #4,R12
370 }
\ 0200 3041 RET
\ 0202 ?0112:
371 if (pevent->OSEventType != OS_EVENT_TYPE_SEM) { /* Validate event block type */
\ 0202 7D400300 MOV.B #3,R13
\ 0206 6D9C CMP.B @R12,R13
\ 0208 0224 JEQ (?0114)
372 return (OS_ERR_EVENT_TYPE);
\ 020A 5C43 MOV.B #1,R12
373 }
\ 020C 3041 RET
\ 020E ?0114:
374 #endif
375 OS_ENTER_CRITICAL();
\ 020E 32C2 DINT
376 pdata->OSEventGrp = pevent->OSEventGrp; /* Copy message mailbox wait list */
\ 0210 DE4C0100 MOV.B 1(R12),4(R14)
\ 0214 0400
377 psrc = &pevent->OSEventTbl[0];
\ 0216 0F4C MOV R12,R15
\ 0218 3F500600 ADD #6,R15
378 pdest = &pdata->OSEventTbl[0];
\ 021C 0D4E MOV R14,R13
\ 021E 2D53 ADD #2,R13
379 #if OS_EVENT_TBL_SIZE > 0
380 *pdest++ = *psrc++;
\ 0220 FD4F0000 MOV.B @R15+,0(R13)
\ 0224 1D53 ADD #1,R13
381 #endif
382
383 #if OS_EVENT_TBL_SIZE > 1
384 *pdest++ = *psrc++;
\ 0226 FD4F0000 MOV.B @R15+,0(R13)
385 #endif
386
387 #if OS_EVENT_TBL_SIZE > 2
388 *pdest++ = *psrc++;
389 #endif
390
391 #if OS_EVENT_TBL_SIZE > 3
392 *pdest++ = *psrc++;
393 #endif
394
395 #if OS_EVENT_TBL_SIZE > 4
396 *pdest++ = *psrc++;
397 #endif
398
399 #if OS_EVENT_TBL_SIZE > 5
400 *pdest++ = *psrc++;
401 #endif
402
403 #if OS_EVENT_TBL_SIZE > 6
404 *pdest++ = *psrc++;
405 #endif
406
407 #if OS_EVENT_TBL_SIZE > 7
408 *pdest = *psrc;
409 #endif
410 pdata->OSCnt = pevent->OSEventCnt; /* Get semaphore count */
\ 022A 9E4C0200 MOV 2(R12),0(R14)
\ 022E 0000
411 OS_EXIT_CRITICAL();
\ 0230 32D2 EINT
412 return (OS_NO_ERR);
\ 0232 4C43 MOV.B #0,R12
413 }
\ 0234 3041 RET
414 #endif /* OS_SEM_QUERY_EN */
415 #endif /* OS_SEM_EN */
\ 0236 END
S Y M B O L - T A B L E
=======================
#include file(s):
[ 1] j:\software\ucos-ii\ti-msp430\iar\source\debug\obj\os_sem.r43
Symbol Type Class Defline Refline(s)
------ ---- ----- ------- ----------
ADC12CTL0 sfrw --- 757:9
ADC12CTL1 sfrw --- 759:9
ADC12IE sfrw --- 763:9
ADC12IFG sfrw --- 761:9
ADC12IV sfrw --- 765:9
ADC12MCTL0 sfrb --- 813:9
ADC12MCTL1 sfrb --- 815:9
ADC12MCTL10 sfrb --- 833:9
ADC12MCTL11 sfrb --- 835:9
ADC12MCTL12 sfrb --- 837:9
ADC12MCTL13 sfrb --- 839:9
ADC12MCTL14 sfrb --- 841:9
ADC12MCTL15 sfrb --- 843:9
ADC12MCTL2 sfrb --- 817:9
ADC12MCTL3 sfrb --- 819:9
ADC12MCTL4 sfrb --- 821:9
ADC12MCTL5 sfrb --- 823:9
ADC12MCTL6 sfrb --- 825:9
ADC12MCTL7 sfrb --- 827:9
ADC12MCTL8 sfrb --- 829:9
ADC12MCTL9 sfrb --- 831:9
ADC12MEM0 sfrw --- 774:9
ADC12MEM1 sfrw --- 776:9
ADC12MEM10 sfrw --- 794:9
ADC12MEM11 sfrw --- 796:9
ADC12MEM12 sfrw --- 798:9
ADC12MEM13 sfrw --- 800:9
ADC12MEM14 sfrw --- 802:9
ADC12MEM15 sfrw --- 804:9
ADC12MEM2 sfrw --- 778:9
ADC12MEM3 sfrw --- 780:9
ADC12MEM4 sfrw --- 782:9
ADC12MEM5 sfrw --- 784:9
ADC12MEM6 sfrw --- 786:9
ADC12MEM7 sfrw --- 788:9
ADC12MEM8 sfrw --- 790:9
ADC12MEM9 sfrw --- 792:9
BCSCTL1 sfrb --- 616:9
BCSCTL2 sfrb --- 618:9
BOOLEAN char typedef 31:10 409:12 436:12 451:12 153
CACTL1 sfrb --- 714:9
CACTL2 sfrb --- 716:9
CAPD sfrb --- 718:9
CCR0 sfrw --- 460:9
CCR1 sfrw --- 462:9
CCR2 sfrw --- 464:9
CCTL0 sfrw --- 454:9
CCTL1 sfrw --- 456:9
CCTL2 sfrw --- 458:9
DCOCTL sfrb --- 614:9
FCTL1 sfrw --- 672:9
FCTL2 sfrw --- 674:9
FCTL3 sfrw --- 676:9
IE1 sfrb --- 103:9
IE2 sfrb --- 126:9
IFG1 sfrb --- 112:9
IFG2 sfrb --- 131:9
INT16U u_int typedef 34:10 114:11 215:12 322:12 323:12
329:12 330:12 344:12 377:12
378:12 399:12 510:12 536:12
587:12 609:12 619:12 648:12
651:12 657:12 685:12 689:12
717:12 720:12 754:12 796:12
796:12 823:12 39 44
83 244
INT32U u_long typedef 36:10 276:12 277:12 278:12 285:12
286:12 287:12 288:12 358:12
359:12 376:12 420:12 434:12
435:12 455:12 478:12 559:12
559:12 687:12 728:12 729:12
796:12
INT8S s_char typedef 33:10 433:12
INT8U char typedef 32:10 213:12 214:12 217:12 230:12
243:12 261:12 262:12 301:12
302:12 303:12 304:12 305:12
331:12 332:12 345:12 346:12
400:12 401:12 403:12 404:12
405:12 406:12 440:12 441:12
443:12 445:12 446:12 448:12
449:12 453:12 481:12 482:12
501:12 501:12 504:12 507:12
507:12 510:12 510:12 511:12
511:12 514:12 533:12 533:12
536:12 539:12 543:12 543:12
547:12 559:12 560:12 561:12
564:12 578:12 578:12 581:12
581:12 584:12 584:12 587:12
588:12 591:12 612:12 612:12
616:12 619:12 622:12 626:12
630:12 630:12 634:12 654:12
654:12 657:12 658:12 661:12
673:12 673:12 673:12 677:12
677:12 681:12 684:12 693:12
693:12 694:12 694:12 698:12
698:12 699:12 699:12 703:12
703:12 707:12 707:12 720:12
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -