📄 stm32f10x_rtc.s
字号:
///////////////////////////////////////////////////////////////////////////////
// /
// 30/Jul/2008 14:37:40 /
// 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_rtc.c /
// Command line = E:\library\src\stm32f10x_rtc.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_rtc.s /
// /
// /
///////////////////////////////////////////////////////////////////////////////
NAME stm32f10x_rtc
PUBLIC RTC_ClearFlag
PUBLIC RTC_ClearITPendingBit
PUBLIC RTC_EnterConfigMode
PUBLIC RTC_ExitConfigMode
PUBLIC RTC_GetCounter
PUBLIC RTC_GetDivider
PUBLIC RTC_GetFlagStatus
PUBLIC RTC_GetITStatus
PUBLIC RTC_ITConfig
PUBLIC RTC_SetAlarm
PUBLIC RTC_SetCounter
PUBLIC RTC_SetPrescaler
PUBLIC RTC_WaitForLastTask
PUBLIC RTC_WaitForSynchro
SECTION `.XML`:CODE:NOROOT(2)
THUMB
RTC_ITConfig:
UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
CMP R1,#+0
BEQ.N ??RTC_ITConfig_0
LDR.N R2,??DataTable20 ;; 0x40002800
LDRH R2,[R2, #+0]
ORRS R2,R2,R0
LDR.N R3,??DataTable20 ;; 0x40002800
STRH R2,[R3, #+0]
B.N ??RTC_ITConfig_1
??RTC_ITConfig_0:
LDR.N R2,??DataTable20 ;; 0x40002800
LDRH R2,[R2, #+0]
BICS R2,R2,R0
LDR.N R3,??DataTable20 ;; 0x40002800
STRH R2,[R3, #+0]
??RTC_ITConfig_1:
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
RTC_EnterConfigMode:
LDR.N R0,??DataTable22 ;; 0x40002804
LDRH R0,[R0, #+0]
ORRS R0,R0,#0x10
LDR.N R1,??DataTable22 ;; 0x40002804
STRH R0,[R1, #+0]
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
RTC_ExitConfigMode:
LDR.N R0,??DataTable22 ;; 0x40002804
LDRH R0,[R0, #+0]
LDR.N R1,??RTC_ExitConfigMode_0 ;; 0xffef
ANDS R1,R1,R0
LDR.N R0,??DataTable22 ;; 0x40002804
STRH R1,[R0, #+0]
BX LR ;; return
Nop
DATA
??RTC_ExitConfigMode_0:
DC32 0xffef
SECTION `.XML`:CODE:NOROOT(2)
THUMB
RTC_GetCounter:
MOVS R1,#+0
MOVS R0,R1
LDR.N R1,??DataTable11 ;; 0x4000281c
LDRH R1,[R1, #+0]
MOVS R0,R1
LDR.N R1,??DataTable10 ;; 0x40002818
LDRH R1,[R1, #+0]
LSLS R1,R1,#+16
UXTH R0,R0 ;; ZeroExtS R0,R0,#+16,#+16
ORRS R0,R0,R1
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
RTC_SetCounter:
PUSH {R4,LR}
MOVS R4,R0
BL RTC_EnterConfigMode
LSRS R0,R4,#+16
LDR.N R1,??DataTable10 ;; 0x40002818
STRH R0,[R1, #+0]
LDR.N R0,??DataTable11 ;; 0x4000281c
MOVS R1,R4
STRH R1,[R0, #+0]
BL RTC_ExitConfigMode
POP {R4,PC} ;; return
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable10:
DC32 0x40002818
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable11:
DC32 0x4000281c
SECTION `.XML`:CODE:NOROOT(2)
THUMB
RTC_SetPrescaler:
PUSH {R4,LR}
MOVS R4,R0
BL RTC_EnterConfigMode
ANDS R0,R4,#0xF0000
LSRS R0,R0,#+16
LDR.N R1,??RTC_SetPrescaler_0 ;; 0x40002808
STRH R0,[R1, #+0]
LDR.N R0,??RTC_SetPrescaler_0+0x4 ;; 0x4000280c
MOVS R1,R4
STRH R1,[R0, #+0]
BL RTC_ExitConfigMode
POP {R4,PC} ;; return
Nop
DATA
??RTC_SetPrescaler_0:
DC32 0x40002808
DC32 0x4000280c
SECTION `.XML`:CODE:NOROOT(2)
THUMB
RTC_SetAlarm:
PUSH {R4,LR}
MOVS R4,R0
BL RTC_EnterConfigMode
LSRS R0,R4,#+16
LDR.N R1,??RTC_SetAlarm_0 ;; 0x40002820
STRH R0,[R1, #+0]
LDR.N R0,??RTC_SetAlarm_0+0x4 ;; 0x40002824
MOVS R1,R4
STRH R1,[R0, #+0]
BL RTC_ExitConfigMode
POP {R4,PC} ;; return
Nop
DATA
??RTC_SetAlarm_0:
DC32 0x40002820
DC32 0x40002824
SECTION `.XML`:CODE:NOROOT(2)
THUMB
RTC_GetDivider:
MOVS R1,#+0
MOVS R0,R1
LDR.N R1,??RTC_GetDivider_0 ;; 0x40002810
LDRH R1,[R1, #+0]
UXTH R1,R1 ;; ZeroExtS R1,R1,#+16,#+16
LSLS R1,R1,#+28 ;; ZeroExtS R1,R1,#+28,#+28
LSRS R1,R1,#+28
LSLS R0,R1,#+16
MOVS R1,R0
LDR.N R0,??RTC_GetDivider_0+0x4 ;; 0x40002814
LDRH R0,[R0, #+0]
UXTH R0,R0 ;; ZeroExtS R0,R0,#+16,#+16
ORRS R0,R0,R1
BX LR ;; return
DATA
??RTC_GetDivider_0:
DC32 0x40002810
DC32 0x40002814
SECTION `.XML`:CODE:NOROOT(2)
THUMB
RTC_WaitForLastTask:
??RTC_WaitForLastTask_0:
LDR.N R0,??DataTable22 ;; 0x40002804
LDRH R0,[R0, #+0]
LSLS R0,R0,#+26
BPL.N ??RTC_WaitForLastTask_0
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
RTC_WaitForSynchro:
LDR.N R0,??DataTable22 ;; 0x40002804
LDRH R0,[R0, #+0]
LDR.N R1,??RTC_WaitForSynchro_0 ;; 0xfff7
ANDS R1,R1,R0
LDR.N R0,??DataTable22 ;; 0x40002804
STRH R1,[R0, #+0]
??RTC_WaitForSynchro_1:
LDR.N R0,??DataTable22 ;; 0x40002804
LDRH R0,[R0, #+0]
LSLS R0,R0,#+28
BPL.N ??RTC_WaitForSynchro_1
BX LR ;; return
Nop
DATA
??RTC_WaitForSynchro_0:
DC32 0xfff7
SECTION `.XML`:CODE:NOROOT(2)
THUMB
RTC_GetFlagStatus:
MOVS R1,R0
MOVS R2,#+0
MOVS R0,R2
LDR.N R2,??DataTable22 ;; 0x40002804
LDRH R2,[R2, #+0]
ANDS R2,R2,R1
MOVS R3,R2
UXTH R3,R3 ;; ZeroExtS R3,R3,#+16,#+16
SUBS R3,R3,#+1
SBCS R3,R3,R3
MVNS R3,R3
LSRS R3,R3,#+31
MOVS R0,R3
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
RTC_ClearFlag:
LDR.N R1,??DataTable22 ;; 0x40002804
LDRH R1,[R1, #+0]
BICS R1,R1,R0
LDR.N R2,??DataTable22 ;; 0x40002804
STRH R1,[R2, #+0]
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
RTC_GetITStatus:
PUSH {R0,LR}
MOVS R2,R0
MOVS R1,#+0
MOVS R0,R1
LDR.N R1,??DataTable22 ;; 0x40002804
LDRH R3,[R1, #+0]
ANDS R3,R3,R2
MOVS R1,R3
UXTH R1,R1 ;; ZeroExtS R1,R1,#+16,#+16
SUBS R1,R1,#+1
SBCS R1,R1,R1
MVNS R1,R1
LSRS R1,R1,#+31
MOVS R0,R1
LDR.N R1,??DataTable20 ;; 0x40002800
LDRH R1,[R1, #+0]
TST R1,R2
BEQ.N ??RTC_GetITStatus_0
MOVS R1,R0
MOVS R0,R1
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
SUBS R0,R0,#+1
SBCS R0,R0,R0
MVNS R0,R0
LSRS R0,R0,#+31
B.N ??RTC_GetITStatus_1
??RTC_GetITStatus_0:
MOVS R1,#+0
MOVS R0,R1
??RTC_GetITStatus_1:
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
ADD SP,SP,#+4
POP {PC} ;; return
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable20:
DC32 0x40002800
SECTION `.XML`:CODE:NOROOT(2)
THUMB
RTC_ClearITPendingBit:
LDR.N R1,??DataTable22 ;; 0x40002804
LDRH R1,[R1, #+0]
BICS R1,R1,R0
LDR.N R2,??DataTable22 ;; 0x40002804
STRH R1,[R2, #+0]
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable22:
DC32 0x40002804
END
//
// 394 bytes in section .XML
//
// 394 bytes of CODE memory
//
//Errors: none
//Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -