⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 os_flag.lst

📁 称植到lpc2124上的UCOS2.85版 是本人初学移植和ARM的成果 可能已有人上传类似的了
💻 LST
📖 第 1 页 / 共 5 页
字号:
 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 + -