📄 os_flag.lst
字号:
380:../OSsrc/os_flag.c **** * pname is a pointer to an ASCII string that will receive the name of the event fl
381:../OSsrc/os_flag.c **** * group. The string must be able to hold at least OS_FLAG_NAME_SIZE charact
382:../OSsrc/os_flag.c **** *
383:../OSsrc/os_flag.c **** * perr is a pointer to an error code that can contain one of the following values
384:../OSsrc/os_flag.c **** *
385:../OSsrc/os_flag.c **** * OS_ERR_NONE if the requested task is resumed
386:../OSsrc/os_flag.c **** * OS_ERR_EVENT_TYPE if 'pevent' is not pointing to an event flag gr
387:../OSsrc/os_flag.c **** * OS_ERR_PNAME_NULL You passed a NULL pointer for 'pname'
388:../OSsrc/os_flag.c **** * OS_ERR_FLAG_INVALID_PGRP if you passed a NULL pointer for 'pgrp'
389:../OSsrc/os_flag.c **** * OS_ERR_NAME_GET_ISR if you called this function from an ISR
390:../OSsrc/os_flag.c **** *
391:../OSsrc/os_flag.c **** * Returns : The length of the string or 0 if the 'pgrp' is a NULL pointer.
392:../OSsrc/os_flag.c **** ***************************************************************************************************
393:../OSsrc/os_flag.c **** */
394:../OSsrc/os_flag.c ****
395:../OSsrc/os_flag.c **** #if OS_FLAG_NAME_SIZE > 1
396:../OSsrc/os_flag.c **** INT8U OSFlagNameGet (OS_FLAG_GRP *pgrp, INT8U *pname, INT8U *perr)
397:../OSsrc/os_flag.c **** {
483 .LM70:
484 /* prologue: frame size=0 */
485 013c CF93 push r28
486 013e DF93 push r29
487 /* prologue end (size=2) */
488 0140 FC01 movw r30,r24
489 0142 9B01 movw r18,r22
490 0144 EA01 movw r28,r20
398:../OSsrc/os_flag.c **** INT8U len;
399:../OSsrc/os_flag.c **** #if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register
400:../OSsrc/os_flag.c **** OS_CPU_SR cpu_sr = 0;
401:../OSsrc/os_flag.c **** #endif
402:../OSsrc/os_flag.c ****
403:../OSsrc/os_flag.c ****
404:../OSsrc/os_flag.c ****
405:../OSsrc/os_flag.c **** #if OS_ARG_CHK_EN > 0
406:../OSsrc/os_flag.c **** if (perr == (INT8U *)0) { /* Validate 'perr'
492 .LM71:
493 0146 4115 cp r20,__zero_reg__
494 0148 5105 cpc r21,__zero_reg__
495 014a 31F1 breq .L31
407:../OSsrc/os_flag.c **** return (0);
408:../OSsrc/os_flag.c **** }
409:../OSsrc/os_flag.c **** if (pgrp == (OS_FLAG_GRP *)0) { /* Is 'pgrp' a NULL pointer?
497 .LM72:
498 014c 892B or r24,r25
499 014e 21F4 brne .L33
410:../OSsrc/os_flag.c **** *perr = OS_ERR_FLAG_INVALID_PGRP;
501 .LM73:
502 0150 8EE6 ldi r24,lo8(110)
503 0152 8883 st Y,r24
411:../OSsrc/os_flag.c **** return (0);
505 .LM74:
506 0154 AF01 movw r20,r30
507 0156 20C0 rjmp .L31
508 .L33:
412:../OSsrc/os_flag.c **** }
413:../OSsrc/os_flag.c **** if (pname == (INT8U *)0) { /* Is 'pname' a NULL pointer?
510 .LM75:
511 0158 6115 cp r22,__zero_reg__
512 015a 7105 cpc r23,__zero_reg__
513 015c 21F4 brne .L34
414:../OSsrc/os_flag.c **** *perr = OS_ERR_PNAME_NULL;
515 .LM76:
516 015e 8CE0 ldi r24,lo8(12)
517 0160 8883 st Y,r24
415:../OSsrc/os_flag.c **** return (0);
519 .LM77:
520 0162 AB01 movw r20,r22
521 0164 19C0 rjmp .L31
522 .L34:
416:../OSsrc/os_flag.c **** }
417:../OSsrc/os_flag.c **** #endif
418:../OSsrc/os_flag.c **** if (OSIntNesting > 0) { /* See if trying to call from an ISR
524 .LM78:
525 0166 8091 0000 lds r24,OSIntNesting
526 016a 8823 tst r24
527 016c 11F0 breq .L35
419:../OSsrc/os_flag.c **** *perr = OS_ERR_NAME_GET_ISR;
529 .LM79:
530 016e 81E1 ldi r24,lo8(17)
531 0170 06C0 rjmp .L37
532 .L35:
420:../OSsrc/os_flag.c **** return (0);
421:../OSsrc/os_flag.c **** }
422:../OSsrc/os_flag.c **** OS_ENTER_CRITICAL();
534 .LM80:
535 /* #APP */
536 0172 F894 cli
423:../OSsrc/os_flag.c **** if (pgrp->OSFlagType != OS_EVENT_TYPE_FLAG) {
538 .LM81:
539 /* #NOAPP */
540 0174 8081 ld r24,Z
541 0176 8530 cpi r24,lo8(5)
542 0178 31F0 breq .L36
424:../OSsrc/os_flag.c **** OS_EXIT_CRITICAL();
544 .LM82:
545 /* #APP */
546 017a 7894 sei
425:../OSsrc/os_flag.c **** *perr = OS_ERR_EVENT_TYPE;
548 .LM83:
549 /* #NOAPP */
550 017c 81E0 ldi r24,lo8(1)
551 .L37:
552 017e 8883 st Y,r24
426:../OSsrc/os_flag.c **** return (0);
554 .LM84:
555 0180 40E0 ldi r20,lo8(0)
556 0182 50E0 ldi r21,hi8(0)
557 0184 09C0 rjmp .L31
558 .L36:
427:../OSsrc/os_flag.c **** }
428:../OSsrc/os_flag.c **** len = OS_StrCopy(pname, pgrp->OSFlagName); /* Copy name from OS_FLAG_GRP
560 .LM85:
561 0186 3496 adiw r30,4
562 0188 BF01 movw r22,r30
563 018a C901 movw r24,r18
564 018c 0E94 0000 call OS_StrCopy
429:../OSsrc/os_flag.c **** OS_EXIT_CRITICAL();
566 .LM86:
567 /* #APP */
568 0190 7894 sei
430:../OSsrc/os_flag.c **** *perr = OS_ERR_NONE;
570 .LM87:
571 /* #NOAPP */
572 0192 1882 st Y,__zero_reg__
431:../OSsrc/os_flag.c **** return (len);
574 .LM88:
575 0194 482F mov r20,r24
576 0196 5527 clr r21
577 .L31:
432:../OSsrc/os_flag.c **** }
579 .LM89:
580 0198 CA01 movw r24,r20
581 /* epilogue: frame size=0 */
582 019a DF91 pop r29
583 019c CF91 pop r28
584 019e 0895 ret
585 /* epilogue end (size=3) */
586 /* function OSFlagNameGet size 53 (48) */
591 .Lscope2:
596 .global OSFlagNameSet
598 OSFlagNameSet:
433:../OSsrc/os_flag.c **** #endif
434:../OSsrc/os_flag.c ****
435:../OSsrc/os_flag.c **** /*$PAGE*/
436:../OSsrc/os_flag.c **** /*
437:../OSsrc/os_flag.c **** ***************************************************************************************************
438:../OSsrc/os_flag.c **** * ASSIGN A NAME TO AN EVENT FLAG GROUP
439:../OSsrc/os_flag.c **** *
440:../OSsrc/os_flag.c **** * Description: This function assigns a name to an event flag group.
441:../OSsrc/os_flag.c **** *
442:../OSsrc/os_flag.c **** * Arguments : pgrp is a pointer to the event flag group.
443:../OSsrc/os_flag.c **** *
444:../OSsrc/os_flag.c **** * pname is a pointer to an ASCII string that will be used as the name of the event
445:../OSsrc/os_flag.c **** * group. The string must be able to hold at least OS_FLAG_NAME_SIZE charact
446:../OSsrc/os_flag.c **** *
447:../OSsrc/os_flag.c **** * perr is a pointer to an error code that can contain one of the following values
448:../OSsrc/os_flag.c **** *
449:../OSsrc/os_flag.c **** * OS_ERR_NONE if the requested task is resumed
450:../OSsrc/os_flag.c **** * OS_ERR_EVENT_TYPE if 'pevent' is not pointing to an event flag gr
451:../OSsrc/os_flag.c **** * OS_ERR_PNAME_NULL You passed a NULL pointer for 'pname'
452:../OSsrc/os_flag.c **** * OS_ERR_FLAG_INVALID_PGRP if you passed a NULL pointer for 'pgrp'
453:../OSsrc/os_flag.c **** * OS_ERR_NAME_SET_ISR if you called this function from an ISR
454:../OSsrc/os_flag.c **** *
455:../OSsrc/os_flag.c **** * Returns : None
456:../OSsrc/os_flag.c **** ***************************************************************************************************
457:../OSsrc/os_flag.c **** */
458:../OSsrc/os_flag.c ****
459:../OSsrc/os_flag.c **** #if OS_FLAG_NAME_SIZE > 1
460:../OSsrc/os_flag.c **** void OSFlagNameSet (OS_FLAG_GRP *pgrp, INT8U *pname, INT8U *perr)
461:../OSsrc/os_flag.c **** {
600 .LM90:
601 /* prologue: frame size=0 */
602 01a0 EF92 push r14
603 01a2 FF92 push r15
604 01a4 0F93 push r16
605 01a6 1F93 push r17
606 01a8 CF93 push r28
607 01aa DF93 push r29
608 /* prologue end (size=6) */
609 01ac 7C01 movw r14,r24
610 01ae 8B01 movw r16,r22
611 01b0 EA01 movw r28,r20
462:../OSsrc/os_flag.c **** INT8U len;
463:../OSsrc/os_flag.c **** #if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register
464:../OSsrc/os_flag.c **** OS_CPU_SR cpu_sr = 0;
465:../OSsrc/os_flag.c **** #endif
466:../OSsrc/os_flag.c ****
467:../OSsrc/os_flag.c ****
468:../OSsrc/os_flag.c ****
469:../OSsrc/os_flag.c **** #if OS_ARG_CHK_EN > 0
470:../OSsrc/os_flag.c **** if (perr == (INT8U *)0) { /* Validate 'perr'
613 .LM91:
614 01b2 452B or r20,r21
615 01b4 39F1 breq .L38
471:../OSsrc/os_flag.c **** return;
472:../OSsrc/os_flag.c **** }
473:../OSsrc/os_flag.c **** if (pgrp == (OS_FLAG_GRP *)0) { /* Is 'pgrp' a NULL pointer?
617 .LM92:
618 01b6 892B or r24,r25
619 01b8 11F4 brne .L40
474:../OSsrc/os_flag.c **** *perr = OS_ERR_FLAG_INVALID_PGRP;
621 .LM93:
622 01ba 8EE6 ldi r24,lo8(110)
623 01bc 1AC0 rjmp .L45
624 .L40:
475:../OSsrc/os_flag.c **** return;
476:../OSsrc/os_flag.c **** }
477:../OSsrc/os_flag.c **** if (pname == (INT8U *)0) { /* Is 'pname' a NULL pointer?
626 .LM94:
627 01be 6115 cp r22,__zero_reg__
628 01c0 7105 cpc r23,__zero_reg__
629 01c2 11F4 brne .L41
478:../OSsrc/os_flag.c **** *perr = OS_ERR_PNAME_NULL;
631 .LM95:
632 01c4 8CE0 ldi r24,lo8(12)
633 01c6 15C0 rjmp .L45
634 .L41:
479:../OSsrc/os_flag.c **** return;
480:../OSsrc/os_flag.c **** }
481:../OSsrc/os_flag.c **** #endif
482:../OSsrc/os_flag.c **** if (OSIntNesting > 0) { /* See if trying to call from an ISR
636 .LM96:
637 01c8 8091 0000 lds r24,OSIntNesting
638 01cc 8823 tst r24
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -