?? stm32f10x_i2c.s79
字號:
//////////////////////////////////////////////////////////////////////////////
// /
// IAR ARM ANSI C/C++ Compiler V4.42A/W32 15/May/2008 12:06:31 /
// Copyright 1999-2005 IAR Systems. All rights reserved. /
// /
// Cpu mode = thumb /
// Endian = little /
// Stack alignment = 4 /
// Source file = C:\David JIANG\ST MCU\Docs\STM32\AN_JIANG\TIM /
// Encoder\example\FWLib\src\stm32f10x_i2c.c /
// Command line = "C:\David JIANG\ST MCU\Docs\STM32\AN_JIANG\TIM /
// Encoder\example\FWLib\src\stm32f10x_i2c.c" -D /
// VECT_TAB_FLASH -lcN "C:\David JIANG\ST /
// MCU\Docs\STM32\AN_JIANG\TIM /
// Encoder\example\project\EWARM\BOOT_FLASH\List\" /
// -lb "C:\David JIANG\ST MCU\Docs\STM32\AN_JIANG\TIM /
// Encoder\example\project\EWARM\BOOT_FLASH\List\" -o /
// "C:\David JIANG\ST MCU\Docs\STM32\AN_JIANG\TIM /
// Encoder\example\project\EWARM\BOOT_FLASH\Obj\" -z3 /
// --no_cse --no_unroll --no_inline --no_code_motion /
// --no_tbaa --no_clustering --no_scheduling --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\arm\LIB\dl7mptnnl8f.h" -I "C:\David JIANG\ST /
// MCU\Docs\STM32\AN_JIANG\TIM /
// Encoder\example\project\EWARM\" -I "C:\David /
// JIANG\ST MCU\Docs\STM32\AN_JIANG\TIM /
// Encoder\example\project\EWARM\..\include\" -I /
// "C:\David JIANG\ST MCU\Docs\STM32\AN_JIANG\TIM /
// Encoder\example\project\EWARM\..\..\FWLib\inc\" -I /
// "C:\Program Files\IAR Systems\Embedded Workbench /
// 4.0\arm\INC\" /
// List file = C:\David JIANG\ST MCU\Docs\STM32\AN_JIANG\TIM /
// Encoder\example\project\EWARM\BOOT_FLASH\List\stm32 /
// f10x_i2c.s79 /
// /
// /
//////////////////////////////////////////////////////////////////////////////
NAME stm32f10x_i2c
RSEG CSTACK:DATA:NOROOT(2)
??DataTable0 EQU 0
??DataTable1 EQU 0
??DataTable10 EQU 0
??DataTable11 EQU 0
??DataTable12 EQU 0
??DataTable13 EQU 0
??DataTable14 EQU 0
??DataTable15 EQU 0
??DataTable16 EQU 0
??DataTable17 EQU 0
??DataTable2 EQU 0
??DataTable20 EQU 0
??DataTable21 EQU 0
??DataTable22 EQU 0
??DataTable23 EQU 0
??DataTable24 EQU 0
??DataTable25 EQU 0
??DataTable26 EQU 0
??DataTable27 EQU 0
??DataTable3 EQU 0
??DataTable30 EQU 0
??DataTable31 EQU 0
??DataTable32 EQU 0
??DataTable33 EQU 0
??DataTable34 EQU 0
??DataTable35 EQU 0
??DataTable38 EQU 0
??DataTable39 EQU 0
??DataTable4 EQU 0
??DataTable40 EQU 0
??DataTable41 EQU 0
??DataTable42 EQU 0
??DataTable43 EQU 0
??DataTable44 EQU 0
??DataTable45 EQU 0
??DataTable46 EQU 0
??DataTable47 EQU 0
??DataTable48 EQU 0
??DataTable49 EQU 0
??DataTable5 EQU 0
??DataTable50 EQU 0
??DataTable51 EQU 0
??DataTable52 EQU 0
??DataTable53 EQU 0
??DataTable54 EQU 0
??DataTable55 EQU 0
??DataTable56 EQU 0
??DataTable57 EQU 0
??DataTable58 EQU 0
??DataTable59 EQU 0
??DataTable6 EQU 0
??DataTable60 EQU 0
??DataTable61 EQU 0
??DataTable62 EQU 0
??DataTable63 EQU 0
??DataTable64 EQU 0
??DataTable65 EQU 0
??DataTable66 EQU 0
??DataTable67 EQU 0
??DataTable68 EQU 0
??DataTable69 EQU 0
??DataTable7 EQU 0
??DataTable70 EQU 0
??DataTable71 EQU 0
??DataTable72 EQU 0
??DataTable73 EQU 0
??DataTable9 EQU 0
MULTWEAK ??RCC_APB1PeriphResetCmd??rT
MULTWEAK ??RCC_GetClocksFreq??rT
MULTWEAK ??assert_failed??rT
PUBLIC I2C_ARPCmd
PUBLIC I2C_AcknowledgeConfig
PUBLIC I2C_CalculatePEC
PUBLIC I2C_CheckEvent
PUBLIC I2C_ClearFlag
PUBLIC I2C_ClearITPendingBit
PUBLIC I2C_Cmd
PUBLIC I2C_DMACmd
PUBLIC I2C_DMALastTransferCmd
PUBLIC I2C_DeInit
PUBLIC I2C_DualAddressCmd
PUBLIC I2C_FastModeDutyCycleConfig
PUBLIC I2C_GeneralCallCmd
PUBLIC I2C_GenerateSTART
PUBLIC I2C_GenerateSTOP
PUBLIC I2C_GetFlagStatus
PUBLIC I2C_GetITStatus
PUBLIC I2C_GetLastEvent
PUBLIC I2C_GetPEC
PUBLIC I2C_ITConfig
PUBLIC I2C_Init
PUBLIC I2C_OwnAddress2Config
PUBLIC I2C_PECPositionConfig
PUBLIC I2C_ReadRegister
PUBLIC I2C_ReceiveData
PUBLIC I2C_SMBusAlertConfig
PUBLIC I2C_Send7bitAddress
PUBLIC I2C_SendData
PUBLIC I2C_SoftwareResetCmd
PUBLIC I2C_StretchClockCmd
PUBLIC I2C_StructInit
PUBLIC I2C_TransmitPEC
RCC_APB1PeriphResetCmd SYMBOL "RCC_APB1PeriphResetCmd"
RCC_GetClocksFreq SYMBOL "RCC_GetClocksFreq"
assert_failed SYMBOL "assert_failed"
??RCC_APB1PeriphResetCmd??rT SYMBOL "??rT", RCC_APB1PeriphResetCmd
??RCC_GetClocksFreq??rT SYMBOL "??rT", RCC_GetClocksFreq
??assert_failed??rT SYMBOL "??rT", assert_failed
EXTERN RCC_APB1PeriphResetCmd
EXTERN RCC_GetClocksFreq
EXTERN assert_failed
RSEG CODE:CODE:NOROOT(2)
THUMB
I2C_DeInit:
PUSH {LR}
LDR.N R1,??I2C_DeInit_0 ;; 0x40005400
CMP R0,R1
BEQ.N ??I2C_DeInit_1
LDR.N R1,??I2C_DeInit_0+0x4 ;; 0x40005800
CMP R0,R1
BEQ.N ??I2C_DeInit_2
B.N ??I2C_DeInit_3
??I2C_DeInit_1:
MOVS R1,#+1
MOVS R0,#+2097152
_BLF RCC_APB1PeriphResetCmd,??RCC_APB1PeriphResetCmd??rT
MOVS R1,#+0
MOVS R0,#+2097152
_BLF RCC_APB1PeriphResetCmd,??RCC_APB1PeriphResetCmd??rT
B.N ??I2C_DeInit_3
??I2C_DeInit_2:
MOVS R1,#+1
MOVS R0,#+4194304
_BLF RCC_APB1PeriphResetCmd,??RCC_APB1PeriphResetCmd??rT
MOVS R1,#+0
MOVS R0,#+4194304
_BLF RCC_APB1PeriphResetCmd,??RCC_APB1PeriphResetCmd??rT
??I2C_DeInit_3:
POP {PC} ;; return
DATA
??I2C_DeInit_0:
DC32 0x40005400
DC32 0x40005800
RSEG CODE:CODE:NOROOT(2)
THUMB
I2C_Init:
PUSH {R4-R8,LR}
SUB SP,SP,#+20
MOV R8,R0
MOVS R4,R1
MOVS R5,#+0
MOVS R6,#+0
MOVS R0,#+4
LDR.N R7,??I2C_Init_0 ;; 0xb71b00
LDRH R1,[R4, #+0]
CMP R1,#+0
BEQ.N ??I2C_Init_1
LDRH R0,[R4, #+0]
CMP R0,#+2
BEQ.N ??I2C_Init_1
LDRH R0,[R4, #+0]
CMP R0,#+10
BEQ.N ??I2C_Init_1
MOVS R1,#+156
LDR.N R0,??DataTable18 ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
_BLF assert_failed,??assert_failed??rT
??I2C_Init_1:
LDRH R0,[R4, #+2]
MOVS R1,#+16384
CMP R0,R1
BEQ.N ??I2C_Init_2
LDRH R0,[R4, #+2]
LDR.N R1,??DataTable8 ;; 0xbfff
CMP R0,R1
BEQ.N ??I2C_Init_2
MOVS R1,#+157
LDR.N R0,??DataTable18 ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
_BLF assert_failed,??assert_failed??rT
??I2C_Init_2:
LDRH R0,[R4, #+4]
MOVS R1,#+1024
CMP R0,R1
BCC.N ??I2C_Init_3
MOVS R1,#+158
LDR.N R0,??DataTable18 ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
_BLF assert_failed,??assert_failed??rT
??I2C_Init_3:
LDRH R0,[R4, #+6]
MOVS R1,#+1024
CMP R0,R1
BEQ.N ??I2C_Init_4
LDRH R0,[R4, #+6]
CMP R0,#+0
BEQ.N ??I2C_Init_4
MOVS R1,#+159
LDR.N R0,??DataTable18 ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
_BLF assert_failed,??assert_failed??rT
??I2C_Init_4:
LDRH R0,[R4, #+8]
MOVS R1,#+16384
CMP R0,R1
BEQ.N ??I2C_Init_5
LDRH R0,[R4, #+8]
MOVS R1,#+49152
CMP R0,R1
BEQ.N ??I2C_Init_5
MOVS R1,#+160
LDR.N R0,??DataTable18 ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
_BLF assert_failed,??assert_failed??rT
??I2C_Init_5:
LDR R0,[R4, #+12]
CMP R0,#+0
BEQ.N ??I2C_Init_6
LDR R0,[R4, #+12]
LDR.N R1,??I2C_Init_0+0x4 ;; 0x61a81
CMP R0,R1
BCC.N ??I2C_Init_7
??I2C_Init_6:
MOVS R1,#+161
LDR.N R0,??DataTable18 ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
_BLF assert_failed,??assert_failed??rT
??I2C_Init_7:
LDRH R5,[R8, #+4]
MOVS R0,R5
LDR.N R5,??I2C_Init_0+0x8 ;; 0xffc0
ANDS R5,R5,R0
MOV R0,SP
_BLF RCC_GetClocksFreq,??RCC_GetClocksFreq??rT
LDR R7,[SP, #+8]
LDR.N R0,??I2C_Init_0+0xC ;; 0xf4240
UDIV R6,R7,R0
ORRS R5,R5,R6
STRH R5,[R8, #+4]
MOVS R1,#+0
MOV R0,R8
BL I2C_Cmd
MOVS R5,#+0
LDR R0,[R4, #+12]
LDR.N R1,??I2C_Init_0+0x10 ;; 0x186a1
CMP R0,R1
BCS.N ??I2C_Init_8
LDR R0,[R4, #+12]
LSLS R0,R0,#+1
UDIV R0,R7,R0
LSLS R0,R0,#+16 ;; ZeroExtS R0,R0,#+16,#+16
LSRS R0,R0,#+16
CMP R0,#+4
BCS.N ??I2C_Init_9
MOVS R0,#+4
??I2C_Init_9:
MOVS R1,R5
MOVS R5,R0
ORRS R5,R5,R1
ADDS R6,R6,#+1
STRH R6,[R8, #+32]
B.N ??I2C_Init_10
??I2C_Init_8:
LDRH R0,[R4, #+2]
LDR.N R1,??DataTable8 ;; 0xbfff
CMP R0,R1
BNE.N ??I2C_Init_11
LDR R0,[R4, #+12]
MOVS R1,#+3
MULS R0,R1,R0
UDIV R0,R7,R0
B.N ??I2C_Init_12
??I2C_Init_11:
LDR R0,[R4, #+12]
MOVS R1,#+25
MULS R0,R1,R0
UDIV R0,R7,R0
ORRS R0,R0,#0x4000
??I2C_Init_12:
LSLS R1,R0,#+20
BNE.N ??I2C_Init_13
ORRS R0,R0,#0x1
??I2C_Init_13:
MOVS R1,R5
ORRS R5,R0,#0x8000
ORRS R5,R5,R1
LSLS R6,R6,#+16 ;; ZeroExtS R6,R6,#+16,#+16
LSRS R6,R6,#+16
MOVS R0,#+300
MULS R6,R0,R6
MOVS R0,#+1000
SDIV R0,R6,R0
ADDS R0,R0,#+1
STRH R0,[R8, #+32]
??I2C_Init_10:
STRH R5,[R8, #+28]
MOVS R1,#+1
MOV R0,R8
BL I2C_Cmd
LDRH R5,[R8, #+0]
MOVS R0,R5
LDR.N R5,??I2C_Init_0+0x14 ;; 0xfbf5
ANDS R5,R5,R0
MOVS R1,R5
LDRH R0,[R4, #+0]
LDRH R5,[R4, #+6]
ORRS R5,R5,R0
ORRS R5,R5,R1
STRH R5,[R8, #+0]
LDRH R0,[R4, #+8]
LDRH R1,[R4, #+4]
ORRS R1,R1,R0
STRH R1,[R8, #+8]
ADD SP,SP,#+20
POP {R4-R8,PC} ;; return
DATA
??I2C_Init_0:
DC32 0xb71b00
DC32 0x61a81
DC32 0xffc0
DC32 0xf4240
DC32 0x186a1
DC32 0xfbf5
RSEG CODE:CODE:NOROOT(2)
THUMB
I2C_StructInit:
MOVS R1,#+0
STRH R1,[R0, #+0]
LDR.N R1,??DataTable8 ;; 0xbfff
STRH R1,[R0, #+2]
MOVS R1,#+0
STRH R1,[R0, #+4]
MOVS R1,#+0
STRH R1,[R0, #+6]
MOVS R1,#+16384
STRH R1,[R0, #+8]
LDR.N R1,??I2C_StructInit_0 ;; 0x1388
STR R1,[R0, #+12]
BX LR ;; return
DATA
??I2C_StructInit_0:
DC32 0x1388
RSEG CODE:CODE:NOROOT(2)
DATA
??DataTable8:
DC32 0xbfff
RSEG CODE:CODE:NOROOT(2)
THUMB
I2C_Cmd:
PUSH {R4,R5,LR}
MOVS R4,R0
MOVS R5,R1
CMP R5,#+0
BEQ.N ??I2C_Cmd_0
CMP R5,#+1
BEQ.N ??I2C_Cmd_0
MOVS R1,#+292
LDR.N R0,??DataTable18 ;; `?<Constant "C:\\\\David JIANG\\\\ST MCU...">`
_BLF assert_failed,??assert_failed??rT
??I2C_Cmd_0:
CMP R5,#+0
BEQ.N ??I2C_Cmd_1
LDRH R0,[R4, #+0]
ORRS R0,R0,#0x1
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -