📄 rtc_test.txt
字号:
000328 64657a69 DCB "ized"
00032c 2e2e2e20 DCB " ..."
000330 0000000a DCB "\n\0\0\0"
|L1.820|
000334 72616559 DCB "Year"
000338 77542820 DCB " (Tw"
00033c 6964206f DCB "o di"
000340 20746967 DCB "git "
000344 20656874 DCB "the "
000348 6574616c DCB "late"
00034c 5b297473 DCB "st)["
000350 3f3f7830 DCB "0x??"
000354 203a205d DCB "] : "
000358 00000000 DCB "\0\0\0\0"
|L1.860|
00035c 746e6f4d DCB "Mont"
000360 20202068 DCB "h "
000364 20202020 DCB " "
000368 20202020 DCB " "
00036c 20202020 DCB " "
000370 20202020 DCB " "
000374 5b202020 DCB " ["
000378 3f3f7830 DCB "0x??"
00037c 203a205d DCB "] : "
000380 00000000 DCB "\0\0\0\0"
|L1.900|
000384 00000084 DCD ||.constdata$1|| + 132
|L1.904|
000388 20796144 DCB "Day "
00038c 7420666f DCB "of t"
000390 77206568 DCB "he w"
000394 206b6565 DCB "eek "
000398 20202020 DCB " "
00039c 20202020 DCB " "
0003a0 20202020 DCB " "
0003a4 20202020 DCB " "
0003a8 203a2020 DCB " : "
0003ac 00000000 DCB "\0\0\0\0"
|L1.944|
0003b0 65746144 DCB "Date"
0003b4 20202020 DCB " "
0003b8 20202020 DCB " "
0003bc 20202020 DCB " "
0003c0 20202020 DCB " "
0003c4 20202020 DCB " "
0003c8 305b2020 DCB " [0"
0003cc 5d3f3f78 DCB "x??]"
0003d0 00203a20 DCB " : \0"
|L1.980|
0003d4 72756f48 DCB "Hour"
0003d8 20202020 DCB " "
0003dc 20202020 DCB " "
0003e0 20202020 DCB " "
0003e4 20202020 DCB " "
0003e8 20202020 DCB " "
0003ec 5b202020 DCB " ["
0003f0 3f3f7830 DCB "0x??"
0003f4 203a205d DCB "] : "
0003f8 00000000 DCB "\0\0\0\0"
|L1.1020|
0003fc 756e694d DCB "Minu"
000400 20206574 DCB "te "
000404 20202020 DCB " "
000408 20202020 DCB " "
00040c 20202020 DCB " "
000410 20202020 DCB " "
000414 5b202020 DCB " ["
000418 3f3f7830 DCB "0x??"
00041c 203a205d DCB "] : "
000420 00000000 DCB "\0\0\0\0"
|L1.1060|
000424 6f636553 DCB "Seco"
000428 2020646e DCB "nd "
00042c 20202020 DCB " "
000430 20202020 DCB " "
000434 20202020 DCB " "
000438 20202020 DCB " "
00043c 5b202020 DCB " ["
000440 3f3f7830 DCB "0x??"
000444 203a205d DCB "] : "
000448 00000000 DCB "\0\0\0\0"
ENDP
Display_Rtc PROC
;;;83 void Display_Rtc(void)
;;;84 {
00044c e92d4ff0 STMFD sp!,{r4-r11,lr}
000450 e24dd014 SUB sp,sp,#0x14
;;;85 // int year,tmp;
;;;86 int year,tmp,key;
;;;87 int month,date,weekday,hour,min,sec;
;;;88
;;;89 Uart_Printf("[ Display RTC Test ]\n");
000454 e28f0f4e ADR r0,|L1.1428|
000458 ebfffffe BL _printf
;;;90 Uart_Printf("0. RTC Initialize 1. RTC Time Setting 2. Only RTC Display\n\n");
00045c e59f0148 LDR r0,|L1.1452|
000460 ebfffffe BL _printf
;;;91 Uart_Printf("Selet : ");
000464 e28f0f51 ADR r0,|L1.1456|
000468 ebfffffe BL _printf
;;;92 key = Uart_GetIntNum();
00046c ebfffffe BL Uart_GetIntNum
000470 e58d0010 STR r0,[sp,#0x10]
;;;93 Uart_Printf("\n\n");
000474 e28f0f50 ADR r0,|L1.1468|
000478 ebfffffe BL _printf
;;;94
;;;95 isInit = key;
00047c e59f013c LDR r0,|L1.1472|
000480 e59d1010 LDR r1,[sp,#0x10]
000484 e5801000 STR r1,[r0,#0] ; isInit
;;;96
;;;97 if(isInit == 0)
000488 e59f0130 LDR r0,|L1.1472|
00048c e5900000 LDR r0,[r0,#0] ; isInit
000490 e3500000 CMP r0,#0
000494 1a000004 BNE |L1.1196|
;;;98 {
;;;99 Rtc_Init();
000498 ebfffffe BL Rtc_Init
;;;100 isInit = 2;
00049c e3a00002 MOV r0,#2
0004a0 e59f1118 LDR r1,|L1.1472|
0004a4 e5810000 STR r0,[r1,#0] ; isInit
0004a8 ea000007 B |L1.1228|
;;;101 }
;;;102
;;;103 else if(isInit == 1)
|L1.1196|
0004ac e59f010c LDR r0,|L1.1472|
0004b0 e5900000 LDR r0,[r0,#0] ; isInit
0004b4 e3500001 CMP r0,#1
0004b8 1a000003 BNE |L1.1228|
;;;104 {
;;;105 Rtc_TimeSet();
0004bc ebfffffe BL Rtc_TimeSet
;;;106 isInit = 2;
0004c0 e3a00002 MOV r0,#2
0004c4 e59f10f4 LDR r1,|L1.1472|
0004c8 e5810000 STR r0,[r1,#0] ; isInit
;;;107 }
;;;108
;;;109 rRTCCON = 0x01; //No reset, Merge BCD counters, 1/32768, RTC Control enable
|L1.1228|
0004cc e3a00001 MOV r0,#1
0004d0 e51f11dc LDR r1,|L1.764|
0004d4 e5c10040 STRB r0,[r1,#0x40]
;;;110 Uart_Printf("rtcrst = %08x\n",rRTCRST);
0004d8 e1c10000 BIC r0,r1,r0
0004dc e5d0006c LDRB r0,[r0,#0x6c]
0004e0 e1a01000 MOV r1,r0
0004e4 e28f00d8 ADR r0,|L1.1476|
0004e8 ebfffffe BL _printf
;;;111
;;;112
;;;113
;;;114 while(!Uart_GetKey())
0004ec e1a00000 NOP
|L1.1264|
0004f0 ebfffffe BL Uart_GetKey
0004f4 e3500000 CMP r0,#0
0004f8 1a000020 BNE |L1.1408|
;;;115 {
;;;116 while(1)
0004fc e1a00000 NOP
|L1.1280|
000500 e1a00000 NOP
;;;117 {
;;;118 if(rBCDYEAR==0x99)
000504 e51f0210 LDR r0,|L1.764|
000508 e5d00088 LDRB r0,[r0,#0x88]
00050c e3500099 CMP r0,#0x99
000510 1a000001 BNE |L1.1308|
;;;119 year = 0x1999;
000514 e59f50b8 LDR r5,|L1.1492|
000518 ea000002 B |L1.1320|
;;;120 else
;;;121 year = 0x2000 + rBCDYEAR;
|L1.1308|
00051c e51f0228 LDR r0,|L1.764|
000520 e5d00088 LDRB r0,[r0,#0x88]
000524 e2805d80 ADD r5,r0,#0x2000
;;;122 month = rBCDMON;
|L1.1320|
000528 e51f0234 LDR r0,|L1.764|
00052c e5d08084 LDRB r8,[r0,#0x84]
;;;123 weekday = rBCDDAY;
000530 e5d07080 LDRB r7,[r0,#0x80]
;;;124 date = rBCDDATE;
000534 e5d0907c LDRB r9,[r0,#0x7c]
;;;125 hour = rBCDHOUR;
000538 e5d0a078 LDRB r10,[r0,#0x78]
;;;126 min = rBCDMIN;
00053c e5d0b074 LDRB r11,[r0,#0x74]
;;;127 sec = rBCDSEC;
000540 e5d04070 LDRB r4,[r0,#0x70]
;;;128
;;;129 if(sec!=tmp) //Same time is not display
000544 e1540006 CMP r4,r6
000548 0a000001 BEQ |L1.1364|
;;;130 {
;;;131 tmp = sec;
00054c e1a06004 MOV r6,r4
;;;132 break;
000550 ea000000 B |L1.1368|
;;;133 }
;;;134
;;;135 }
|L1.1364|
000554 eaffffe9 B |L1.1280|
;;;136 Uart_Printf("%2x : %2x : %2x %10s, %2x/%2x/%4x\n",hour,min,sec,day[weekday],month,date,year);
|L1.1368|
000558 e59f0078 LDR r0,|L1.1496|
00055c e7900107 LDR r0,[r0,r7,LSL #2]
000560 e1a03004 MOV r3,r4
000564 e1a0200b MOV r2,r11
000568 e1a0100a MOV r1,r10
00056c e88d0301 STMIA sp,{r0,r8,r9}
000570 e28f0064 ADR r0,|L1.1500|
000574 e58d500c STR r5,[sp,#0xc]
000578 ebfffffe BL _printf
;;;137 //Uart_Printf("%2x : %2x : %2x %9s, %2x/%2x/%4x rBCDDATE = %x, weekday= %x\n",hour,min,sec,day[weekday],month,date,year,rBCDDATE,weekday);
;;;138 }
00057c eaffffdb B |L1.1264|
;;;139 rRTCCON = 0x0; //No reset, Merge BCD counters, 1/32768, RTC Control disable(for power consumption)
|L1.1408|
000580 e3a00000 MOV r0,#0
000584 e51f1290 LDR r1,|L1.764|
000588 e5c10040 STRB r0,[r1,#0x40]
;;;140 }
00058c e28dd014 ADD sp,sp,#0x14
000590 e8bd8ff0 LDMFD sp!,{r4-r11,pc}
|L1.1428|
000594 6944205b DCB "[ Di"
000598 616c7073 DCB "spla"
00059c 54522079 DCB "y RT"
0005a0 65542043 DCB "C Te"
0005a4 5d207473 DCB "st ]"
0005a8 0000000a DCB "\n\0\0\0"
|L1.1452|
0005ac 000000d4 DCD ||.constdata$1|| + 212
|L1.1456|
0005b0 656c6553 DCB "Sele"
0005b4 203a2074 DCB "t : "
0005b8 00000000 DCB "\0\0\0\0"
|L1.1468|
0005bc 00000a0a DCB "\n\n\0\0"
|L1.1472|
0005c0 00000000 DCD isInit
|L1.1476|
0005c4 72637472 DCB "rtcr"
0005c8 3d207473 DCB "st ="
0005cc 38302520 DCB " %08"
0005d0 00000a78 DCB "x\n\0\0"
|L1.1492|
0005d4 00001999 DCD 0x00001999
|L1.1496|
0005d8 00000000 DCD ||day||
|L1.1500|
0005dc 20783225 DCB "%2x "
0005e0 3225203a DCB ": %2"
0005e4 203a2078 DCB "x : "
0005e8 20783225 DCB "%2x "
0005ec 30312520 DCB " %10"
0005f0 20202c73 DCB "s, "
0005f4 2f783225 DCB "%2x/"
0005f8 2f783225 DCB "%2x/"
0005fc 0a783425 DCB "%4x\n"
000600 00000000 DCB "\0\0\0\0"
ENDP
EINT0_int PROC
;;;337 void __irq EINT0_int(void)
;;;338 {
000604 e92d500f STMFD sp!,{r0-r3,r12,lr}
;;;339 rEINTMASK=rEINTMASK|(BIT_EINTPEND_EINT0);
000608 e59f0068 LDR r0,|L1.1656|
00060c e5900034 LDR r0,[r0,#0x34]
000610 e3800001 ORR r0,r0,#1
000614 e59f105c LDR r1,|L1.1656|
000618 e5810034 STR r0,[r1,#0x34]
;;;340 rINTMSK=rINTMSK|(BIT_EINT0_2);
00061c e2410646 SUB r0,r1,#0x4600000
000620 e5900008 LDR r0,[r0,#8]
000624 e3800001 ORR r0,r0,#1
000628 e2411646 SUB r1,r1,#0x4600000
00062c e5810008 STR r0,[r1,#8]
;;;341 ClearPending(BIT_EINT0_2);
000630 e3a00001 MOV r0,#1
000634 e1c11000 BIC r1,r1,r0
000638 e5810000 STR r0,[r1,#0]
00063c e1c10000 BIC r0,r1,r0
000640 e5900010 LDR r0,[r0,#0x10]
000644 e5810010 STR r0,[r1,#0x10]
000648 e1a00001 MOV r0,r1
00064c e5900010 LDR r0,[r0,#0x10]
;;;342 rEINTPEND=BIT_EINTPEND_EINT0;
000650 e3a00001 MOV r0,#1
000654 e2811646 ADD r1,r1,#0x4600000
000658 e5810038 STR r0,[r1,#0x38]
;;;343 Uart_Printf("EINT0 interrupt is requested for RTC round RESET !\n");
00065c e28f0018 ADR r0,|L1.1660|
000660 ebfffffe BL _printf
;;;344
;;;345 rRTCRST = (1<<3) | 3; //Round second reset enable, over than 30 sec
000664 e3a0000b MOV r0,#0xb
000668 e51f1374 LDR r1,|L1.764|
00066c e5c1006c STRB r0,[r1,#0x6c]
;;;346
;;;347
;;;348 }
000670 e8bd500f LDMFD sp!,{r0-r3,r12,lr}
000674 e25ef004 SUBS pc,lr,#4
|L1.1656|
000678 44800000 DCD 0x44800000
|L1.1660|
00067c 544e4945 DCB "EINT"
000680 6e692030 DCB "0 in"
000684 72726574 DCB "terr"
000688 20747075 DCB "upt "
00068c 72207369 DCB "is r"
000690 65757165 DCB "eque"
000694 64657473 DCB "sted"
000698 726f6620 DCB " for"
00069c 43545220 DCB " RTC"
0006a0 756f7220 DCB " rou"
0006a4 5220646e DCB "nd R"
0006a8 54455345 DCB "ESET"
0006ac 000a2120 DCB " !\n\0"
ENDP
RndRst_Rtc PROC
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -