⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tools.asm

📁 FE42X单相防窃电电表DEMO(编译器 AQ430 AQ430 V2.0.6.5)
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	.long DBG258
	.long 0x0
	.long 0x1650001
	.long 0x0
	.long 0xab
	.long 0x0
	.long 0x0
	.long 0x0
	.pseg tools_code
DBG238:
	.dbgseg dbg_syms
	.long 0x0
	.long DBG241
	.long DBG238
	.long 0x0
	.long 0xff0001
; }
; void ExitSD16Measure (void)
DBG237:
	.long 0x0
	.long DBG263
	.long _ExitSD16Measure
	.long 0x40
	.long 0x1020001
	.long DBG242
	.long DBG260-DBG261
	.long DBG262
	.long DBG259
	.long 0x0
	.pseg tools_code
DBG261:
	.dbgseg dbg_syms
DBG242:
	.long 0x66622e
	.long 0x0
	.long DBG261
	.long 0x0
	.long 0x1650001
	.long 0x0
	.long 0xac
	.long 0x0
	.long DBG264
	.long 0x0
	.dbgseg dbg_line
DBG262:
	.long DBG237
	.long 0x0
	.long _ExitSD16Measure
	.long 0x1
	.long DBG266
	.long 0x2
	.long DBG267
	.long 0x4
	.long DBG268
	.long 0x5
	.long DBG269
	.long 0x6
	.long DBG270
	.long 0x7
	.long DBG271
	.long 0x8
	.long DBG272
	.long 0x9
	.long DBG273
	.long 0xa
	.pseg tools_code
	.global _ExitSD16Measure
_ExitSD16Measure:
; ENTRY
DBG265:
; {
DBG266:
; 	if((emeter.ui_anti_tamperring_status & (0x0001) ) == (0x0001) )
DBG267:
	mov	&_emeter+0x2,r12
	and	#0x1,r12
	cmp	#0x1,r12
	jne	ExitSD16Measure_L1
DBG269:
DBG268:
; 	{
; 		SD16CCTL2 &= ~ (0x0002) ;
	bic	#0x2,&0x106
DBG270:
; 		SD16CTL &= ~ (0x0004) ; 
	bic	#0x4,&0x100
DBG271:
; 		emeter.ui_anti_tamperring_status &= ~ (0x0001) ;
	bic	#0x1,&_emeter+0x2
DBG273:
DBG272:
; 	}
ExitSD16Measure_L1:
DBG274:
; EXIT
DBG275:
	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 DBG275
	.long 0x0
	.long 0x1650001
	.long 0x0
	.long 0xb5
	.long 0x0
	.long 0x0
	.long 0x0
	.pseg tools_code
DBG260:
	.dbgseg dbg_syms
	.long 0x0
	.long DBG263
	.long DBG260
	.long 0x0
	.long 0xff0001
; }
; void EnterESPMeasure (void)
DBG259:
	.long 0x0
	.long DBG280
	.long _EnterESPMeasure
	.long 0x40
	.long 0x1020001
	.long DBG264
	.long DBG277-DBG278
	.long DBG279
	.long DBG276
	.long 0x0
	.pseg tools_code
DBG278:
	.dbgseg dbg_syms
DBG264:
	.long 0x66622e
	.long 0x0
	.long DBG278
	.long 0x0
	.long 0x1650001
	.long 0x0
	.long 0xb6
	.long 0x0
	.long DBG281
	.long 0x0
	.dbgseg dbg_line
DBG279:
	.long DBG259
	.long 0x0
	.long _EnterESPMeasure
	.long 0x1
	.long DBG283
	.long 0x2
	.long DBG284
	.long 0x4
	.long DBG285
	.long 0x5
	.long DBG286
	.long 0x7
	.long DBG287
	.long 0x8
	.long DBG288
	.long 0x9
	.long DBG289
	.long 0xa
	.long DBG290
	.long 0xb
	.long DBG291
	.long 0xc
	.long DBG292
	.long 0xd
	.long DBG293
	.long 0xe
	.long DBG294
	.long 0xf
	.long DBG295
	.long 0x10
	.long DBG296
	.long 0x11
	.long DBG297
	.long 0x13
	.long DBG298
	.long 0x14
	.pseg tools_code
	.global _EnterESPMeasure
_EnterESPMeasure:
; ENTRY
DBG282:
; {
DBG283:
; 	if((emeter.ui_anti_tamperring_status & (0x0002) ) == 0)
DBG284:
	bit	#0x2,&_emeter+0x2
	jne	EnterESPMeasure_L1
DBG286:
DBG285:
; 	{
;     	SCFI0 = (0x08)  | (0x80) ;
	mov.b	#0x88,&0x50
DBG287:
;     	SCFQCTL = 64 - 1;
	mov.b	#0x3f,&0x52
DBG288:
; 		init_analog_front_end_ESP();	
	call	#_init_analog_front_end_ESP
DBG289:
;   		init_esp_parameter();	
	call	#_init_esp_parameter
DBG290:
;   		start_measurement();	
	call	#_start_measurement
DBG291:
;   		TACTL = (0x0004)   | (1*0x100) ;
	mov	#0x104,&0x160
DBG292:
;  		TACTL |= (2*0x10) ;
	bis	#0x20,&0x160
DBG293:
;  		TACCR0 = 8 ;
	mov	#0x8,&0x172
DBG294:
;   		TACCTL0 |= (0x0010) ;	
	bis	#0x10,&0x162
DBG295:
;   		emeter.uc_switch_delay_counter = 0;
	mov.b	#0x0,&_emeter+0x63
DBG296:
;   		emeter.ui_anti_tamperring_status |= (0x0002) ;
	bis	#0x2,&_emeter+0x2
DBG298:
DBG297:
; 	}
EnterESPMeasure_L1:
DBG299:
; EXIT
DBG300:
	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 DBG300
	.long 0x0
	.long 0x1650001
	.long 0x0
	.long 0xc9
	.long 0x0
	.long 0x0
	.long 0x0
	.pseg tools_code
DBG277:
	.dbgseg dbg_syms
	.long 0x0
	.long DBG280
	.long DBG277
	.long 0x0
	.long 0xff0001
; }
; void ExitESPMeasure (void)
DBG276:
	.long 0x0
	.long DBG305
	.long _ExitESPMeasure
	.long 0x40
	.long 0x1020001
	.long DBG281
	.long DBG302-DBG303
	.long DBG304
	.long DBG301
	.long 0x0
	.pseg tools_code
DBG303:
	.dbgseg dbg_syms
DBG281:
	.long 0x66622e
	.long 0x0
	.long DBG303
	.long 0x0
	.long 0x1650001
	.long 0x0
	.long 0xca
	.long 0x0
	.long DBG306
	.long 0x0
	.dbgseg dbg_line
DBG304:
	.long DBG276
	.long 0x0
	.long _ExitESPMeasure
	.long 0x1
	.long DBG308
	.long 0x2
	.long DBG309
	.long 0x4
	.long DBG310
	.long 0x5
	.long DBG311
	.long 0x6
	.long DBG312
	.long 0x7
	.long DBG313
	.long 0x8
	.long DBG314
	.long 0x9
	.long DBG315
	.long 0xa
	.long DBG316
	.long 0xb
	.long DBG317
	.long 0xd
	.long DBG318
	.long 0xe
	.long DBG319
	.long 0xf
	.long DBG320
	.long 0x10
	.long DBG321
	.long 0x11
	.long DBG322
	.long 0x12
	.long DBG323
	.long 0x13
	.pseg tools_code
	.global _ExitESPMeasure
_ExitESPMeasure:
; ENTRY
DBG307:
; {
DBG308:
; 	if((emeter.ui_anti_tamperring_status & (0x0002) ) == (0x0002) )
DBG309:
	mov	&_emeter+0x2,r12
	and	#0x2,r12
	cmp	#0x2,r12
	jne	ExitESPMeasure_L1
DBG311:
DBG310:
; 	{
; 		MBOUT1= (0x0000) ; 
	mov	#0x0,&0x15a
DBG312:
;         MBOUT0= (0x0003) ;
	mov	#0x3,&0x158
DBG313:
;         while (( RET0  & (0x8000) ) == (0x8000) ); 
ExitESPMeasure_L2:
	mov	#0x8000,r13
	mov	&0x1c0,r12
	and	r13,r12
	cmp	r13,r12
	jeq	ExitESPMeasure_L2
ExitESPMeasure_L3:
;         if (( RET0  & (0x8000) ) == 0) 
DBG314:
	bit	#0x8000,&0x1c0
	jne	ExitESPMeasure_L4
DBG316:
DBG315:
;         {
;         	ESPCTL = 0;
	mov	#0x0,&0x150
DBG317:
;         	_NOP();_NOP();_NOP();_NOP();_NOP();
	nop
	nop
	nop
	nop
	nop
DBG318:
;        		_NOP();_NOP();_NOP();_NOP();_NOP();
	nop
	nop
	nop
	nop
	nop
DBG319:
;        		SD16CTL &= ~ (0x0004) ; 
	bic	#0x4,&0x100
DBG321:
DBG320:
;        	}
ExitESPMeasure_L4:
;        	emeter.ui_anti_tamperring_status &= ~ (0x0002) ;
	bic	#0x2,&_emeter+0x2
DBG323:
DBG322:
; 	}
ExitESPMeasure_L1:
DBG324:
; EXIT
DBG325:
	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 DBG325
	.long 0x0
	.long 0x1650001
	.long 0x0
	.long 0xdc
	.long 0x0
	.long 0x0
	.long 0x0
	.pseg tools_code
DBG302:
	.dbgseg dbg_syms
	.long 0x0
	.long DBG305
	.long DBG302
	.long 0x0
	.long 0xff0001
; }
; void SwitchToSD16Measure(void)
DBG301:
	.long 0x0
	.long DBG330
	.long _SwitchToSD16Measure
	.long 0x40
	.long 0x1020001
	.long DBG306
	.long DBG327-DBG328
	.long DBG329
	.long DBG326
	.long 0x0
	.pseg tools_code
DBG328:
	.dbgseg dbg_syms
DBG306:
	.long 0x66622e
	.long 0x0
	.long DBG328
	.long 0x0
	.long 0x1650001
	.long 0x0
	.long 0xdd
	.long 0x0
	.long DBG331
	.long 0x0
	.dbgseg dbg_line
DBG329:
	.long DBG301
	.long 0x0
	.long _SwitchToSD16Measure
	.long 0x1
	.long DBG333
	.long 0x2
	.long DBG334
	.long 0x3
	.long DBG335
	.long 0x4
	.long DBG336
	.long 0x5
	.long DBG337
	.long 0x6
	.pseg tools_code
	.global _SwitchToSD16Measure
_SwitchToSD16Measure:
; ENTRY
DBG332:
; {
DBG333:
; 	ExitESPMeasure();
DBG334:
	call	#_ExitESPMeasure
DBG335:
; 	EnterSD16Measure();
	call	#_EnterSD16Measure
DBG336:
; 	emeter.ui_anti_tamperring_status &= ~ (0x0004) ;
	bic	#0x4,&_emeter+0x2
DBG338:
DBG337:
; 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 DBG338
	.long 0x0
	.long 0x1650001
	.long 0x0
	.long 0xe2
	.long 0x0
	.long 0x0
	.long 0x0
	.pseg tools_code
DBG327:
	.dbgseg dbg_syms
	.long 0x0
	.long DBG330
	.long DBG327
	.long 0x0
	.long 0xff0001
; }
; void SwitchToESPMeasure(void)
DBG326:
	.long 0x0
	.long DBG343
	.long _SwitchToESPMeasure
	.long 0x40
	.long 0x1020001
	.long DBG331
	.long DBG340-DBG341
	.long DBG342
	.long DBG339
	.long 0x0
	.pseg tools_code
DBG341:
	.dbgseg dbg_syms
DBG331:
	.long 0x66622e
	.long 0x0
	.long DBG341
	.long 0x0
	.long 0x1650001
	.long 0x0
	.long 0xe3
	.long 0x0
	.long DBG344
	.long 0x0
	.dbgseg dbg_line
DBG342:
	.long DBG326
	.long 0x0
	.long _SwitchToESPMeasure
	.long 0x1
	.long DBG346
	.long 0x2
	.long DBG347
	.long 0x3
	.long DBG348
	.long 0x4
	.long DBG349
	.long 0x5
	.long DBG350
	.long 0x6
	.pseg tools_code
	.global _SwitchToESPMeasure
_SwitchToESPMeasure:
; ENTRY
DBG345:
; {
DBG346:
; 	ExitSD16Measure();
DBG347:
	call	#_ExitSD16Measure
DBG348:
; 	EnterESPMeasure();
	call	#_EnterESPMeasure
DBG349:
; 	emeter.ui_anti_tamperring_status &= ~ (0x0004) ;
	bic	#0x4,&_emeter+0x2
DBG351:
DBG350:
; 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 DBG351
	.long 0x0
	.long 0x1650001
	.long 0x0
	.long 0xe8
	.long 0x0
	.long 0x0
	.long 0x0
	.pseg tools_code
DBG340:
	.dbgseg dbg_syms
	.long 0x0
	.long DBG343
	.long DBG340
	.long 0x0
	.long 0xff0001
; }
; void OnlyRTCMode(void)
DBG339:
	.long 0x0
	.long DBG356
	.long _OnlyRTCMode
	.long 0x40
	.long 0x1020001
	.long DBG344
	.long DBG353-DBG354
	.long DBG355
	.long DBG352
	.long 0x0
	.pseg tools_code
DBG354:
	.dbgseg dbg_syms
DBG344:
	.long 0x66622e
	.long 0x0
	.long DBG354
	.long 0x0
	.long 0x1650001
	.long 0x0
	.long 0xe9
	.long 0x0
	.long DBG357
	.long 0x0
	.dbgseg dbg_line
DBG355:
	.long DBG339
	.long 0x0
	.long _OnlyRTCMode
	.long 0x1
	.long DBG359
	.long 0x2
	.long DBG360
	.long 0x3
	.long DBG361
	.long 0x4
	.long DBG362
	.long 0x5
	.long DBG363
	.long 0x6
	.long DBG364
	.long 0x7
	.long DBG365
	.long 0x8
	.long DBG366
	.long 0x9
	.long DBG367
	.long 0xa
	.long DBG368
	.long 0xb
	.long DBG369
	.long 0xc
	.pseg tools_code
	.global _OnlyRTCMode
_OnlyRTCMode:
; ENTRY
DBG358:
; {
DBG359:
; 	ExitSD16Measure();
DBG360:
	call	#_ExitSD16Measure
DBG361:
; 	ExitESPMeasure();
	call	#_ExitESPMeasure
DBG362:
; 	TACCTL0 &= ~ (0x0010) ;	
	and	#0xffef,&0x162
DBG363:
; 	SVSCTL = 0;
	mov.b	#0x0,&0x56
DBG364:
; 	if((emeter.ui_anti_tamperring_status & (0x0004) ) == 0)
	bit	#0x4,&_emeter+0x2
	jne	OnlyRTCMode_L1
DBG366:
DBG365:
; 	{
; 		emeter.ui_anti_tamperring_status |= (0x0004) ;
	bis	#0x4,&_emeter+0x2
DBG367:
; 		ClrDispVary(0);
	mov.b	#0x0,r12
	call	#_ClrDispVary
DBG369:
DBG368:
; 	}
OnlyRTCMode_L1:
DBG370:
; EXIT
DBG371:
	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 DBG371
	.long 0x0
	.long 0x1650001
	.long 0x0
	.long 0xf4
	.long 0x0
	.long 0x0
	.long 0x0
	.pseg tools_code
DBG353:
	.dbgseg dbg_syms
	.long 0x0
	.long DBG356
	.long DBG353
	.long 0x0
	.long 0xff0001
; }
; void ClrDispVary(unsigned char OpMode)
DBG352:
	.long 0x0
	.long DBG376
	.long _ClrDispVary
	.long 0x40
	.long 0x1020001
	.long DBG357
	.long DBG373-DBG374
	.long DBG375
	.long DBG372
	.long 0x0
	.pseg tools_code
DBG374:
	.dbgseg dbg_syms
DBG357:
	.long 0x66622e
	.long 0x0
	.long DBG374
	.long 0x0
	.long 0x1650001
	.long 0x0
	.long 0xf5
	.long 0x0
	.long DBG377
	.long 0x0
	.dbgseg dbg_line
DBG375:
	.long DBG352
	.long 0x0
	.long _ClrDispVary
	.long 0x1
	.long DBG379
	.long 0x2
	.long 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -