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

📄 serialisr.lst

📁 本代码已经经过修改
💻 LST
字号:
###############################################################################
#                                                                             #
#     IAR Systems ARM Assembler V4.30A/W32 14/Dec/2005  14:41:48              #
#     Copyright 1999-2005 IAR Systems. All rights reserved.                   #
#                                                                             #
#           Source file   =  D:\board\FreeRTOSV3.2.3\FreeRTOS\Demo\ARM7_STR71x_IAR\serial\serialISR.s79#
#           List file     =  D:\board\FreeRTOSV3.2.3\FreeRTOS\Demo\ARM7_STR71x_IAR\binary\List\serialISR.lst#
#           Object file   =  D:\board\FreeRTOSV3.2.3\FreeRTOS\Demo\ARM7_STR71x_IAR\binary\Obj\serialISR.r79#
#           Command line  =  D:\board\FreeRTOSV3.2.3\FreeRTOS\Demo\ARM7_STR71x_IAR\serial\serialISR.s79 #
#                            -OD:\board\FreeRTOSV3.2.3\FreeRTOS\Demo\ARM7_STR71x_IAR\binary\Obj\ #
#                            -s+ -M<> -w+                                     #
#                            -LD:\board\FreeRTOSV3.2.3\FreeRTOS\Demo\ARM7_STR71x_IAR\binary\List\ #
#                            -t8 --cpu ARM7TDMI --fpu None                    #
#                            -IC:\Program Files\IAR Systems\Embedded Workbench 4.0 Kickstart\arm\INC\ #
#                            -ID:\board\FreeRTOSV3.2.3\FreeRTOS\Demo\ARM7_STR71x_IAR\..\..\Source\portable\IAR\STR71x\ #
#                                                                             #
###############################################################################

    1    00000000                              RSEG ICODE:CODE
    2    00000000                              CODE32
    3    00000000              
    4    00000000                              EXTERN vSerialISR
    5    00000000                              PUBLIC vSerialISREntry
    6    00000000              
    7    00000000              ; Wrapper for the serial port interrupt service
                                routine.  This can cause a
    8    00000000              ; context switch so requires an assembly
                                wrapper.
    9    00000000              
   10    00000000              ; Defines the portSAVE_CONTEXT and portRESTORE_C
                               ONTEXT macros.
   11    00000000              #include "ISR_Support.h"
   12    00000000              
   13    00000000              vSerialISREntry:
   14    00000000              
   15    00000000                      portSAVE_CONTEXT                       
                                ; Save the context of the current task.
   15.1  00000000              
   15.2  00000000                      ; Push R0 as we are going to use the
                                register.                                 
                                
   15.3  00000000 01002DE9             STMDB   SP!, {R0}
   15.4  00000004              
   15.5  00000004                      ; Set R0 to point to the task stack
                                pointer.                                   
                                
   15.6  00000004 00204DE9             STMDB   SP, {SP}^
   15.7  00000008 04D04DE2             SUB             SP, SP, #4
   15.8  0000000C 0100BDE8             LDMIA   SP!, {R0}
   15.9  00000010              
   15.10 00000010                      ; Push the return address onto the
                                stack.                                         
                                     
   15.11 00000010 004020E9             STMDB   R0!, {LR}
   15.12 00000014              
   15.13 00000014                      ; Now we have saved LR we can use it
                                instead of R0.                            
                                
   15.14 00000014 00E0A0E1             MOV             LR, R0
   15.15 00000018              
   15.16 00000018                      ; Pop R0 so we can save it onto the
                                system mode stack.                  
   15.17 00000018 0100BDE8             LDMIA   SP!, {R0}
   15.18 0000001C              
   15.19 0000001C                      ; Push all the system mode registers
                                onto the task stack.               
   15.20 0000001C FF7F4EE9             STMDB   LR, {R0-LR}^
   15.21 00000020 3CE04EE2             SUB             LR, LR, #60
   15.22 00000024              
   15.23 00000024                      ; Push the SPSR onto the task stack.    
                                                                              
                                
   15.24 00000024 00004FE1             MRS             R0, SPSR
   15.25 00000028 01002EE9             STMDB   LR!, {R0}
   15.26 0000002C              
   15.27 0000002C 44009FE5             LDR             R0, =ulCriticalNesting
  
   15.28 00000030 000090E5             LDR             R0, [R0]
   15.29 00000034 01002EE9             STMDB   LR!, {R0}
   15.30 00000038              
   15.31 00000038                      ; Store the new top of stack for the
                                task.                                          
                                   
   15.32 00000038 3C109FE5             LDR             R1, =pxCurrentTCB
   15.33 0000003C 000091E5             LDR             R0, [R1]
   15.34 00000040 00E080E5             STR             LR, [R0]
   15.35 00000044              
   15.36 00000044                      ENDM
   16    00000044              
   17    00000044 ........             bl      vSerialISR                      
         ; Call the ISR routine.
   18    00000048              
   19    00000048                      portRESTORE_CONTEXT                    
                                ; Restore the context of the current task
                                -
   19.1  00000048              
   19.2  00000048                      ; Set the LR to the task stack.         
                                                                               
                                               
   19.3  00000048 2C109FE5             LDR             R1, =pxCurrentTCB
   19.4  0000004C 000091E5             LDR             R0, [R1]
   19.5  00000050 00E090E5             LDR             LR, [R0]
   19.6  00000054              
   19.7  00000054                      ; The critical nesting depth is the
                                first item on the stack.    
   19.8  00000054                      ; Load it into the ulCriticalNesting
                                variable.                                 
                                
   19.9  00000054 1C009FE5             LDR             R0, =ulCriticalNesting
   19.10 00000058 0200BEE8             LDMFD   LR!, {R1}
   19.11 0000005C 001080E5             STR             R1, [R0]
   19.12 00000060              
   19.13 00000060                      ; Get the SPSR from the stack.          
                                                                               
                                       
   19.14 00000060 0100BEE8             LDMFD   LR!, {R0}
   19.15 00000064 00F06FE1             MSR             SPSR_cxsf, R0
   19.16 00000068              
   19.17 00000068                      ; Restore all system mode registers for
                                the task.                              
                                
   19.18 00000068 FF7FDEE8             LDMFD   LR, {R0-R14}^
   19.19 0000006C 0000A0E1             NOP
   19.20 00000070              
   19.21 00000070                      ; Restore the return address.           
                                                                               
                                       
   19.22 00000070 3CE09EE5             LDR             LR, [LR, #+60]
   19.23 00000074              
   19.24 00000074                      ; And return - correcting the offset in
                                the LR to obtain the    
   19.25 00000074                      ; correct address.                      
                                                                               
                                                       
   19.26 00000074 04F05EE2             SUBS    PC, LR, #4
   19.27 00000078              
   19.28 00000078                      ENDM
   20    00000078                                                              
                                               ; which may be different to the
                                task that
   21    00000078                                                              
                                               ; was interrupted.
   22    00000078              
   23    00000078                              END
   23.1  00000078                       TABLE
   23.2  00000078 ........             Reference on line 15,19 
   23.3  0000007C ........             Reference on line 15,19 
   23.4  00000080                      END (including table)
##############################
#          CRC:BAA8          #
#        Errors:   0         #
#        Warnings: 0         #
#         Bytes: 128         #
##############################





⌨️ 快捷键说明

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