📄 vikingii_ulpd.asm
字号:
STR V9, [SP, #8] ; |88|
.dwpsn "vikingII_ulpd.c",90,3
LDR A1, [SP, #8] ; |90|
.dwpsn "vikingII_ulpd.c",91,1
ADD SP, SP, #12 ; |90|
.dwcfa 0x0e, 0
BX LR
.dwattr DW$22, DW_AT_end_file("vikingII_ulpd.c")
.dwattr DW$22, DW_AT_end_line(0x5b)
.dwattr DW$22, DW_AT_end_column(0x01)
.dwendentry
.dwendtag DW$22
.sect ".text"
.align 4
.clink
.armfunc _CALC_HI_FREQ_COUNTER
.state32
.global _CALC_HI_FREQ_COUNTER
DW$26 .dwtag DW_TAG_subprogram, DW_AT_name("CALC_HI_FREQ_COUNTER"), DW_AT_symbol_name("_CALC_HI_FREQ_COUNTER")
.dwattr DW$26, DW_AT_low_pc(_CALC_HI_FREQ_COUNTER)
.dwattr DW$26, DW_AT_high_pc(0x00)
.dwattr DW$26, DW_AT_begin_file("vikingII_ulpd.c")
.dwattr DW$26, DW_AT_begin_line(0x5d)
.dwattr DW$26, DW_AT_begin_column(0x09)
.dwpsn "vikingII_ulpd.c",94,1
.dwfde DW$CIE
;*****************************************************************************
;* FUNCTION NAME: CALC_HI_FREQ_COUNTER *
;* *
;* Regs Modified : A1,V9,SP *
;* Regs Used : A1,V9,SP *
;* Local Frame Size : 0 Args + 12 Auto + 0 Save = 12 byte *
;*****************************************************************************
_CALC_HI_FREQ_COUNTER:
;* --------------------------------------------------------------------------*
.dwcfa 0x0e, 0
.dwcfa 0x09, 26, 14
SUB SP, SP, #12
.dwcfa 0x0e, 12
DW$27 .dwtag DW_TAG_variable, DW_AT_name("REG_MSB"), DW_AT_symbol_name("_REG_MSB")
.dwattr DW$27, DW_AT_type(*DW$T$43)
.dwattr DW$27, DW_AT_location[DW_OP_breg13 0]
DW$28 .dwtag DW_TAG_variable, DW_AT_name("REG_LSB"), DW_AT_symbol_name("_REG_LSB")
.dwattr DW$28, DW_AT_type(*DW$T$43)
.dwattr DW$28, DW_AT_location[DW_OP_breg13 4]
DW$29 .dwtag DW_TAG_variable, DW_AT_name("start_hi_counter"), DW_AT_symbol_name("_start_hi_counter")
.dwattr DW$29, DW_AT_type(*DW$T$43)
.dwattr DW$29, DW_AT_location[DW_OP_breg13 8]
.dwpsn "vikingII_ulpd.c",99,3
LDR V9, CON13 ; |99|
LDRH V9, [V9, #0] ; |99|
STR V9, [SP, #0] ; |99|
.dwpsn "vikingII_ulpd.c",100,3
LDR V9, CON14 ; |100|
LDRH V9, [V9, #0] ; |100|
STR V9, [SP, #4] ; |100|
.dwpsn "vikingII_ulpd.c",101,3
LDR A1, [SP, #4] ; |101|
LDR V9, [SP, #0] ; |101|
ADD V9, A1, V9, LSL #16 ; |101|
STR V9, [SP, #8] ; |101|
.dwpsn "vikingII_ulpd.c",103,3
LDR A1, [SP, #8] ; |103|
.dwpsn "vikingII_ulpd.c",104,1
ADD SP, SP, #12 ; |103|
.dwcfa 0x0e, 0
BX LR
.dwattr DW$26, DW_AT_end_file("vikingII_ulpd.c")
.dwattr DW$26, DW_AT_end_line(0x68)
.dwattr DW$26, DW_AT_end_column(0x01)
.dwendentry
.dwendtag DW$26
.sect ".text"
.align 4
.clink
.armfunc _CALC_NETWORK_COUNTER
.state32
.global _CALC_NETWORK_COUNTER
DW$30 .dwtag DW_TAG_subprogram, DW_AT_name("CALC_NETWORK_COUNTER"), DW_AT_symbol_name("_CALC_NETWORK_COUNTER")
.dwattr DW$30, DW_AT_low_pc(_CALC_NETWORK_COUNTER)
.dwattr DW$30, DW_AT_high_pc(0x00)
.dwattr DW$30, DW_AT_begin_file("vikingII_ulpd.c")
.dwattr DW$30, DW_AT_begin_line(0x6a)
.dwattr DW$30, DW_AT_begin_column(0x09)
.dwpsn "vikingII_ulpd.c",107,1
.dwfde DW$CIE
;*****************************************************************************
;* FUNCTION NAME: CALC_NETWORK_COUNTER *
;* *
;* Regs Modified : A1,V9,SP *
;* Regs Used : A1,V9,SP *
;* Local Frame Size : 0 Args + 12 Auto + 0 Save = 12 byte *
;*****************************************************************************
_CALC_NETWORK_COUNTER:
;* --------------------------------------------------------------------------*
.dwcfa 0x0e, 0
.dwcfa 0x09, 26, 14
SUB SP, SP, #12
.dwcfa 0x0e, 12
DW$31 .dwtag DW_TAG_variable, DW_AT_name("REG_MSB"), DW_AT_symbol_name("_REG_MSB")
.dwattr DW$31, DW_AT_type(*DW$T$43)
.dwattr DW$31, DW_AT_location[DW_OP_breg13 0]
DW$32 .dwtag DW_TAG_variable, DW_AT_name("REG_LSB"), DW_AT_symbol_name("_REG_LSB")
.dwattr DW$32, DW_AT_type(*DW$T$43)
.dwattr DW$32, DW_AT_location[DW_OP_breg13 4]
DW$33 .dwtag DW_TAG_variable, DW_AT_name("start_network_counter"), DW_AT_symbol_name("_start_network_counter")
.dwattr DW$33, DW_AT_type(*DW$T$43)
.dwattr DW$33, DW_AT_location[DW_OP_breg13 8]
.dwpsn "vikingII_ulpd.c",112,3
LDR V9, CON15 ; |112|
LDRH V9, [V9, #0] ; |112|
STR V9, [SP, #0] ; |112|
.dwpsn "vikingII_ulpd.c",113,3
LDR V9, CON16 ; |113|
LDRH V9, [V9, #0] ; |113|
STR V9, [SP, #4] ; |113|
.dwpsn "vikingII_ulpd.c",114,3
LDR A1, [SP, #4] ; |114|
LDR V9, [SP, #0] ; |114|
ADD V9, A1, V9, LSL #16 ; |114|
STR V9, [SP, #8] ; |114|
.dwpsn "vikingII_ulpd.c",116,3
LDR A1, [SP, #8] ; |116|
.dwpsn "vikingII_ulpd.c",117,1
ADD SP, SP, #12 ; |116|
.dwcfa 0x0e, 0
BX LR
.dwattr DW$30, DW_AT_end_file("vikingII_ulpd.c")
.dwattr DW$30, DW_AT_end_line(0x75)
.dwattr DW$30, DW_AT_end_column(0x01)
.dwendentry
.dwendtag DW$30
.sect ".text"
.align 4
.clink
.armfunc _VIKING_GAUGING_HI
.state32
.global _VIKING_GAUGING_HI
DW$34 .dwtag DW_TAG_subprogram, DW_AT_name("VIKING_GAUGING_HI"), DW_AT_symbol_name("_VIKING_GAUGING_HI")
.dwattr DW$34, DW_AT_low_pc(_VIKING_GAUGING_HI)
.dwattr DW$34, DW_AT_high_pc(0x00)
.dwattr DW$34, DW_AT_begin_file("vikingII_ulpd.c")
.dwattr DW$34, DW_AT_begin_line(0x78)
.dwattr DW$34, DW_AT_begin_column(0x06)
.dwpsn "vikingII_ulpd.c",121,1
.dwfde DW$CIE
;*****************************************************************************
;* FUNCTION NAME: VIKING_GAUGING_HI *
;* *
;* Regs Modified : A1,A2,A3,A4,V9,SP,LR,SR *
;* Regs Used : A1,A2,A3,A4,V9,SP,LR,SR *
;* Local Frame Size : 0 Args + 36 Auto + 4 Save = 40 byte *
;*****************************************************************************
_VIKING_GAUGING_HI:
;* --------------------------------------------------------------------------*
.dwcfa 0x0e, 0
.dwcfa 0x09, 26, 14
STMFD SP!, {LR}
.dwcfa 0x0e, 4
.dwcfa 0x80, 14, 1
SUB SP, SP, #36
.dwcfa 0x0e, 40
DW$35 .dwtag DW_TAG_variable, DW_AT_name("i"), DW_AT_symbol_name("_i")
.dwattr DW$35, DW_AT_type(*DW$T$11)
.dwattr DW$35, DW_AT_location[DW_OP_breg13 0]
DW$36 .dwtag DW_TAG_variable, DW_AT_name("start_32k_counter"), DW_AT_symbol_name("_start_32k_counter")
.dwattr DW$36, DW_AT_type(*DW$T$43)
.dwattr DW$36, DW_AT_location[DW_OP_breg13 4]
DW$37 .dwtag DW_TAG_variable, DW_AT_name("start_hi_counter"), DW_AT_symbol_name("_start_hi_counter")
.dwattr DW$37, DW_AT_type(*DW$T$43)
.dwattr DW$37, DW_AT_location[DW_OP_breg13 8]
DW$38 .dwtag DW_TAG_variable, DW_AT_name("start_network_counter"), DW_AT_symbol_name("_start_network_counter")
.dwattr DW$38, DW_AT_type(*DW$T$43)
.dwattr DW$38, DW_AT_location[DW_OP_breg13 12]
DW$39 .dwtag DW_TAG_variable, DW_AT_name("end_32k_counter"), DW_AT_symbol_name("_end_32k_counter")
.dwattr DW$39, DW_AT_type(*DW$T$43)
.dwattr DW$39, DW_AT_location[DW_OP_breg13 16]
DW$40 .dwtag DW_TAG_variable, DW_AT_name("end_hi_counter"), DW_AT_symbol_name("_end_hi_counter")
.dwattr DW$40, DW_AT_type(*DW$T$43)
.dwattr DW$40, DW_AT_location[DW_OP_breg13 20]
DW$41 .dwtag DW_TAG_variable, DW_AT_name("end_network_counter"), DW_AT_symbol_name("_end_network_counter")
.dwattr DW$41, DW_AT_type(*DW$T$43)
.dwattr DW$41, DW_AT_location[DW_OP_breg13 24]
DW$42 .dwtag DW_TAG_variable, DW_AT_name("inc_reg"), DW_AT_symbol_name("_inc_reg")
.dwattr DW$42, DW_AT_type(*DW$T$43)
.dwattr DW$42, DW_AT_location[DW_OP_breg13 28]
DW$43 .dwtag DW_TAG_variable, DW_AT_name("frac_reg"), DW_AT_symbol_name("_frac_reg")
.dwattr DW$43, DW_AT_type(*DW$T$43)
.dwattr DW$43, DW_AT_location[DW_OP_breg13 32]
.dwpsn "vikingII_ulpd.c",128,3
MOV V9, #41472 ; |128|
MOV A1, #0 ; |128|
ADD V9, V9, #134217728 ; |128|
STRH A1, [V9, #0] ; |128|
.dwpsn "vikingII_ulpd.c",129,3
MOV V9, #41472 ; |129|
MOV A1, #0 ; |129|
ADD V9, V9, #134217730 ; |129|
STRH A1, [V9, #0] ; |129|
.dwpsn "vikingII_ulpd.c",146,3
BL _CALC_32KHZ_COUNTER ; |146|
; |146|
STR A1, [SP, #4] ; |146|
.dwpsn "vikingII_ulpd.c",147,3
BL _CALC_HI_FREQ_COUNTER ; |147|
; |147|
STR A1, [SP, #8] ; |147|
.dwpsn "vikingII_ulpd.c",148,3
BL _CALC_NETWORK_COUNTER ; |148|
; |148|
STR A1, [SP, #12] ; |148|
.dwpsn "vikingII_ulpd.c",151,3
LDR A1, CON17 ; |151|
MOV V9, #0 ; |151|
STR V9, [A1, #0] ; |151|
.dwpsn "vikingII_ulpd.c",156,5
BL _VIKNGII_GPIO_setup ; |156|
; |156|
.dwpsn "vikingII_ulpd.c",158,5
LDR A1, CON18 ; |158|
LDRH V9, [A1, #0] ; |158|
ORR V9, V9, #1 ; |158|
STRH V9, [A1, #0] ; |158|
.dwpsn "vikingII_ulpd.c",158,45
MOV V9, #0 ; |158|
STR V9, [SP, #0] ; |158|
.dwpsn "vikingII_ulpd.c",158,49
MOV V9, #16 ; |158|
ADD V9, V9, #9984 ; |158|
LDR A1, [SP, #0] ; |158|
CMP A1, V9 ; |158|
BCS L2 ; |158|
; |158|
;* --------------------------------------------------------------------------*
;* BEGIN LOOP L1
;*
;* Loop source line : 158
;* Known Minimum Trip Count : 1
;* Known Maximum Trip Count : 4294967295
;* Known Max Trip Count Factor : 1
;* --------------------------------------------------------------------------*
L1:
DW$L$_VIKING_GAUGING_HI$2$B:
.dwpsn "vikingII_ulpd.c",158,57
LDR V9, [SP, #0] ; |158|
ADD V9, V9, #1 ; |158|
STR V9, [SP, #0] ; |158|
.dwpsn "vikingII_ulpd.c",158,49
MOV V9, #16 ; |158|
LDR A1, [SP, #0] ; |158|
ADD V9, V9, #9984 ; |158|
CMP A1, V9 ; |158|
BCC L1 ; |158|
; |158|
DW$L$_VIKING_GAUGING_HI$2$E:
;* --------------------------------------------------------------------------*
L2:
.dwpsn "vikingII_ulpd.c",159,5
MOV V9, #65536 ; |159|
MOV A1, #41984 ; |159|
SUB V9, V9, #1 ; |159|
ADD A1, A1, #134217730 ; |159|
STRH V9, [A1, #0] ; |159|
.dwpsn "vikingII_ulpd.c",159,44
MOV V9, #0 ; |159|
STR V9, [SP, #0] ; |159|
.dwpsn "vikingII_ulpd.c",159,48
MOV V9, #16 ; |159|
ADD V9, V9, #9984 ; |159|
LDR A1, [SP, #0] ; |159|
CMP A1, V9 ; |159|
BCS L4 ; |159|
; |159|
;* --------------------------------------------------------------------------*
;* BEGIN LOOP L3
;*
;* Loop source line : 159
;* Known Minimum Trip Count : 1
;* Known Maximum Trip Count : 4294967295
;* Known Max Trip Count Factor : 1
;* --------------------------------------------------------------------------*
L3:
DW$L$_VIKING_GAUGING_HI$4$B:
.dwpsn "vikingII_ulpd.c",159,56
LDR V9, [SP, #0] ; |159|
ADD V9, V9, #1 ; |159|
STR V9, [SP, #0] ; |159|
.dwpsn "vikingII_ulpd.c",159,48
MOV V9, #16 ; |159|
LDR A1, [SP, #0] ; |159|
ADD V9, V9, #9984 ; |159|
CMP A1, V9 ; |159|
BCC L3 ; |159|
; |159|
DW$L$_VIKING_GAUGING_HI$4$E:
;* --------------------------------------------------------------------------*
L4:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -