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

📄 usb_pwr.s79

📁 用于监视I2C通信总线
💻 S79
📖 第 1 页 / 共 2 页
字号:
//////////////////////////////////////////////////////////////////////////////
//                                                                           /
// IAR ARM ANSI C/C++ Compiler V4.42A/W32 EVALUATION   10/Nov/2008  11:44:08 /
// 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_pwr.c                                       /
//    Command line    =  D:\资料\ST\ST\usb\USBLib\demos\Virtual_COM_Port\sou /
//                       rce\usb_pwr.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_pwr.s79         /
//                                                                           /
//                                                                           /
//////////////////////////////////////////////////////////////////////////////

        NAME usb_pwr

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

        RSEG CSTACK:DATA:NOROOT(2)

        PUBWEAK `?*?DATA_ID`
??DataTable0 EQU 0
??DataTable1 EQU 0
??DataTable2 EQU 0
??DataTable4 EQU 0
??DataTable5 EQU 0
        MULTWEAK ??Enter_LowPowerMode??rT
        MULTWEAK ??Leave_LowPowerMode??rT
        MULTWEAK ??USB_Cable_Config??rT
        PUBWEAK ?init?tab?DATA_I
        PUBWEAK ?init?tab?DATA_Z
        PUBLIC PowerOff
        FUNCTION PowerOff,0203H
        LOCFRAME CSTACK, 8, STACK
        PUBLIC PowerOn
        FUNCTION PowerOn,0203H
        LOCFRAME CSTACK, 4, STACK
        PUBLIC Resume
        FUNCTION Resume,0203H
        LOCFRAME CSTACK, 16, STACK
        PUBLIC ResumeS
        PUBLIC Resume_Init
        FUNCTION Resume_Init,0203H
        LOCFRAME CSTACK, 8, STACK
        PUBLIC Suspend
        FUNCTION Suspend,0203H
        LOCFRAME CSTACK, 4, STACK
        PUBLIC bDeviceState
        PUBLIC fSuspendEnabled
        
        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
        
Enter_LowPowerMode  SYMBOL "Enter_LowPowerMode"
Leave_LowPowerMode  SYMBOL "Leave_LowPowerMode"
USB_Cable_Config    SYMBOL "USB_Cable_Config"
??Enter_LowPowerMode??rT SYMBOL "??rT", Enter_LowPowerMode
??Leave_LowPowerMode??rT SYMBOL "??rT", Leave_LowPowerMode
??USB_Cable_Config??rT SYMBOL "??rT", USB_Cable_Config

        EXTERN Enter_LowPowerMode
        FUNCTION Enter_LowPowerMode,0202H
        EXTERN Leave_LowPowerMode
        FUNCTION Leave_LowPowerMode,0202H
        EXTERN USB_Cable_Config
        FUNCTION USB_Cable_Config,0202H
        EXTERN wInterrupt_Mask

// D:\资料\ST\ST\usb\USBLib\demos\Virtual_COM_Port\source\usb_pwr.c
//    1 /******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
//    2 * File Name          : usb_pwr.c
//    3 * Author             : MCD Application Team
//    4 * Version            : V2.2.0
//    5 * Date               : 06/13/2008
//    6 * Description        : Connection/disconnection & power management
//    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 "stm32f10x_lib.h"
//   18 #include "usb_lib.h"
//   19 #include "usb_conf.h"
//   20 #include "usb_pwr.h"
//   21 #include "hw_config.h"
//   22 
//   23 /* Private typedef -----------------------------------------------------------*/
//   24 /* Private define ------------------------------------------------------------*/
//   25 /* Private macro -------------------------------------------------------------*/
//   26 /* Private variables ---------------------------------------------------------*/

        RSEG DATA_Z:DATA:SORT:NOROOT(2)
//   27 vu32 bDeviceState = UNCONNECTED; /* USB device status */
bDeviceState:
        DS8 4

        RSEG DATA_I:DATA:SORT:NOROOT(0)
//   28 volatile bool fSuspendEnabled = TRUE;  /* True when suspend is possible */
fSuspendEnabled:
        DS8 1
        REQUIRE `?<Initializer for fSuspendEnabled>`
//   29 
//   30 struct
//   31 {
//   32   volatile RESUME_STATE eState;
//   33   volatile u8 bESOFcnt;
//   34 }

        RSEG DATA_Z:DATA:SORT:NOROOT(0)
//   35 ResumeS;
ResumeS:
        DS8 2
//   36 
//   37 /* Extern variables ----------------------------------------------------------*/
//   38 /* Private function prototypes -----------------------------------------------*/
//   39 /* Extern function prototypes ------------------------------------------------*/
//   40 /* Private functions ---------------------------------------------------------*/
//   41 
//   42 /*******************************************************************************
//   43 * Function Name  : PowerOn
//   44 * Description    : USB IP power ON Routine.
//   45 * Input          : None.
//   46 * Output         : None.
//   47 * Return         : USB_SUCCESS.
//   48 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock0 Using cfiCommon0
        CFI Function PowerOn
        THUMB
//   49 RESULT PowerOn(void)
//   50 {
PowerOn:
        PUSH     {LR}
        CFI ?RET Frame(CFA, -4)
        CFI CFA R13+4
//   51   u16 wRegVal;
//   52 
//   53   /*** cable plugged-in ? ***/
//   54   USB_Cable_Config(ENABLE);
        MOVS     R0,#+1
        _BLF     USB_Cable_Config,??USB_Cable_Config??rT
//   55 
//   56   /*** CNTR_PWDN = 0 ***/
//   57   wRegVal = CNTR_FRES;
//   58   _SetCNTR(wRegVal);
        LDR.N    R0,??DataTable6  ;; 0x40005c40
//   59 
//   60   /*** CNTR_FRES = 0 ***/
//   61   wInterrupt_Mask = 0;
//   62   _SetCNTR(wInterrupt_Mask);
//   63   /*** Clear pending interrupts ***/
//   64   _SetISTR(0);
        LDR.N    R2,??DataTable3  ;; 0x40005c44
        MOVS     R1,#+1
        STR      R1,[R0, #+0]
        MOVS     R1,#+0
        STR      R1,[R0, #+0]
        STR      R1,[R2, #+0]
//   65   /*** Set interrupt mask ***/
//   66   wInterrupt_Mask = CNTR_RESETM | CNTR_SUSPM | CNTR_WKUPM;
        LDR.N    R2,??PowerOn_0   ;; wInterrupt_Mask
        MOVS     R1,#+7168
        STRH     R1,[R2, #+0]
//   67   _SetCNTR(wInterrupt_Mask);
        STR      R1,[R0, #+0]
//   68 
//   69   return USB_SUCCESS;
        MOVS     R0,#+0
        POP      {PC}             ;; return
        DATA
??PowerOn_0:
        DC32     wInterrupt_Mask
        CFI EndBlock cfiBlock0
//   70 }
//   71 
//   72 /*******************************************************************************
//   73 * Function Name  : PowerOff
//   74 * Description    : Handles switch-off conditions
//   75 * Input          : None.
//   76 * Output         : None.
//   77 * Return         : USB_SUCCESS.
//   78 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock1 Using cfiCommon0
        CFI Function PowerOff
        THUMB
//   79 RESULT PowerOff()
//   80 {
PowerOff:
        PUSH     {R4,LR}
        CFI ?RET Frame(CFA, -4)
        CFI R4 Frame(CFA, -8)
        CFI CFA R13+8
//   81   /* disable all ints and force USB reset */
//   82   _SetCNTR(CNTR_FRES);
        LDR.N    R4,??DataTable6  ;; 0x40005c40
        MOVS     R0,#+1
//   83   /* clear interrupt status register */
//   84   _SetISTR(0);
        MOVS     R1,#+0
        STR      R0,[R4, #+0]
        LDR.N    R0,??DataTable3  ;; 0x40005c44
        STR      R1,[R0, #+0]
//   85   /* Disable the Pull-Up*/
//   86   USB_Cable_Config(DISABLE);
        MOVS     R0,#+0
        _BLF     USB_Cable_Config,??USB_Cable_Config??rT
//   87   /* switch-off device */
//   88   _SetCNTR(CNTR_FRES + CNTR_PDWN);
        MOVS     R0,#+3
        STR      R0,[R4, #+0]
//   89   /* sw variables reset */
//   90   /* ... */
//   91 
//   92   return USB_SUCCESS;
        MOVS     R0,#+0
        POP      {R4,PC}          ;; return
        CFI EndBlock cfiBlock1
//   93 }

        RSEG CODE:CODE:NOROOT(2)
        DATA
??DataTable3:
        DC32     0x40005c44
//   94 
//   95 /*******************************************************************************
//   96 * Function Name  : Suspend
//   97 * Description    : sets suspend mode operating conditions
//   98 * Input          : None.
//   99 * Output         : None.
//  100 * Return         : USB_SUCCESS.
//  101 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock2 Using cfiCommon0
        CFI Function Suspend
        THUMB
//  102 void Suspend(void)
//  103 {
//  104   u16 wCNTR;
//  105   /* suspend preparation */
//  106   /* ... */
//  107 
//  108   /* macrocell enters suspend mode */
//  109   wCNTR = _GetCNTR();
Suspend:
        LDR.N    R0,??DataTable6  ;; 0x40005c40

⌨️ 快捷键说明

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