📄 rtc.txt
字号:
00029c ebfffffe BL Uart_GetIntNum
0002a0 e1a09000 MOV r9,r0
;;;202
;;;203 rRTCCON = rRTCCON & ~(0xf) | 0x1; //No reset, Merge BCD counters, 1/32768, RTC Control enable
0002a4 e3a00457 MOV r0,#0x57000000
0002a8 e5d00040 LDRB r0,[r0,#0x40]
0002ac e3c0000f BIC r0,r0,#0xf
0002b0 e3800001 ORR r0,r0,#1
0002b4 e3a01457 MOV r1,#0x57000000
0002b8 e5c10040 STRB r0,[r1,#0x40]
;;;204
;;;205 rBCDYEAR = ((syear/10)<<4)+(syear%10);
0002bc e1a01004 MOV r1,r4
0002c0 e3a0000a MOV r0,#0xa
0002c4 ebfffffe BL __rt_sdiv
0002c8 e1a0b001 MOV r11,r1
0002cc e1a01004 MOV r1,r4
0002d0 e3a0000a MOV r0,#0xa
0002d4 ebfffffe BL __rt_sdiv
0002d8 e08b0200 ADD r0,r11,r0,LSL #4
0002dc e3a01457 MOV r1,#0x57000000
0002e0 e5c10088 STRB r0,[r1,#0x88]
;;;206 rBCDMON = ((smonth/10)<<4)+(smonth%10);
0002e4 e1a01005 MOV r1,r5
0002e8 e3a0000a MOV r0,#0xa
0002ec ebfffffe BL __rt_sdiv
0002f0 e1a0b001 MOV r11,r1
0002f4 e1a01005 MOV r1,r5
0002f8 e3a0000a MOV r0,#0xa
0002fc ebfffffe BL __rt_sdiv
000300 e08b0200 ADD r0,r11,r0,LSL #4
000304 e3a01457 MOV r1,#0x57000000
000308 e5c10084 STRB r0,[r1,#0x84]
;;;207 rBCDDAY = sday; //SUN:1 MON:2 TUE:3 WED:4 THU:5 FRI:6 SAT:7
00030c e3a00457 MOV r0,#0x57000000
000310 e5c0a080 STRB r10,[r0,#0x80]
;;;208 rBCDDATE = ((sdate/10)<<4)+(sdate%10);
000314 e1a01006 MOV r1,r6
000318 e3a0000a MOV r0,#0xa
00031c ebfffffe BL __rt_sdiv
000320 e1a0b001 MOV r11,r1
000324 e1a01006 MOV r1,r6
000328 e3a0000a MOV r0,#0xa
00032c ebfffffe BL __rt_sdiv
000330 e08b0200 ADD r0,r11,r0,LSL #4
000334 e3a01457 MOV r1,#0x57000000
000338 e5c1007c STRB r0,[r1,#0x7c]
;;;209 rBCDHOUR = ((shour/10)<<4)+(shour%10);
00033c e1a01007 MOV r1,r7
000340 e3a0000a MOV r0,#0xa
000344 ebfffffe BL __rt_sdiv
000348 e1a0b001 MOV r11,r1
00034c e1a01007 MOV r1,r7
000350 e3a0000a MOV r0,#0xa
000354 ebfffffe BL __rt_sdiv
000358 e08b0200 ADD r0,r11,r0,LSL #4
00035c e3a01457 MOV r1,#0x57000000
000360 e5c10078 STRB r0,[r1,#0x78]
;;;210 rBCDMIN = ((smin/10)<<4)+(smin%10);
000364 e1a01008 MOV r1,r8
000368 e3a0000a MOV r0,#0xa
00036c ebfffffe BL __rt_sdiv
000370 e1a0b001 MOV r11,r1
000374 e1a01008 MOV r1,r8
000378 e3a0000a MOV r0,#0xa
00037c ebfffffe BL __rt_sdiv
000380 e08b0200 ADD r0,r11,r0,LSL #4
000384 e3a01457 MOV r1,#0x57000000
000388 e5c10074 STRB r0,[r1,#0x74]
;;;211 rBCDSEC = ((ssec/10)<<4)+(ssec%10);
00038c e1a01009 MOV r1,r9
000390 e3a0000a MOV r0,#0xa
000394 ebfffffe BL __rt_sdiv
000398 e1a0b001 MOV r11,r1
00039c e1a01009 MOV r1,r9
0003a0 e3a0000a MOV r0,#0xa
0003a4 ebfffffe BL __rt_sdiv
0003a8 e08b0200 ADD r0,r11,r0,LSL #4
0003ac e3a01457 MOV r1,#0x57000000
0003b0 e5c10070 STRB r0,[r1,#0x70]
;;;212
;;;213 Uart_Printf("%2d : %2d : %2d %10s, %2d/%2d/%4d\n",shour,smin,ssec,day[sday],smonth,sdate,syear);
0003b4 e59f01d8 LDR r0,|L1.1428|
0003b8 e790010a LDR r0,[r0,r10,LSL #2]
0003bc e1a03009 MOV r3,r9
0003c0 e1a02008 MOV r2,r8
0003c4 e1a01007 MOV r1,r7
0003c8 e88d0061 STMIA sp,{r0,r5,r6}
0003cc e28f0f71 ADR r0,|L1.1432|
0003d0 e58d400c STR r4,[sp,#0xc]
0003d4 ebfffffe BL Uart_Printf
;;;214 Uart_Printf("%2x : %2x : %2x %10s, %2x/%2x/%4x\n"
0003d8 e3a00457 MOV r0,#0x57000000
0003dc e5d03088 LDRB r3,[r0,#0x88]
0003e0 e3a00457 MOV r0,#0x57000000
0003e4 e5d0207c LDRB r2,[r0,#0x7c]
0003e8 e3a00457 MOV r0,#0x57000000
0003ec e5d01084 LDRB r1,[r0,#0x84]
0003f0 e3a00457 MOV r0,#0x57000000
0003f4 e5d00080 LDRB r0,[r0,#0x80]
0003f8 e59fc194 LDR r12,|L1.1428|
0003fc e79c0100 LDR r0,[r12,r0,LSL #2]
000400 e88d000f STMIA sp,{r0-r3}
000404 e3a00457 MOV r0,#0x57000000
000408 e5d00070 LDRB r0,[r0,#0x70]
00040c e1a03000 MOV r3,r0
000410 e3a00457 MOV r0,#0x57000000
000414 e5d00074 LDRB r0,[r0,#0x74]
000418 e1a02000 MOV r2,r0
00041c e3a00457 MOV r0,#0x57000000
000420 e5d00078 LDRB r0,[r0,#0x78]
000424 e1a01000 MOV r1,r0
000428 e28f0f63 ADR r0,|L1.1468|
00042c ebfffffe BL Uart_Printf
;;;215 ,rBCDHOUR,rBCDMIN,rBCDSEC,day[rBCDDAY],rBCDMON,rBCDDATE,rBCDYEAR);
;;;216 rRTCCON = 0x0; //No reset, Merge BCD counters, 1/32768, RTC Control disable
000430 e3a00000 MOV r0,#0
000434 e3a01457 MOV r1,#0x57000000
000438 e5c10040 STRB r0,[r1,#0x40]
;;;217 }
00043c e28dd014 ADD sp,sp,#0x14
000440 e8bd8ff0 LDMFD sp!,{r4-r11,pc}
|L1.1092|
000444 5452205b DCB "[ RT"
000448 69542043 DCB "C Ti"
00044c 5320656d DCB "me S"
000450 69747465 DCB "etti"
000454 5d20676e DCB "ng ]"
000458 0000000a DCB "\n\0\0\0"
|L1.1116|
00045c 20435452 DCB "RTC "
000460 656d6954 DCB "Time"
000464 696e4920 DCB " Ini"
000468 6c616974 DCB "tial"
00046c 64657a69 DCB "ized"
000470 2e2e2e20 DCB " ..."
000474 0000000a DCB "\n\0\0\0"
|L1.1144|
000478 72616559 DCB "Year"
00047c 77542820 DCB " (Tw"
000480 6964206f DCB "o di"
000484 20746967 DCB "git "
000488 20656874 DCB "the "
00048c 6574616c DCB "late"
000490 5b297473 DCB "st)["
000494 39397e30 DCB "0~99"
000498 203a205d DCB "] : "
00049c 00000000 DCB "\0\0\0\0"
|L1.1184|
0004a0 746e6f4d DCB "Mont"
0004a4 20202068 DCB "h "
0004a8 20202020 DCB " "
0004ac 20202020 DCB " "
0004b0 20202020 DCB " "
0004b4 20202020 DCB " "
0004b8 5b202020 DCB " ["
0004bc 32317e31 DCB "1~12"
0004c0 203a205d DCB "] : "
0004c4 00000000 DCB "\0\0\0\0"
|L1.1224|
0004c8 65746144 DCB "Date"
0004cc 20202020 DCB " "
0004d0 20202020 DCB " "
0004d4 20202020 DCB " "
0004d8 20202020 DCB " "
0004dc 20202020 DCB " "
0004e0 5b202020 DCB " ["
0004e4 31337e31 DCB "1~31"
0004e8 203a205d DCB "] : "
0004ec 00000000 DCB "\0\0\0\0"
|L1.1264|
0004f0 0000006c DCD ||.constdata$1|| + 108
|L1.1268|
0004f4 20796144 DCB "Day "
0004f8 7420666f DCB "of t"
0004fc 77206568 DCB "he w"
000500 206b6565 DCB "eek "
000504 20202020 DCB " "
000508 20202020 DCB " "
00050c 20202020 DCB " "
000510 20202020 DCB " "
000514 203a2020 DCB " : "
000518 00000000 DCB "\0\0\0\0"
|L1.1308|
00051c 72756f48 DCB "Hour"
000520 20202020 DCB " "
000524 20202020 DCB " "
000528 20202020 DCB " "
00052c 20202020 DCB " "
000530 20202020 DCB " "
000534 5b202020 DCB " ["
000538 33327e30 DCB "0~23"
00053c 203a205d DCB "] : "
000540 00000000 DCB "\0\0\0\0"
|L1.1348|
000544 756e694d DCB "Minu"
000548 20206574 DCB "te "
00054c 20202020 DCB " "
000550 20202020 DCB " "
000554 20202020 DCB " "
000558 20202020 DCB " "
00055c 5b202020 DCB " ["
000560 39357e30 DCB "0~59"
000564 203a205d DCB "] : "
000568 00000000 DCB "\0\0\0\0"
|L1.1388|
00056c 6f636553 DCB "Seco"
000570 2020646e DCB "nd "
000574 20202020 DCB " "
000578 20202020 DCB " "
00057c 20202020 DCB " "
000580 20202020 DCB " "
000584 5b202020 DCB " ["
000588 39357e30 DCB "0~59"
00058c 203a205d DCB "] : "
000590 00000000 DCB "\0\0\0\0"
|L1.1428|
000594 00000000 DCD ||day||
|L1.1432|
000598 20643225 DCB "%2d "
00059c 3225203a DCB ": %2"
0005a0 203a2064 DCB "d : "
0005a4 09643225 DCB "%2d\t"
0005a8 73303125 DCB "%10s"
0005ac 2520202c DCB ", %"
0005b0 252f6432 DCB "2d/%"
0005b4 252f6432 DCB "2d/%"
0005b8 000a6434 DCB "4d\n\0"
|L1.1468|
0005bc 20783225 DCB "%2x "
0005c0 3225203a DCB ": %2"
0005c4 203a2078 DCB "x : "
0005c8 09783225 DCB "%2x\t"
0005cc 73303125 DCB "%10s"
0005d0 2520202c DCB ", %"
0005d4 252f7832 DCB "2x/%"
0005d8 252f7832 DCB "2x/%"
0005dc 000a7834 DCB "4x\n\0"
ENDP
Display_Rtc PROC
;;;70 void Display_Rtc(void)
;;;71 {
0005e0 e92d4ff0 STMFD sp!,{r4-r11,lr}
0005e4 e24dd014 SUB sp,sp,#0x14
;;;72 // int year,tmp;
;;;73 int year,tmp,key;
;;;74 int month,date,weekday,hour,min,sec;
;;;75
;;;76 Uart_Printf("[ Display RTC Test ]\n");
0005e8 e28f0f50 ADR r0,|L1.1840|
0005ec ebfffffe BL Uart_Printf
;;;77 Uart_Printf("0. RTC Initialize 1. RTC Time Setting 2. Only RTC Display\n\n");
0005f0 e59f0150 LDR r0,|L1.1864|
0005f4 ebfffffe BL Uart_Printf
;;;78 Uart_Printf("Selet : ");
0005f8 e28f0f53 ADR r0,|L1.1868|
0005fc ebfffffe BL Uart_Printf
;;;79 key = Uart_GetIntNum();
000600 ebfffffe BL Uart_GetIntNum
000604 e58d0010 STR r0,[sp,#0x10]
;;;80 Uart_Printf("\n\n");
000608 e28f0f52 ADR r0,|L1.1880|
00060c ebfffffe BL Uart_Printf
;;;81
;;;82 isInit = key;
000610 e59f0144 LDR r0,|L1.1884|
000614 e59d1010 LDR r1,[sp,#0x10]
000618 e5801000 STR r1,[r0,#0] ; isInit
;;;83
;;;84 if(isInit == 0)
00061c e59f0138 LDR r0,|L1.1884|
000620 e5900000 LDR r0,[r0,#0] ; isInit
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -