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

📄 main.s79

📁 用于监视I2C通信总线
💻 S79
📖 第 1 页 / 共 2 页
字号:
//////////////////////////////////////////////////////////////////////////////
//                                                                           /
// IAR ARM ANSI C/C++ Compiler V4.42A/W32 EVALUATION   10/Nov/2008  11:44:01 /
// 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\main.c                                          /
//    Command line    =  D:\资料\ST\ST\usb\USBLib\demos\Virtual_COM_Port\sou /
//                       rce\main.c -D VECT_TAB_FLASH -D USE_STM3210E_EVAL   /
//                       -lA D:\资料\ST\ST\usb\USBLib\demos\Virtual_COM_Port /
//                       \project\EWARMv4\STM3210E-EVAL\List\ -o             /
//                       D:\资料\ST\ST\usb\USBLib\demos\Virtual_COM_Port\pro /
//                       ject\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\main.s79            /
//                                                                           /
//                                                                           /
//////////////////////////////////////////////////////////////////////////////

        NAME main

        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 ??EXTI_ClearITPendingBit??rT
        MULTWEAK ??EXTI_Init??rT
        MULTWEAK ??GPIO_EXTILineConfig??rT
        MULTWEAK ??GPIO_Init??rT
        MULTWEAK ??I2C_To_USB_Send_Data??rT
        MULTWEAK ??NVIC_Init??rT
        MULTWEAK ??NVIC_SetVectorTable??rT
        MULTWEAK ??SI2C_init??rT
        MULTWEAK ??Set_System??rT
        MULTWEAK ??Set_USBClock??rT
        MULTWEAK ??TIM_ClearFlag??rT
        MULTWEAK ??TIM_Cmd??rT
        MULTWEAK ??TIM_ITConfig??rT
        MULTWEAK ??TIM_TimeBaseInit??rT
        MULTWEAK ??USB_Init??rT
        MULTWEAK ??USB_Interrupts_Config??rT
        MULTWEAK ??USB_To_USART_Send_Data??rT
        MULTWEAK ??data_convert??rT
        PUBLIC EXTI_Configuration
        FUNCTION EXTI_Configuration,0203H
        LOCFRAME CSTACK, 32, STACK
        PUBLIC TIM_Configuration
        FUNCTION TIM_Configuration,0203H
        LOCFRAME CSTACK, 20, STACK
        PUBLIC main
        FUNCTION main,0a03H
        LOCFRAME CSTACK, 8, STACK
        
        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
        
EXTI_ClearITPendingBit SYMBOL "EXTI_ClearITPendingBit"
EXTI_Init           SYMBOL "EXTI_Init"
GPIO_EXTILineConfig SYMBOL "GPIO_EXTILineConfig"
GPIO_Init           SYMBOL "GPIO_Init"
I2C_To_USB_Send_Data SYMBOL "I2C_To_USB_Send_Data"
NVIC_Init           SYMBOL "NVIC_Init"
NVIC_SetVectorTable SYMBOL "NVIC_SetVectorTable"
SI2C_init           SYMBOL "SI2C_init"
Set_System          SYMBOL "Set_System"
Set_USBClock        SYMBOL "Set_USBClock"
TIM_ClearFlag       SYMBOL "TIM_ClearFlag"
TIM_Cmd             SYMBOL "TIM_Cmd"
TIM_ITConfig        SYMBOL "TIM_ITConfig"
TIM_TimeBaseInit    SYMBOL "TIM_TimeBaseInit"
USB_Init            SYMBOL "USB_Init"
USB_Interrupts_Config SYMBOL "USB_Interrupts_Config"
USB_To_USART_Send_Data SYMBOL "USB_To_USART_Send_Data"
data_convert        SYMBOL "data_convert"
??EXTI_ClearITPendingBit??rT SYMBOL "??rT", EXTI_ClearITPendingBit
??EXTI_Init??rT     SYMBOL "??rT", EXTI_Init
??GPIO_EXTILineConfig??rT SYMBOL "??rT", GPIO_EXTILineConfig
??GPIO_Init??rT     SYMBOL "??rT", GPIO_Init
??I2C_To_USB_Send_Data??rT SYMBOL "??rT", I2C_To_USB_Send_Data
??NVIC_Init??rT     SYMBOL "??rT", NVIC_Init
??NVIC_SetVectorTable??rT SYMBOL "??rT", NVIC_SetVectorTable
??SI2C_init??rT     SYMBOL "??rT", SI2C_init
??Set_System??rT    SYMBOL "??rT", Set_System
??Set_USBClock??rT  SYMBOL "??rT", Set_USBClock
??TIM_ClearFlag??rT SYMBOL "??rT", TIM_ClearFlag
??TIM_Cmd??rT       SYMBOL "??rT", TIM_Cmd
??TIM_ITConfig??rT  SYMBOL "??rT", TIM_ITConfig
??TIM_TimeBaseInit??rT SYMBOL "??rT", TIM_TimeBaseInit
??USB_Init??rT      SYMBOL "??rT", USB_Init
??USB_Interrupts_Config??rT SYMBOL "??rT", USB_Interrupts_Config
??USB_To_USART_Send_Data??rT SYMBOL "??rT", USB_To_USART_Send_Data
??data_convert??rT  SYMBOL "??rT", data_convert

        EXTERN EXTI_ClearITPendingBit
        FUNCTION EXTI_ClearITPendingBit,0202H
        EXTERN EXTI_Init
        FUNCTION EXTI_Init,0202H
        EXTERN GPIO_EXTILineConfig
        FUNCTION GPIO_EXTILineConfig,0202H
        EXTERN GPIO_Init
        FUNCTION GPIO_Init,0202H
        EXTERN I2C_To_USB_Send_Data
        FUNCTION I2C_To_USB_Send_Data,0202H
        EXTERN NVIC_Init
        FUNCTION NVIC_Init,0202H
        EXTERN NVIC_SetVectorTable
        FUNCTION NVIC_SetVectorTable,0202H
        EXTERN SI2C_init
        FUNCTION SI2C_init,0202H
        EXTERN Set_System
        FUNCTION Set_System,0202H
        EXTERN Set_USBClock
        FUNCTION Set_USBClock,0202H
        EXTERN TIM_ClearFlag
        FUNCTION TIM_ClearFlag,0202H
        EXTERN TIM_Cmd
        FUNCTION TIM_Cmd,0202H
        EXTERN TIM_ITConfig
        FUNCTION TIM_ITConfig,0202H
        EXTERN TIM_TimeBaseInit
        FUNCTION TIM_TimeBaseInit,0202H
        EXTERN USB_Init
        FUNCTION USB_Init,0202H
        EXTERN USB_Interrupts_Config
        FUNCTION USB_Interrupts_Config,0202H
        EXTERN USB_To_USART_Send_Data
        FUNCTION USB_To_USART_Send_Data,0202H
        EXTERN bDeviceState
        EXTERN buffer_out
        EXTERN count_out
        EXTERN data_convert
        FUNCTION data_convert,0202H

// D:\资料\ST\ST\usb\USBLib\demos\Virtual_COM_Port\source\main.c
//    1 /******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
//    2 * File Name          : main.c
//    3 * Author             : MCD Application Team
//    4 * Version            : V2.2.0
//    5 * Date               : 06/13/2008
//    6 * Description        : Virtual Com Port Demo main file
//    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_desc.h"
//   20 #include "hw_config.h"
//   21 #include "usb_pwr.h"
//   22 #include "simulateI2C.h"
//   23 
//   24 /* Private typedef -----------------------------------------------------------*/
//   25 /* Private define ------------------------------------------------------------*/
//   26 /* Private macro -------------------------------------------------------------*/
//   27 /* Private variables ---------------------------------------------------------*/
//   28 /* Extern variables ----------------------------------------------------------*/
//   29 extern u32 count_out;
//   30 extern u8 buffer_out[VIRTUAL_COM_PORT_DATA_SIZE];
//   31 void TIM_Configuration(void);
//   32 void EXTI_Configuration(void);
//   33 
//   34 /* Private function prototypes -----------------------------------------------*/
//   35 /* Private functions ---------------------------------------------------------*/
//   36 

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock0 Using cfiCommon0
        CFI Function TIM_Configuration
        THUMB
//   37 void TIM_Configuration(void)
//   38 {
TIM_Configuration:
        PUSH     {R0-R2,R4,LR}
        CFI ?RET Frame(CFA, -4)
        CFI R4 Frame(CFA, -8)
        CFI CFA R13+20
//   39   TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
//   40   
//   41 #define TIM_COUNT 18000  
//   42   
//   43   NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
//   44 
//   45   
//   46   
//   47   /* TIM3 configuration */
//   48   TIM_TimeBaseStructure.TIM_Period =TIM_COUNT;          
//   49   TIM_TimeBaseStructure.TIM_Prescaler = 39;       
//   50   TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;    
//   51   TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  
//   52   TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
        LDR.N    R4,??TIM_Configuration_0  ;; 0x40000400
        MOVS     R0,#+134217728
        MOVS     R1,#+0
        _BLF     NVIC_SetVectorTable,??NVIC_SetVectorTable??rT
        LDR.N    R0,??TIM_Configuration_0+0x4  ;; 0x4650
        MOVS     R1,#+0
        STRH     R0,[SP, #+4]
        MOVS     R0,#+39
        STRH     R0,[SP, #+0]
        MOVS     R0,#+0
        STRH     R1,[SP, #+6]
        STRH     R0,[SP, #+2]
        MOV      R1,SP
        MOVS     R0,R4
        _BLF     TIM_TimeBaseInit,??TIM_TimeBaseInit??rT
//   53 
//   54 
//   55   TIM_Cmd(TIM3, ENABLE);
        MOVS     R1,#+1
        MOVS     R0,R4
        _BLF     TIM_Cmd,??TIM_Cmd??rT
//   56 
//   57   TIM_ClearFlag(TIM3, TIM_FLAG_Update);
        MOVS     R1,#+1
        MOVS     R0,R4
        _BLF     TIM_ClearFlag,??TIM_ClearFlag??rT
//   58 
//   59   TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE);
        MOVS     R2,#+1
        MOV      R1,R2
        MOVS     R0,R4
        _BLF     TIM_ITConfig,??TIM_ITConfig??rT
//   60   
//   61   
//   62   
//   63   
//   64   
//   65   
//   66 
//   67 }
        POP      {R0-R2,R4,PC}    ;; return
        Nop      
        DATA
??TIM_Configuration_0:
        DC32     0x40000400
        DC32     0x4650
        CFI EndBlock cfiBlock0
//   68 
//   69 /*******************************************************************************
//   70 * Function Name  : EXTI_Configuration
//   71 * Description    : Configures EXTI Line0.
//   72 * Input          : None
//   73 * Output         : None
//   74 * Return         : None
//   75 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock1 Using cfiCommon0
        CFI Function EXTI_Configuration
        THUMB
//   76 void EXTI_Configuration(void)
//   77 {
EXTI_Configuration:
        PUSH     {R0-R6,LR}
        CFI ?RET Frame(CFA, -4)
        CFI R6 Frame(CFA, -8)
        CFI R5 Frame(CFA, -12)
        CFI R4 Frame(CFA, -16)
        CFI CFA R13+32
//   78   EXTI_InitTypeDef EXTI_InitStructure;
//   79   GPIO_InitTypeDef GPIO_InitStructure;
//   80   NVIC_InitTypeDef NVIC_InitStructure;
//   81   
//   82   /* Configure PA.0 as input floating (EXTI Line0) , Configure PA.1 as input floating (EXTI Line1)*/
//   83   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1;
        MOVS     R0,#+3
        STRH     R0,[SP, #+12]
//   84   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
        MOVS     R0,#+4
        STRB     R0,[SP, #+15]
//   85   GPIO_Init(GPIOA, &GPIO_InitStructure);
        LDR.N    R0,??EXTI_Configuration_0  ;; 0x40010800
        ADD      R1,SP,#+12
//   86 
//   87   /* Connect EXTI Line0 to PA.0 */
//   88   GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0);
//   89   
//   90   /* Connect EXTI Line0 to PA.1 */
//   91   GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource1);
//   92 
//   93   /* Configure EXTI Line0 to generate an event or an interrupt on Rising edge */
//   94   EXTI_ClearITPendingBit(EXTI_Line0);
//   95   EXTI_InitStructure.EXTI_Line = EXTI_Line0;
        MOVS     R4,#+1
        _BLF     GPIO_Init,??GPIO_Init??rT
        MOVS     R1,#+0
        MOVS     R0,#+0
        _BLF     GPIO_EXTILineConfig,??GPIO_EXTILineConfig??rT
        MOVS     R1,#+1
        MOVS     R0,#+0
        _BLF     GPIO_EXTILineConfig,??GPIO_EXTILineConfig??rT
        MOVS     R0,#+1
        _BLF     EXTI_ClearITPendingBit,??EXTI_ClearITPendingBit??rT
//   96 
//   97   EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; 
        MOVS     R5,#+0
        STR      R4,[SP, #+4]
        STRB     R5,[SP, #+8]
//   98   
//   99   EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
        MOVS     R0,#+8
        STRB     R0,[SP, #+9]
//  100   EXTI_InitStructure.EXTI_LineCmd = ENABLE;
        MOV      R0,R4
        STRB     R0,[SP, #+10]
//  101   EXTI_Init(&EXTI_InitStructure); 
        ADD      R0,SP,#+4
        _BLF     EXTI_Init,??EXTI_Init??rT
//  102   
//  103   /* Configure EXTI Line1 to generate an event or an interrupt on Rising edge */
//  104   EXTI_ClearITPendingBit(EXTI_Line1);
        MOVS     R0,#+2
        _BLF     EXTI_ClearITPendingBit,??EXTI_ClearITPendingBit??rT
//  105   EXTI_InitStructure.EXTI_Line = EXTI_Line1;
        MOVS     R6,#+2
        STR      R6,[SP, #+4]
//  106 
//  107   EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; 
        STRB     R5,[SP, #+8]
//  108   

⌨️ 快捷键说明

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