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

📄 os_cpu_a.lis

📁 AVR megal128下的ucos_ii
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0472 E990                      LD      R14,Y+
 0474 D990                      LD      R13,Y+
 0476 C990                      LD      R12,Y+
 0478 B990                      LD      R11,Y+
 047A A990                      LD      R10,Y+
 047C 9990                      LD      R9,Y+
 047E 8990                      LD      R8,Y+
 0480 7990                      LD      R7,Y+
 0482 6990                      LD      R6,Y+
 0484 5990                      LD      R5,Y+
 0486 4990                      LD      R4,Y+
 0488 3990                      LD      R3,Y+
 048A 2990                      LD      R2,Y+
 048C 1990                      LD      R1,Y+
 048E 0990                      LD      R0,Y+
 0490           
 0490 0895                      RET                                 ; Note: RET instead of RETI
 0492                           
 0492                           
 0492           ;/*$PAGE*/.
 0492           ;********************************************************************************************************
 0492           ;                                              Uart1  udre  ISR
 0492           ;
 0492           ; Description : This function is the ISR used to notify uC/OS-II that a system tick has occurred.
 0492           ;
 0492           ;               The following C-like pseudo-code describe the operation being performed in the code below.
 0492           ;
 0492           ;               Save all registers on the current task's stack:
 0492           ;                      Use the PUSH_ALL macro
 0492           ;                      Get the SREG, set Bit #7 and save onto the task's stack using -Y addressing
 0492           ;                      Use the PUSH_SP macro to save the task's hardware stack pointer onto the current task's stack
 0492           ;               OSIntNesting++;
 0492           ;               if (OSIntNesting == 1) {
 0492           ;                  OSTCBCur->OSTCBStkPtr = SP
 0492           ;               }
 0492           ;               Clear the interrupt;                  Not needed for the timer we used.
 0492           ;                                          Notify uC/OS-II that a tick has occured
 0492           ;                                          Notify uC/OS-II about end of ISR
 0492           ;               Restore all registers that were save on the current task's stack:
 0492           ;                      Use the POP_SP macro to restore the task's hardware stack pointer
 0492           ;                      Use the POP_SREG macro to restore the SREG register
 0492           ;                      Use the POP_ALL macro to restore the remaining registers
 0492           ;               Return (DO NOT use a RETI instruction);
 0492           ;********************************************************************************************************
 0492           /*
 0492           _uart1_udre_isr::
 0492 0A92                      ST      -Y,R0
 0494 1A92                      ST      -Y,R1
 0496 2A92                      ST      -Y,R2
 0498 3A92                      ST      -Y,R3
 049A 4A92                      ST      -Y,R4
 049C 5A92                      ST      -Y,R5
 049E 6A92                      ST      -Y,R6
 04A0 7A92                      ST      -Y,R7
 04A2 8A92                      ST      -Y,R8
 04A4 9A92                      ST      -Y,R9
 04A6 AA92                      ST      -Y,R10
 04A8 BA92                      ST      -Y,R11
 04AA CA92                      ST      -Y,R12
 04AC DA92                      ST      -Y,R13
 04AE EA92                      ST      -Y,R14
 04B0 FA92                      ST      -Y,R15
 04B2 0A93                      ST      -Y,R16
 04B4 1A93                      ST      -Y,R17
 04B6 2A93                      ST      -Y,R18
 04B8 3A93                      ST      -Y,R19
 04BA 4A93                      ST      -Y,R20
 04BC 5A93                      ST      -Y,R21
 04BE 6A93                      ST      -Y,R22
 04C0 7A93                      ST      -Y,R23
 04C2 8A93                      ST      -Y,R24
 04C4 9A93                      ST      -Y,R25
 04C6 AA93                      ST      -Y,R26
 04C8 BA93                      ST      -Y,R27
 04CA EA93                      ST      -Y,R30
 04CC FA93                      ST      -Y,R31
 04CE 0BB7                      IN      R16,RAMPZ
 04D0 0A93                      ST      -Y,R16
 04D2 0FB7                      IN      R16,SREG                    ; Save the SREG but with interrupts enabled
 04D4 0068                      SBR     R16,BIT07                    
 04D6 0A93                      ST      -Y,R16
 04D8 0EB7                      IN      R16,SPH
 04DA 0A93                      ST      -Y,R16
 04DC 0DB7                      IN      R16,SPL
 04DE 0A93                      ST      -Y,R16
 04E0           
 04E0 00910000                  LDS     R16,_OSIntNesting           ; Notify uC/OS-II of ISR
 04E4 0395                      INC     R16                         ;
 04E6 00930000                  STS     _OSIntNesting,R16           ;
 04EA           
 04EA 0130                      CPI     R16,1                       ; if (OSIntNesting == 1) {
 04EC 31F4                      BRNE    uart1_udre_isr_1
 04EE           
 04EE E0910000                  LDS     R30,_OSTCBCur               ;     OSTCBCur->OSTCBStkPtr = Y
 04F2 F0910100                  LDS     R31,_OSTCBCur+1
 04F6 C193                      ST      Z+,R28
 04F8 D193                      ST      Z+,R29                      ; }
 04FA           
 04FA           uart1_udre_isr_1:
 04FA                           //CALL    _Uart1Ud_Handler     ; Handle the tick ISR
 04FA           
 04FA 0E940000                  CALL    _OSIntExit                  ; Notify uC/OS-II about end of ISR
 04FE           
 04FE 0991                      LD      R16,Y+
 0500 0DBF                      OUT     SPL,R16
 0502 0991                      LD      R16,Y+
 0504 0EBF                      OUT     SPH,R16
 0506 0991                      LD      R16,Y+
 0508 0FBF                      OUT     SREG,R16
 050A 0991                      LD      R16,Y+
 050C 0BBF                      OUT     RAMPZ,R16
 050E F991                      LD      R31,Y+
 0510 E991                      LD      R30,Y+
 0512 B991                      LD      R27,Y+
 0514 A991                      LD      R26,Y+
 0516 9991                      LD      R25,Y+
 0518 8991                      LD      R24,Y+
 051A 7991                      LD      R23,Y+
 051C 6991                      LD      R22,Y+
 051E 5991                      LD      R21,Y+
 0520 4991                      LD      R20,Y+
 0522 3991                      LD      R19,Y+
 0524 2991                      LD      R18,Y+
 0526 1991                      LD      R17,Y+
 0528 0991                      LD      R16,Y+
 052A F990                      LD      R15,Y+
 052C E990                      LD      R14,Y+
 052E D990                      LD      R13,Y+
 0530 C990                      LD      R12,Y+
 0532 B990                      LD      R11,Y+
 0534 A990                      LD      R10,Y+
 0536 9990                      LD      R9,Y+
 0538 8990                      LD      R8,Y+
 053A 7990                      LD      R7,Y+
 053C 6990                      LD      R6,Y+
 053E 5990                      LD      R5,Y+
 0540 4990                      LD      R4,Y+
 0542 3990                      LD      R3,Y+
 0544 2990                      LD      R2,Y+
 0546 1990                      LD      R1,Y+
 0548 0990                      LD      R0,Y+
 054A           
 054A 0895                      RET                                 ; Note: RET instead of RETI
 054C           */
 054C           ;/*$PAGE*/.
 054C           /*
 054C           ;********************************************************************************************************
 054C           ;                                              Uart1  udre  ISR
 054C           ;
 054C           ; Description : This function is the ISR used to notify uC/OS-II that a system tick has occurred.
 054C           ;
 054C           ;               The following C-like pseudo-code describe the operation being performed in the code below.
 054C           ;
 054C           ;               Save all registers on the current task's stack:
 054C           ;                      Use the PUSH_ALL macro
 054C           ;                      Get the SREG, set Bit #7 and save onto the task's stack using -Y addressing
 054C           ;                      Use the PUSH_SP macro to save the task's hardware stack pointer onto the current task's stack
 054C           ;               OSIntNesting++;
 054C           ;               if (OSIntNesting == 1) {
 054C           ;                  OSTCBCur->OSTCBStkPtr = SP
 054C           ;               }
 054C           ;               Clear the interrupt;                  Not needed for the timer we used.
 054C           ;                                          Notify uC/OS-II that a tick has occured
 054C           ;                                          Notify uC/OS-II about end of ISR
 054C           ;               Restore all registers that were save on the current task's stack:
 054C           ;                      Use the POP_SP macro to restore the task's hardware stack pointer
 054C           ;                      Use the POP_SREG macro to restore the SREG register
 054C           ;                      Use the POP_ALL macro to restore the remaining registers
 054C           ;               Return (DO NOT use a RETI instruction);
 054C           ;********************************************************************************************************
 054C           
 054C           ;_adc_isr::
 054C           ;                PUSH_ALL                            ; Save all registers and status register
 054C           ;                IN      R16,SREG                    ; Save the SREG but with interrupts enabled
 054C           ;                SBR     R16,BIT07                    
 054C           ;                ST      -Y,R16
 054C           ;                PUSH_SP                             ; Save the task's hardware stack pointer onto task's stack
 054C           ;
 054C           ;                LDS     R16,_OSIntNesting           ; Notify uC/OS-II of ISR
 054C           ;                INC     R16                         ;
 054C           ;                STS     _OSIntNesting,R16           ;
 054C           ;
 054C           ;                CPI     R16,1                       ; if (OSIntNesting == 1) {
 054C           ;                BRNE    adc_isr_1
 054C           ;
 054C           ;                LDS     R30,_OSTCBCur               ;     OSTCBCur->OSTCBStkPtr = Y
 054C           ;                LDS     R31,_OSTCBCur+1
 054C           ;                ST      Z+,R28
 054C           ;                ST      Z+,R29                      ; }
 054C           ;
 054C           ;adc_isr_1:
 054C           ;                CALL    _Adc_isr_Handler           ; Handle the tick ISR
 054C           ;
 054C           ;                CALL    _OSIntExit                  ; Notify uC/OS-II about end of ISR
 054C           ;
 054C           ;                POP_SP                              ; Restore the hardware stack pointer from task's stack
 054C           ;                POP_SREG                            ; Restore the SREG register
 054C           ;                POP_ALL                             ; Restore all registers
 054C           ;
 054C           ;                RET                                 ; Note: RET instead of RETI
 054C            
 054C           /*
 054C           //============================================================================//
 054C           //  void int1_isr(void);
 054C           //============================================================================//
 054C           ;
 054C           ;_int1_isr::
 054C 0A92                      ST      -Y,R0
 054E 1A92                      ST      -Y,R1
 0550 2A92                      ST      -Y,R2
 0552 3A92                      ST      -Y,R3
 0554 4A92                      ST      -Y,R4
 0556 5A92                      ST      -Y,R5
 0558 6A92                      ST      -Y,R6
 055A 7A92                      ST      -Y,R7
 055C 8A92                      ST      -Y,R8
 055E 9A92                      ST      -Y,R9
 0560 AA92                      ST      -Y,R10
 0562 BA92                      ST      -Y,R11
 0564 CA92                      ST      -Y,R12
 0566 DA92                      ST      -Y,R13
 0568 EA92                      ST      -Y,R14
 056A FA92                      ST      -Y,R15
 056C 0A93                      ST      -Y,R16
 056E 1A93                      ST      -Y,R17
 0570 2A93                      ST      -Y,R18
 0572 3A93                      ST      -Y,R19
 0574 4A93                      ST      -Y,R20
 0576 5A93                      ST      -Y,R21
 0578 6A93           

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -