📄 tools.asm
字号:
.long 0x0
.long DBG167
.long 0x0
.long 0x1650001
.long 0x0
.long 0x66
.long 0x0
.long DBG170
.long 0x0
.dbgseg dbg_line
DBG168:
.long DBG150
.long 0x0
.long _flash_memcpy
.long 0x1
.long DBG172
.long 0x2
.long DBG173
.long 0x3
.long DBG174
.long 0x4
.long DBG175
.long 0x5
.long DBG176
.long 0x6
.long DBG177
.long 0x7
.long DBG178
.long 0x8
.long DBG179
.long 0x9
.long DBG180
.long 0xa
.long DBG181
.long 0xb
.pseg tools_code
.global _flash_memcpy
_flash_memcpy:
; ENTRY
DBG171:
; ptr at argloc 0 (0x0) in reg size 2
; from at argloc 0 (0x0) in reg size 2
; len at argloc 0 (0x0) in reg size 2
; {
DBG172:
; _DINT();
DBG173:
dint
DBG174:
; FCTL3 = (0xA500) ;
mov #0xa500,&0x12c
DBG175:
; FCTL1 = (0xA500) | (0x0040) ;
mov #0xa540,&0x128
DBG176:
; while (len)
flash_memcpy_L1:
cmp #0x0,r14
jeq flash_memcpy_L2
DBG178:
DBG177:
; {
; *ptr++ = *from++;
mov r12,r15
add #0x1,r12
mov.b @r13+,0(r15)
DBG179:
; len--;
sub #0x1,r14
DBG180:
jmp flash_memcpy_L1
flash_memcpy_L2:
; }
DBG181:
; EXIT
DBG182:
ret
.dbgseg dbg_syms
.long 0x0
.long DBG25
.long 0x0
.long 0x0
.long 0x10002
.long 0x0
.long DBG26
.long 0x2
.long 0x0
.long 0x10002
.long 0x504e5f5f
.long 0x534d5241
.long 0x3
.long 0x0
.long 0x10002
.long 0x0
.long DBG164
.long 0x0
.long 0x0
.long 0x10002
.long 0x0
.long DBG183
.long 0x0
.long 0x0
.long 0x10002
.long 0x0
.long DBG184
.long 0x0
.long 0x0
.long 0x10002
.long 0x6d6f7266
.long 0x0
.long 0xd0102
.long 0x22
.long 0x11ffff
.long 0x6e656c
.long 0x0
.long 0xe0102
.long 0x4
.long 0x11ffff
DBG149:
.long 0x62622e
.long 0x0
.long DBG171
.long 0x0
.long 0x1640001
.long 0x0
.long 0x1
.long 0x0
.long DBG185
.long 0x0
.long 0x727470
.long 0x0
.long 0xc0102
.long 0x22
.long 0x11ffff
.long 0x62652e
.long 0x0
.long DBG179
.long 0x0
.long 0x1640001
.long 0x0
.long 0x9
.long 0x0
.long 0x0
.long 0x0
DBG185:
.long 0x62622e
.long 0x0
.long DBG179
.long 0x0
.long 0x1640001
.long 0x0
.long 0x9
.long 0x0
.long DBG186
.long 0x0
.long 0x727470
.long 0x0
.long 0xc0102
.long 0x22
.long 0x11ffff
.long 0x62652e
.long 0x0
.long DBG181
.long 0x0
.long 0x1640001
.long 0x0
.long 0xb
.long 0x0
.long 0x0
.long 0x0
.long 0x66652e
.long 0x0
.long DBG182
.long 0x0
.long 0x1650001
.long 0x0
.long 0x70
.long 0x0
.long 0x0
.long 0x0
.pseg tools_code
DBG166:
.dbgseg dbg_syms
.long 0x0
.long DBG169
.long DBG166
.long 0x0
.long 0xff0001
; }
; void flash_secure(void)
DBG165:
.long 0x0
.long DBG191
.long _flash_secure
.long 0x40
.long 0x1020001
.long DBG170
.long DBG188-DBG189
.long DBG190
.long DBG187
.long 0x0
.pseg tools_code
DBG189:
.dbgseg dbg_syms
DBG170:
.long 0x66622e
.long 0x0
.long DBG189
.long 0x0
.long 0x1650001
.long 0x0
.long 0x72
.long 0x0
.long DBG192
.long 0x0
.dbgseg dbg_line
DBG190:
.long DBG165
.long 0x0
.long _flash_secure
.long 0x1
.long DBG194
.long 0x2
.long DBG195
.long 0x3
.long DBG196
.long 0x4
.long DBG197
.long 0x5
.long DBG198
.long 0x6
.long DBG199
.long 0x7
.pseg tools_code
.global _flash_secure
_flash_secure:
; ENTRY
DBG193:
; {
DBG194:
; _DINT();
DBG195:
dint
DBG196:
; FCTL1 = (0xA500) ;
mov #0xa500,&0x128
DBG197:
; FCTL3 = (0xA500) | (0x0010) ;
mov #0xa510,&0x12c
DBG198:
; _EINT();
eint
DBG200:
DBG199:
; EXIT
ret
.dbgseg dbg_syms
.long 0x0
.long DBG25
.long 0x0
.long 0x0
.long 0x10002
.long 0x0
.long DBG26
.long 0x2
.long 0x0
.long 0x10002
.long 0x504e5f5f
.long 0x534d5241
.long 0x0
.long 0x0
.long 0x10002
.long 0x66652e
.long 0x0
.long DBG200
.long 0x0
.long 0x1650001
.long 0x0
.long 0x78
.long 0x0
.long 0x0
.long 0x0
.pseg tools_code
DBG188:
.dbgseg dbg_syms
.long 0x0
.long DBG191
.long DBG188
.long 0x0
.long 0xff0001
; }
; char store_flash_var(char *ptr,char *from, int len)
DBG187:
.long 0x0
.long DBG205
.long _store_flash_var
.long 0x42
.long 0x1020001
.long DBG192
.long DBG202-DBG203
.long DBG204
.long DBG201
.long 0x0
.pseg tools_code
DBG203:
.dbgseg dbg_syms
DBG192:
.long 0x66622e
.long 0x0
.long DBG203
.long 0x0
.long 0x1650001
.long 0x0
.long 0x7b
.long 0x0
.long DBG206
.long 0x0
.dbgseg dbg_line
DBG204:
.long DBG187
.long 0x0
.long _store_flash_var
.long 0x1
.long DBG208
.long 0x2
.long DBG209
.long 0x5
.long DBG210
.long 0x6
.long DBG211
.long 0x7
.long DBG212
.long 0x8
.long DBG213
.long 0x9
.long DBG214
.long 0xa
.long DBG215
.long 0xb
.long DBG216
.long 0xc
.long DBG217
.long 0xd
.long DBG219
.long 0xe
.long DBG220
.long 0xf
.pseg tools_code
.global _store_flash_var
_store_flash_var:
push r4
push r5
push r6
DBG207:
; ENTRY
mov r12,r4
; ptr at argloc 0 (0x0) in reg size 2
mov r13,r5
; from at argloc 0 (0x0) in reg size 2
mov r14,r6
DBG209:
DBG208:
; len at argloc 0 (0x0) in reg size 2
; tmp in reg size 2
; i in reg size 1
; {
; char * tmp;
; char i;
; flash_clr((int *)ptr);
mov r4,r12
call #_flash_clr
DBG210:
; flash_memcpy(ptr, from, len);
mov r6,r14
mov r5,r13
mov r4,r12
call #_flash_memcpy
DBG211:
; flash_secure();
call #_flash_secure
DBG213:
DBG212:
; tmp = ptr;
; for(i=0;i<len;i++)
mov.b #0x0,r12
mov.b r12,r13
sxt r13
cmp r6,r13
jge store_flash_var_L1
store_flash_var_L2:
; {
DBG214:
; if(*tmp++ != *from++)
DBG215:
mov r4,r13
add #0x1,r4
cmp.b @r5+,0(r13)
jeq store_flash_var_L3
DBG216:
; return(0);
mov.b #0x0,r12
jmp store_flash_var_LL2
DBG217:
store_flash_var_L3:
DBG218:
add.b #0x1,r12
mov.b r12,r13
sxt r13
cmp r6,r13
jl store_flash_var_L2
store_flash_var_L1:
; }
; return(1);
DBG219:
mov.b #0x1,r12
DBG220:
store_flash_var_LL2:
; EXIT
; .temp4 at stkloc 0 (0x0) size 6
DBG221:
pop r6
pop r5
pop r4
ret
.dbgseg dbg_syms
.long 0x0
.long DBG25
.long 0x6
.long 0x0
.long 0x10002
.long 0x0
.long DBG26
.long 0x2
.long 0x0
.long 0x10002
.long 0x504e5f5f
.long 0x534d5241
.long 0x3
.long 0x0
.long 0x10002
.long 0x0
.long DBG164
.long 0x0
.long 0x0
.long 0x10002
.long 0x0
.long DBG183
.long 0x0
.long 0x0
.long 0x10002
.long 0x0
.long DBG184
.long 0x0
.long 0x0
.long 0x10002
DBG186:
.long 0x62622e
.long 0x0
.long DBG207
.long 0x0
.long 0x1640001
.long 0x0
.long 0x1
.long 0x0
.long DBG222
.long 0x0
.long 0x727470
.long 0x0
.long 0xc0102
.long 0x22
.long 0x11ffff
.long 0x6d6f7266
.long 0x0
.long 0xd0102
.long 0x22
.long 0x11ffff
.long 0x6e656c
.long 0x0
.long 0xe0102
.long 0x4
.long 0x11ffff
.long 0x62652e
.long 0x0
.long DBG208
.long 0x0
.long 0x1640001
.long 0x0
.long 0x2
.long 0x0
.long 0x0
.long 0x0
DBG222:
.long 0x62622e
.long 0x0
.long DBG208
.long 0x0
.long 0x1640001
.long 0x0
.long 0x2
.long 0x0
.long DBG223
.long 0x0
.long 0x727470
.long 0x0
.long 0x40102
.long 0x22
.long 0x11ffff
.long 0x6d6f7266
.long 0x0
.long 0x50102
.long 0x22
.long 0x11ffff
.long 0x6e656c
.long 0x0
.long 0x60102
.long 0x4
.long 0x11ffff
DBG223:
.long 0x62622e
.long 0x0
.long DBG214
.long 0x0
.long 0x1640001
.long 0x0
.long 0xa
.long 0x0
.long DBG224
.long 0x0
.long 0x69
.long 0x0
.long 0xc0102
.long 0x2
.long 0x4ffff
.long 0x62652e
.long 0x0
.long DBG216
.long 0x0
.long 0x1640001
.long 0x0
.long 0xc
.long 0x0
.long 0x0
.long 0x0
DBG224:
.long 0x62622e
.long 0x0
.long DBG216
.long 0x0
.long 0x1640001
.long 0x0
.long 0xc
.long 0x0
.long DBG225
.long 0x0
.long 0x69
.long 0x0
.long 0xc0102
.long 0x2
.long 0x4ffff
.long 0x706d74
.long 0x0
.long 0x40102
.long 0x22
.long 0x4ffff
.long 0x62652e
.long 0x0
.long DBG220
.long 0x0
.long 0x1640001
.long 0x0
.long 0xf
.long 0x0
.long 0x0
.long 0x0
.long 0x62652e
.long 0x0
.long DBG220
.long 0x0
.long 0x1640001
.long 0x0
.long 0xf
.long 0x0
.long 0x0
.long 0x0
.long 0x66652e
.long 0x0
.long DBG221
.long 0x0
.long 0x1650001
.long 0x0
.long 0x89
.long 0x0
.long 0x0
.long 0x0
.pseg tools_code
DBG202:
.dbgseg dbg_syms
.long 0x0
.long DBG205
.long DBG202
.long 0x0
.long 0xff0001
; }
; void CheckExternVoltage(void)
DBG201:
.long 0x0
.long DBG230
.long _CheckExternVoltage
.long 0x40
.long 0x1020001
.long DBG206
.long DBG227-DBG228
.long DBG229
.long DBG226
.long 0x0
.pseg tools_code
DBG228:
.dbgseg dbg_syms
DBG206:
.long 0x66622e
.long 0x0
.long DBG228
.long 0x0
.long 0x1650001
.long 0x0
.long 0x8d
.long 0x0
.long DBG231
.long 0x0
.dbgseg dbg_line
DBG229:
.long DBG201
.long 0x0
.long _CheckExternVoltage
.long 0x1
.long DBG233
.long 0x2
.long DBG234
.long 0x9
.long DBG235
.long 0x10
.pseg tools_code
.global _CheckExternVoltage
_CheckExternVoltage:
; ENTRY
DBG232:
; {
DBG233:
; emeter.ui_anti_tamperring_status |= (0x0008) ;
DBG234:
bis #0x8,&_emeter+0x2
DBG236:
DBG235:
; EXIT
ret
.dbgseg dbg_syms
.long 0x0
.long DBG25
.long 0x0
.long 0x0
.long 0x10002
.long 0x0
.long DBG26
.long 0x2
.long 0x0
.long 0x10002
.long 0x504e5f5f
.long 0x534d5241
.long 0x0
.long 0x0
.long 0x10002
.long 0x66652e
.long 0x0
.long DBG236
.long 0x0
.long 0x1650001
.long 0x0
.long 0x9c
.long 0x0
.long 0x0
.long 0x0
.pseg tools_code
DBG227:
.dbgseg dbg_syms
.long 0x0
.long DBG230
.long DBG227
.long 0x0
.long 0xff0001
; }
; void EnterSD16Measure (void)
DBG226:
.long 0x0
.long DBG241
.long _EnterSD16Measure
.long 0x40
.long 0x1020001
.long DBG231
.long DBG238-DBG239
.long DBG240
.long DBG237
.long 0x0
.pseg tools_code
DBG239:
.dbgseg dbg_syms
DBG231:
.long 0x66622e
.long 0x0
.long DBG239
.long 0x0
.long 0x1650001
.long 0x0
.long 0x9d
.long 0x0
.long DBG242
.long 0x0
.dbgseg dbg_line
DBG240:
.long DBG226
.long 0x0
.long _EnterSD16Measure
.long 0x1
.long DBG244
.long 0x2
.long DBG245
.long 0x4
.long DBG246
.long 0x5
.long DBG247
.long 0x6
.long DBG248
.long 0x7
.long DBG249
.long 0x8
.long DBG250
.long 0x9
.long DBG251
.long 0xa
.long DBG252
.long 0xb
.long DBG253
.long 0xc
.long DBG254
.long 0xd
.long DBG255
.long 0xe
.long DBG256
.long 0xf
.pseg tools_code
.global _EnterSD16Measure
_EnterSD16Measure:
; ENTRY
DBG243:
; {
DBG244:
; if((emeter.ui_anti_tamperring_status & (0x0001) ) == 0)
DBG245:
bit #0x1,&_emeter+0x2
jne EnterSD16Measure_L1
DBG247:
DBG246:
; {
; init_analog_front_end_SD16();
call #_init_analog_front_end_SD16
DBG248:
; TACCTL0 &= ~ (0x0010) ;
and #0xffef,&0x162
DBG249:
; emeter.uc_switch_delay_counter = 0;
mov.b #0x0,&_emeter+0x63
DBG250:
; emeter.ui_anti_tamperring_status |= (0x0001) ;
bis #0x1,&_emeter+0x2
DBG251:
; ClrDispVary(1);
mov.b #0x1,r12
call #_ClrDispVary
DBG252:
; SCFI0 = (0x00) ;
mov.b #0x0,&0x50
DBG253:
; SCFQCTL = 32 - 1;
mov.b #0x1f,&0x52
DBG254:
; FLL_CTL0 |= (0x80) ;
bis.b #0x80,&0x53
DBG256:
DBG255:
; }
EnterSD16Measure_L1:
DBG257:
; EXIT
DBG258:
ret
.dbgseg dbg_syms
.long 0x0
.long DBG25
.long 0x0
.long 0x0
.long 0x10002
.long 0x0
.long DBG26
.long 0x2
.long 0x0
.long 0x10002
.long 0x504e5f5f
.long 0x534d5241
.long 0x0
.long 0x0
.long 0x10002
.long 0x66652e
.long 0x0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -