bms_asm.lis

来自「mega16 ucos操作系统」· LIS 代码 · 共 621 行 · 第 1/3 页

LIS
621
字号
 0000           ;*******************************************************************************************************
 0000           
 0000           *
 0000           ;                                              uC/OS-Bms
 0000           ;
 0000           ;                               (c) Copyright 2006, Micrium, Inc., Weston, FL
 0000           ;                                           All Rights Reserved
 0000           ;
 0000           ;                                               Atmel AVR
 0000           ;                                               ATmega128
 0000           ;
 0000           ; File : OS_Bms_a.ASM
 0000           ; By   : Jean J. Labrosse 
 0000           ; Version : GX_EVBMS_S_V1.0
 0000           ;*******************************************************************************************************
 0000           
 0000           *
 0000           
 0001           BIT00   = 0x01
 0002           BIT01   = 0x02
 0004           BIT02   = 0x04
 0008           BIT03   = 0x08
 0010           BIT04   = 0x10
 0020           BIT05   = 0x20
 0040           BIT06   = 0x40
 0080           BIT07   = 0x80
 0000           ;*******************************************************************************
 0000           ;                 I/O PORT ADDRESSES
 0000           ;*******************************************************************************
 0000           
 0000           
 003F           SREG    = 0x3F
 003E           SPH     = 0x3E
 003D           SPL     = 0x3D
 0032           TCNT0   = 0x32
 0000           
 0000           
 0000           ;*******************************************************************************
 0000           ;                MACROS
 0000           ;*******************************************************************************
 0000           
 0000           				; Push registers
 0000                                           .macro PUSHRS
 0000                           ST      -Y,R0   
 0000                           ST      -Y,R1
 0000                           ST      -Y,R2
 0000                           ST      -Y,R3
 0000                           ST      -Y,R4
 0000                           ST      -Y,R5
 0000                           ST      -Y,R6
 0000                           ST      -Y,R7
 0000                           ST      -Y,R8
 0000                           ST      -Y,R9
 0000                           ST      -Y,R10
 0000                           ST      -Y,R11
 0000                           ST      -Y,R12
 0000                           ST      -Y,R13
 0000                           ST      -Y,R14
 0000                           ST      -Y,R15
 0000                           ST      -Y,R16
 0000                           ST      -Y,R17
 0000                           ST      -Y,R18
 0000                           ST      -Y,R19
 0000                           ST      -Y,R20
 0000                           ST      -Y,R21
 0000                           ST      -Y,R22
 0000                           ST      -Y,R23
 0000                           ST      -Y,R24
 0000                           ST      -Y,R25
 0000                           ST      -Y,R26
 0000                           ST      -Y,R27
 0000                           ST      -Y,R30
 0000                           ST      -Y,R31               
 0000                           .macro POPRS                
 0000                           LD      R31,Y+
 0000                           LD      R30,Y+
 0000                           LD      R27,Y+
 0000                           LD      R26,Y+
 0000                           LD      R25,Y+
 0000                           LD      R24,Y+
 0000                           LD      R23,Y+
 0000                           LD      R22,Y+
 0000                           LD      R21,Y+
 0000                           LD      R20,Y+
 0000                           LD      R19,Y+
 0000                           LD      R18,Y+
 0000                           LD      R17,Y+
 0000                           LD      R16,Y+
 0000                           LD      R15,Y+
 0000                           LD      R14,Y+
 0000                           LD      R13,Y+
 0000                           LD      R12,Y+
 0000                           LD      R11,Y+
 0000                           LD      R10,Y+
 0000                           LD      R9,Y+
 0000                           LD      R8,Y+
 0000                           LD      R7,Y+
 0000                           LD      R6,Y+
 0000                           LD      R5,Y+
 0000                           LD      R4,Y+
 0000                           LD      R3,Y+
 0000                           LD      R2,Y+
 0000                           LD      R1,Y+
 0000                           LD      R0,Y+
 0000                           .macro PUSHSP
 0000                           IN      R16,SPH
 0000                           ST      -Y,R16
 0000                           IN      R16,SPL
 0000                           ST      -Y,R16
 0000                           .macro POPSP
 0000                           LD      R16,Y+
 0000                           OUT     SPL,R16
 0000                           LD      R16,Y+
 0000                           OUT     SPH,R16
 0000                                           .macro PUSHSREG
 0000                           IN      R16,SREG
 0000                           ST      -Y,R16
 0000                           .macro POPSREG
 0000                           LD      R16,Y+
 0000                                           CBR     R16,BIT07
 0000                           OUT     SREG,R16
                                .area     text(rel)
                
                
                
                ;******************************************************************************
                ;                          SYSTEM TICK ISR
                ;
                ; Description: This function is the ISR used to notify uC/OS-II that a system
                ; tick has occurred.
                ;
                ;
                ;*******************************************************************************
                ; 
 0000           _OSTickISR::    
 0000 0A92                      ST      -Y,R0   
 0002 1A92                      ST      -Y,R1
 0004 2A92                      ST      -Y,R2
 0006 3A92                      ST      -Y,R3
 0008 4A92                      ST      -Y,R4
 000A 5A92                      ST      -Y,R5
 000C 6A92                      ST      -Y,R6
 000E 7A92                      ST      -Y,R7
 0010 8A92                      ST      -Y,R8
 0012 9A92                      ST      -Y,R9
 0014 AA92                      ST      -Y,R10
 0016 BA92                      ST      -Y,R11
 0018 CA92                      ST      -Y,R12
 001A DA92                      ST      -Y,R13
 001C EA92                      ST      -Y,R14
 001E FA92                      ST      -Y,R15
 0020 0A93                      ST      -Y,R16
 0022 1A93                      ST      -Y,R17
 0024 2A93                      ST      -Y,R18
 0026 3A93                      ST      -Y,R19
 0028 4A93                      ST      -Y,R20
 002A 5A93                      ST      -Y,R21
 002C 6A93                      ST      -Y,R22
 002E 7A93                      ST      -Y,R23
 0030 8A93                      ST      -Y,R24
 0032 9A93                      ST      -Y,R25
 0034 AA93                      ST      -Y,R26
 0036 BA93                      ST      -Y,R27
 0038 EA93                      ST      -Y,R30
 003A FA93                      ST      -Y,R31               
 003C 0FB7                      IN      R16, SREG
 003E 0068                      SBR     R16, 0x80               ; bei Aufruf dieser ISR geloeschtes I-Flag setzen 
 0040 0A93                      ST      -Y, R16   
 0042 0EB7                      IN      R16,SPH
 0044 0A93                      ST      -Y,R16
 0046 0DB7                      IN      R16,SPL
 0048 0A93                      ST      -Y,R16
 004A           
 004A 05E0                      LDI     R16,0x05        ; Reload TC0, 0.5ms/4MHz/8
 004C 02BF                      OUT     TCNT0,R16
 004E                           
 004E 00910000                  LDS     R16,_OSIntNesting           ; Notify uC/OS-II of ISR
 0052 0395                      INC     R16                         ;
 0054 00930000                  STS     _OSIntNesting,R16           ;
 0058                   
 0058 0130                      CPI     R16,1            ;if(OSIntNesting==1){
 005A 31F4                      BRNE    OSTickISR_1
 005C                           
 005C E0910000                  LDS     R30,_OSTCBCur
 0060 F0910100                  LDS     R31,_OSTCBCur+1 ;OSTCBCur->OSTCBStkPtr=Y;
 0064 C193                      ST      Z+,R28
 0066 D193                      ST      Z+,R29   ;}
 0068                           
 0068           	OSTickISR_1:
 0068 0E940000                  CALL    _OSTickISR_Handler              ; Call uC/OS-II's tick updating function
 006C 0E940000                  CALL    _OSIntExit              ; Notify uC/OS-II about end of ISR
 0070                     
 0070 0991                      LD      R16,Y+
 0072 0DBF                      OUT     SPL,R16
 0074 0991                      LD      R16,Y+
 0076 0EBF                      OUT     SPH,R16
 0078 0991                      LD      R16,Y+
 007A 0F77                                      CBR     R16,BIT07
 007C 0FBF                      OUT     SREG,R16
 007E F991                      LD      R31,Y+
 0080 E991                      LD      R30,Y+
 0082 B991                      LD      R27,Y+
 0084 A991                      LD      R26,Y+
 0086 9991                      LD      R25,Y+
 0088 8991                      LD      R24,Y+
 008A 7991                      LD      R23,Y+
 008C 6991                      LD      R22,Y+

⌨️ 快捷键说明

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