📄 stm32f10x_dma.s
字号:
///////////////////////////////////////////////////////////////////////////////
// /
// 30/Jul/2008 14:37:39 /
// IAR ARM ANSI C/C++ Compiler V5.11.0.20622/W32 EVALUATION /
// Copyright 1999-2007 IAR Systems. All rights reserved. /
// /
// Cpu mode = thumb /
// Endian = little /
// Source file = E:\library\src\stm32f10x_dma.c /
// Command line = E:\library\src\stm32f10x_dma.c -D EMB_FLASH -lCN /
// E:\ELE\yten\pro\Debug\List\ -lb /
// E:\ELE\yten\pro\Debug\List\ -o /
// E:\ELE\yten\pro\Debug\Obj\ --no_cse --no_unroll /
// --no_inline --no_code_motion --no_tbaa --no_clustering /
// --no_scheduling --debug --endian little --cpu /
// Cortex-M3 -e --fpu None --dlib_config "C:\Program /
// Files\IAR Systems\Embedded Workbench 5.0 /
// Evaluation\ARM\INC\DLib_Config_Normal.h" -I /
// E:\ELE\yten\pro\ -I E:\ELE\yten\pro\..\LIBRARY\INC\ -I /
// "C:\Program Files\IAR Systems\Embedded Workbench 5.0 /
// Evaluation\ARM\INC\" --section .text=.XML -On /
// List file = E:\ELE\yten\pro\Debug\List\stm32f10x_dma.s /
// /
// /
///////////////////////////////////////////////////////////////////////////////
NAME stm32f10x_dma
PUBLIC DMA_ClearFlag
PUBLIC DMA_ClearITPendingBit
PUBLIC DMA_Cmd
PUBLIC DMA_DeInit
PUBLIC DMA_GetCurrDataCounter
PUBLIC DMA_GetFlagStatus
PUBLIC DMA_GetITStatus
PUBLIC DMA_ITConfig
PUBLIC DMA_Init
PUBLIC DMA_StructInit
SECTION `.XML`:CODE:NOROOT(2)
THUMB
DMA_DeInit:
PUSH {R4,LR}
MOVS R4,R0
MOVS R1,#+0
MOVS R0,R4
BL DMA_Cmd
MOVS R0,#+0
STR R0,[R4, #+0]
MOVS R0,#+0
STR R0,[R4, #+4]
MOVS R0,#+0
STR R0,[R4, #+8]
MOVS R0,#+0
STR R0,[R4, #+12]
MOVS R0,R4
LDR.N R1,??DMA_DeInit_0 ;; 0x40020008
SUBS R0,R0,R1
BEQ.N ??DMA_DeInit_1
SUBS R0,R0,#+20
BEQ.N ??DMA_DeInit_2
SUBS R0,R0,#+20
BEQ.N ??DMA_DeInit_3
SUBS R0,R0,#+20
BEQ.N ??DMA_DeInit_4
SUBS R0,R0,#+20
BEQ.N ??DMA_DeInit_5
SUBS R0,R0,#+20
BEQ.N ??DMA_DeInit_6
SUBS R0,R0,#+20
BEQ.N ??DMA_DeInit_7
B.N ??DMA_DeInit_8
??DMA_DeInit_1:
LDR.N R0,??DataTable17 ;; 0x40020004
LDR R0,[R0, #+0]
ORRS R0,R0,#0xF
LDR.N R1,??DataTable17 ;; 0x40020004
STR R0,[R1, #+0]
B.N ??DMA_DeInit_8
??DMA_DeInit_2:
LDR.N R0,??DataTable17 ;; 0x40020004
LDR R0,[R0, #+0]
ORRS R0,R0,#0xF0
LDR.N R1,??DataTable17 ;; 0x40020004
STR R0,[R1, #+0]
B.N ??DMA_DeInit_8
??DMA_DeInit_3:
LDR.N R0,??DataTable17 ;; 0x40020004
LDR R0,[R0, #+0]
ORRS R0,R0,#0xF00
LDR.N R1,??DataTable17 ;; 0x40020004
STR R0,[R1, #+0]
B.N ??DMA_DeInit_8
??DMA_DeInit_4:
LDR.N R0,??DataTable17 ;; 0x40020004
LDR R0,[R0, #+0]
ORRS R0,R0,#0xF000
LDR.N R1,??DataTable17 ;; 0x40020004
STR R0,[R1, #+0]
B.N ??DMA_DeInit_8
??DMA_DeInit_5:
LDR.N R0,??DataTable17 ;; 0x40020004
LDR R0,[R0, #+0]
ORRS R0,R0,#0xF0000
LDR.N R1,??DataTable17 ;; 0x40020004
STR R0,[R1, #+0]
B.N ??DMA_DeInit_8
??DMA_DeInit_6:
LDR.N R0,??DataTable17 ;; 0x40020004
LDR R0,[R0, #+0]
ORRS R0,R0,#0xF00000
LDR.N R1,??DataTable17 ;; 0x40020004
STR R0,[R1, #+0]
B.N ??DMA_DeInit_8
??DMA_DeInit_7:
LDR.N R0,??DataTable17 ;; 0x40020004
LDR R0,[R0, #+0]
ORRS R0,R0,#0xF000000
LDR.N R1,??DataTable17 ;; 0x40020004
STR R0,[R1, #+0]
??DMA_DeInit_8:
POP {R4,PC} ;; return
DATA
??DMA_DeInit_0:
DC32 0x40020008
SECTION `.XML`:CODE:NOROOT(2)
THUMB
DMA_Init:
PUSH {R4,R5}
MOVS R2,#+0
MOVS R3,R2
LDR R2,[R0, #+0]
MOVS R3,R2
MOVS R2,R3
LDR.N R3,??DMA_Init_0 ;; 0xffff800f
ANDS R3,R3,R2
MOVS R2,R3
LDR R3,[R1, #+8]
LDR R4,[R1, #+32]
ORRS R4,R4,R3
LDR R3,[R1, #+16]
ORRS R3,R3,R4
LDR R4,[R1, #+20]
ORRS R4,R4,R3
LDR R3,[R1, #+24]
ORRS R3,R3,R4
LDR R4,[R1, #+28]
ORRS R4,R4,R3
LDR R5,[R1, #+36]
ORRS R5,R5,R4
LDR R3,[R1, #+40]
ORRS R3,R3,R5
ORRS R3,R3,R2
STR R3,[R0, #+0]
LDR R2,[R1, #+12]
STR R2,[R0, #+4]
LDR R2,[R1, #+0]
STR R2,[R0, #+8]
LDR R2,[R1, #+4]
STR R2,[R0, #+12]
POP {R4,R5}
BX LR ;; return
DATA
??DMA_Init_0:
DC32 0xffff800f
SECTION `.XML`:CODE:NOROOT(2)
THUMB
DMA_StructInit:
MOVS R1,#+0
STR R1,[R0, #+0]
MOVS R1,#+0
STR R1,[R0, #+4]
MOVS R1,#+0
STR R1,[R0, #+8]
MOVS R1,#+0
STR R1,[R0, #+12]
MOVS R1,#+0
STR R1,[R0, #+16]
MOVS R1,#+0
STR R1,[R0, #+20]
MOVS R1,#+0
STR R1,[R0, #+24]
MOVS R1,#+0
STR R1,[R0, #+28]
MOVS R1,#+0
STR R1,[R0, #+32]
MOVS R1,#+0
STR R1,[R0, #+36]
MOVS R1,#+0
STR R1,[R0, #+40]
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
DMA_Cmd:
UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
CMP R1,#+0
BEQ.N ??DMA_Cmd_0
LDR R2,[R0, #+0]
ORRS R2,R2,#0x1
STR R2,[R0, #+0]
B.N ??DMA_Cmd_1
??DMA_Cmd_0:
LDR R2,[R0, #+0]
MOVS R3,#+1
BICS R2,R2,R3
STR R2,[R0, #+0]
??DMA_Cmd_1:
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
DMA_ITConfig:
UXTB R2,R2 ;; ZeroExtS R2,R2,#+24,#+24
CMP R2,#+0
BEQ.N ??DMA_ITConfig_0
LDR R3,[R0, #+0]
ORRS R3,R3,R1
STR R3,[R0, #+0]
B.N ??DMA_ITConfig_1
??DMA_ITConfig_0:
LDR R3,[R0, #+0]
BICS R3,R3,R1
STR R3,[R0, #+0]
??DMA_ITConfig_1:
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
DMA_GetCurrDataCounter:
LDR R0,[R0, #+4]
UXTH R0,R0 ;; ZeroExtS R0,R0,#+16,#+16
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
DMA_GetFlagStatus:
MOVS R1,R0
MOVS R2,#+0
MOVS R0,R2
LDR.N R2,??DataTable16 ;; 0x40020000
LDR R2,[R2, #+0]
ANDS R2,R2,R1
SUBS R2,R2,#+1
SBCS R2,R2,R2
MVNS R2,R2
LSRS R2,R2,#+31
MOVS R0,R2
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
DMA_ClearFlag:
LDR.N R1,??DataTable17 ;; 0x40020004
STR R0,[R1, #+0]
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
DMA_GetITStatus:
MOVS R1,R0
MOVS R2,#+0
MOVS R0,R2
LDR.N R2,??DataTable16 ;; 0x40020000
LDR R2,[R2, #+0]
ANDS R2,R2,R1
SUBS R2,R2,#+1
SBCS R2,R2,R2
MVNS R2,R2
LSRS R2,R2,#+31
MOVS R0,R2
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable16:
DC32 0x40020000
SECTION `.XML`:CODE:NOROOT(2)
THUMB
DMA_ClearITPendingBit:
LDR.N R1,??DataTable17 ;; 0x40020004
STR R0,[R1, #+0]
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable17:
DC32 0x40020004
END
//
// 408 bytes in section .XML
//
// 408 bytes of CODE memory
//
//Errors: none
//Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -