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

📄 usb_endp.s79

📁 用于监视I2C通信总线
💻 S79
字号:
//////////////////////////////////////////////////////////////////////////////
//                                                                           /
// IAR ARM ANSI C/C++ Compiler V4.42A/W32 EVALUATION   10/Nov/2008  11:44:06 /
// Copyright 1999-2005 IAR Systems. All rights reserved.                     /
//                                                                           /
//    Cpu mode        =  thumb                                               /
//    Endian          =  little                                              /
//    Stack alignment =  4                                                   /
//    Source file     =  D:\资料\ST\ST\usb\USBLib\demos\Virtual_COM_Port\sou /
//                       rce\usb_endp.c                                      /
//    Command line    =  D:\资料\ST\ST\usb\USBLib\demos\Virtual_COM_Port\sou /
//                       rce\usb_endp.c -D VECT_TAB_FLASH -D                 /
//                       USE_STM3210E_EVAL -lA D:\资料\ST\ST\usb\USBLib\demo /
//                       s\Virtual_COM_Port\project\EWARMv4\STM3210E-EVAL\Li /
//                       st\ -o D:\资料\ST\ST\usb\USBLib\demos\Virtual_COM_P /
//                       ort\project\EWARMv4\STM3210E-EVAL\Obj\ -z9 --debug  /
//                       --cpu_mode thumb --endian little --cpu cortex-M3    /
//                       --stack_align 4 --require_prototypes --fpu None     /
//                       --dlib_config "C:\Program Files\IAR                 /
//                       Systems\Embedded Workbench 4.0                      /
//                       Evaluation\arm\LIB\dl7mptnnl8f.h" -I                /
//                       D:\资料\ST\ST\usb\USBLib\demos\Virtual_COM_Port\pro /
//                       ject\EWARMv4\..\..\include\ -I                      /
//                       D:\资料\ST\ST\usb\USBLib\demos\Virtual_COM_Port\pro /
//                       ject\EWARMv4\..\..\..\..\library\inc\ -I            /
//                       D:\资料\ST\ST\usb\USBLib\demos\Virtual_COM_Port\pro /
//                       ject\EWARMv4\..\..\..\..\..\FWLib\library\inc\ -I   /
//                       "C:\Program Files\IAR Systems\Embedded Workbench    /
//                       4.0 Evaluation\arm\INC\" --inline_threshold=2       /
//    List file       =  D:\资料\ST\ST\usb\USBLib\demos\Virtual_COM_Port\pro /
//                       ject\EWARMv4\STM3210E-EVAL\List\usb_endp.s79        /
//                                                                           /
//                                                                           /
//////////////////////////////////////////////////////////////////////////////

        NAME usb_endp

        RTMODEL "StackAlign4", "USED"
        RTMODEL "__cpu_mode", "__pcs__thumb"
        RTMODEL "__data_model", "absolute"
        RTMODEL "__endian", "little"
        RTMODEL "__rt_version", "6"

        RSEG CSTACK:DATA:NOROOT(2)

        MULTWEAK ??GetEPRxCount??rT
        MULTWEAK ??PMAToUserBufferCopy??rT
        MULTWEAK ??SetEPRxValid??rT
        PUBWEAK ?init?tab?DATA_Z
        PUBLIC EP1_IN_Callback
        FUNCTION EP1_IN_Callback,0203H
        PUBLIC EP3_OUT_Callback
        FUNCTION EP3_OUT_Callback,0203H
        LOCFRAME CSTACK, 8, STACK
        PUBLIC buffer_out
        PUBLIC count_in
        PUBLIC count_out
        
        CFI Names cfiNames0
        CFI StackFrame CFA R13 HUGEDATA
        CFI Resource R0:32, R1:32, R2:32, R3:32, R4:32, R5:32, R6:32, R7:32
        CFI Resource R8:32, R9:32, R10:32, R11:32, R12:32, R13:32, R14:32
        CFI VirtualResource ?RET:32
        CFI EndNames cfiNames0
        
        CFI Common cfiCommon0 Using cfiNames0
        CFI CodeAlign 2
        CFI DataAlign 4
        CFI ReturnAddress ?RET CODE
        CFI CFA R13+0
        CFI R0 Undefined
        CFI R1 Undefined
        CFI R2 Undefined
        CFI R3 Undefined
        CFI R4 SameValue
        CFI R5 SameValue
        CFI R6 SameValue
        CFI R7 SameValue
        CFI R8 SameValue
        CFI R9 SameValue
        CFI R10 SameValue
        CFI R11 SameValue
        CFI R12 Undefined
        CFI R14 Undefined
        CFI ?RET R14
        CFI EndCommon cfiCommon0
        
GetEPRxCount        SYMBOL "GetEPRxCount"
PMAToUserBufferCopy SYMBOL "PMAToUserBufferCopy"
SetEPRxValid        SYMBOL "SetEPRxValid"
??GetEPRxCount??rT  SYMBOL "??rT", GetEPRxCount
??PMAToUserBufferCopy??rT SYMBOL "??rT", PMAToUserBufferCopy
??SetEPRxValid??rT  SYMBOL "??rT", SetEPRxValid

        EXTERN GetEPRxCount
        FUNCTION GetEPRxCount,0202H
        EXTERN PMAToUserBufferCopy
        FUNCTION PMAToUserBufferCopy,0202H
        EXTERN SetEPRxValid
        FUNCTION SetEPRxValid,0202H

// D:\资料\ST\ST\usb\USBLib\demos\Virtual_COM_Port\source\usb_endp.c
//    1 /******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
//    2 * File Name          : usb_endp.c
//    3 * Author             : MCD Application Team
//    4 * Version            : V2.2.0
//    5 * Date               : 06/13/2008
//    6 * Description        : Endpoint routines
//    7 ********************************************************************************
//    8 * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
//    9 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
//   10 * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
//   11 * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
//   12 * CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
//   13 * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
//   14 *******************************************************************************/
//   15 
//   16 /* Includes ------------------------------------------------------------------*/
//   17 #include "usb_lib.h"
//   18 #include "usb_desc.h"
//   19 #include "usb_mem.h"
//   20 #include "hw_config.h"
//   21 #include "usb_istr.h"
//   22 
//   23 /* Private typedef -----------------------------------------------------------*/
//   24 /* Private define ------------------------------------------------------------*/
//   25 /* Private macro -------------------------------------------------------------*/
//   26 /* Private variables ---------------------------------------------------------*/

        RSEG DATA_Z:DATA:SORT:NOROOT(2)
//   27 u8 buffer_out[VIRTUAL_COM_PORT_DATA_SIZE];
//   28 u32 count_out = 0;
count_out:
        DS8 4
buffer_out:
        DS8 256

        RSEG DATA_Z:DATA:SORT:NOROOT(2)
//   29 u32 count_in = 0;
count_in:
        DS8 4
//   30 
//   31 /* Private function prototypes -----------------------------------------------*/
//   32 /* Private functions ---------------------------------------------------------*/
//   33 /*******************************************************************************
//   34 * Function Name  : EP3_IN_Callback
//   35 * Description    :
//   36 * Input          : None.
//   37 * Output         : None.
//   38 * Return         : None.
//   39 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock0 Using cfiCommon0
        CFI Function EP3_OUT_Callback
        THUMB
//   40 void EP3_OUT_Callback(void)
//   41 {
EP3_OUT_Callback:
        PUSH     {R4,LR}
        CFI ?RET Frame(CFA, -4)
        CFI R4 Frame(CFA, -8)
        CFI CFA R13+8
//   42   count_out = GetEPRxCount(ENDP3);
        LDR.N    R4,??EP3_OUT_Callback_0  ;; count_out
        MOVS     R0,#+3
        _BLF     GetEPRxCount,??GetEPRxCount??rT
//   43   PMAToUserBufferCopy(buffer_out, ENDP3_RXADDR, count_out);
        LDR.N    R1,??EP3_OUT_Callback_0+0x4  ;; 0x1cf
        STR      R0,[R4, #+0]
        MOV      R2,R0
        ADDS     R0,R4,#+4
        _BLF     PMAToUserBufferCopy,??PMAToUserBufferCopy??rT
//   44   SetEPRxValid(ENDP3);
        MOVS     R0,#+3
        POP      {R4,LR}          ;; Pop
        CFI R4 SameValue
        CFI ?RET R14
        CFI CFA R13+0
        _BF.W    SetEPRxValid,??SetEPRxValid??rT
        DATA
??EP3_OUT_Callback_0:
        DC32     count_out
        DC32     0x1cf
        CFI EndBlock cfiBlock0
//   45 }
//   46 
//   47 /*******************************************************************************
//   48 * Function Name  : EP1_IN_Callback
//   49 * Description    :
//   50 * Input          : None.
//   51 * Output         : None.
//   52 * Return         : None.
//   53 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock1 Using cfiCommon0
        CFI Function EP1_IN_Callback
        THUMB
//   54 void EP1_IN_Callback(void)
//   55 {
//   56   count_in = 0;
EP1_IN_Callback:
        LDR.N    R0,??EP1_IN_Callback_0  ;; count_in
        MOVS     R1,#+0
        STR      R1,[R0, #+0]
//   57 }
        BX       LR               ;; return
        DATA
??EP1_IN_Callback_0:
        DC32     count_in
        CFI EndBlock cfiBlock1

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock2 Using cfiCommon0
        CFI NoFunction
        THUMB
??GetEPRxCount??rT:
        LDR.N    R3,??Subroutine0_0  ;; GetEPRxCount
        BX       R3
        DATA
??Subroutine0_0:
        DC32     GetEPRxCount
        CFI EndBlock cfiBlock2

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock3 Using cfiCommon0
        CFI NoFunction
        THUMB
??PMAToUserBufferCopy??rT:
        LDR.N    R3,??Subroutine1_0  ;; PMAToUserBufferCopy
        BX       R3
        DATA
??Subroutine1_0:
        DC32     PMAToUserBufferCopy
        CFI EndBlock cfiBlock3

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock4 Using cfiCommon0
        CFI NoFunction
        THUMB
??SetEPRxValid??rT:
        LDR.N    R3,??Subroutine2_0  ;; SetEPRxValid
        BX       R3
        DATA
??Subroutine2_0:
        DC32     SetEPRxValid
        CFI EndBlock cfiBlock4

        RSEG INITTAB:CODE:ROOT(2)
        DATA
?init?tab?DATA_Z:
        DCD      sfe(DATA_Z) - sfb(DATA_Z), sfb(DATA_Z), sfb(DATA_Z)

        END
//   58 
//   59 /******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/
//   60 
// 
//  76 bytes in segment CODE
// 264 bytes in segment DATA_Z
//  12 bytes in segment INITTAB
// 
//  52 bytes of CODE memory (+ 36 bytes shared)
// 264 bytes of DATA memory
//
//Errors: none
//Warnings: none

⌨️ 快捷键说明

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