📄 main.s79
字号:
//////////////////////////////////////////////////////////////////////////////
// /
// 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 + -