📄 rtc.txt
字号:
0008cc 65746641 DCB "Afte"
0008d0 20392072 DCB "r 9 "
0008d4 2c636573 DCB "sec,"
0008d8 616c6120 DCB " ala"
0008dc 69206d72 DCB "rm i"
0008e0 7265746e DCB "nter"
0008e4 74707572 DCB "rupt"
0008e8 6c697720 DCB " wil"
0008ec 636f206c DCB "l oc"
0008f0 2e727563 DCB "cur."
0008f4 000a202e DCB ". \n\0"
|L1.2296|
0008f8 00000000 DCD Rtc_Int
|L1.2300|
0008fc 31fff000 DCD 0x31fff000
ENDP
Rtc_Tick PROC
;;;262 void __irq Rtc_Tick(void)
;;;263 {
000900 e92d500f STMFD sp!,{r0-r3,r12,lr}
;;;264 rSRCPND = BIT_TICK;
000904 e3a00f40 MOV r0,#0x100
000908 e3a0144a MOV r1,#0x4a000000
00090c e5810000 STR r0,[r1,#0]
;;;265 rINTPND = BIT_TICK;
000910 e3a00f40 MOV r0,#0x100
000914 e3a0144a MOV r1,#0x4a000000
000918 e5810010 STR r0,[r1,#0x10]
;;;266 rINTPND;
00091c e3a0044a MOV r0,#0x4a000000
000920 e5900010 LDR r0,[r0,#0x10]
;;;267
;;;268 Uart_Printf("\b\b\b\b\b\b\b%03d sec",sec_tick++);
000924 e59f0024 LDR r0,|L1.2384|
000928 e5900000 LDR r0,[r0,#0] ; sec_tick
00092c e2803001 ADD r3,r0,#1
000930 e59f0018 LDR r0,|L1.2384|
000934 e5902000 LDR r2,[r0,#0] ; sec_tick
000938 e5803000 STR r3,[r0,#0] ; sec_tick
00093c e1a01002 MOV r1,r2
000940 e28f000c ADR r0,|L1.2388|
000944 ebfffffe BL Uart_Printf
;;;269 }
000948 e8bd500f LDMFD sp!,{r0-r3,r12,lr}
00094c e25ef004 SUBS pc,lr,#4
|L1.2384|
000950 00000004 DCD ||.bss$2|| + 4
|L1.2388|
000954 08080808 DCB "\b\b\b\b"
000958 25080808 DCB "\b\b\b%"
00095c 20643330 DCB "03d "
000960 00636573 DCB "sec\0"
ENDP
Test_Rtc_Tick PROC
;;;220 void Test_Rtc_Tick(void)
;;;221 {
000964 e92d4008 STMFD sp!,{r3,lr}
;;;222 Uart_Printf("[ RTC Tick interrupt(1 sec) test for S3C2442 ]\n");
000968 e28f007c ADR r0,|L1.2540|
00096c ebfffffe BL Uart_Printf
;;;223 Uart_Printf("Press any key to exit.\n");
000970 e28f00a4 ADR r0,|L1.2588|
000974 ebfffffe BL Uart_Printf
;;;224 Uart_Printf("\n");
000978 e24f0f6a ADR r0,|L1.2008|
00097c ebfffffe BL Uart_Printf
;;;225 Uart_Printf("\n");
000980 e24f0f6c ADR r0,|L1.2008|
000984 ebfffffe BL Uart_Printf
;;;226 Uart_Printf(" ");
000988 e28f00a4 ADR r0,|L1.2612|
00098c ebfffffe BL Uart_Printf
;;;227
;;;228 pISR_TICK = (unsigned)Rtc_Tick;
000990 e59f00a0 LDR r0,|L1.2616|
000994 e51f10a0 LDR r1,|L1.2300|
000998 e5810f40 STR r0,[r1,#0xf40]
;;;229 sec_tick = 1;
00099c e3a00001 MOV r0,#1
0009a0 e51f1058 LDR r1,|L1.2384|
0009a4 e5810000 STR r0,[r1,#0] ; sec_tick
;;;230 rINTMSK = ~(BIT_TICK);
0009a8 e3e00f40 MVN r0,#0x100
0009ac e3a0144a MOV r1,#0x4a000000
0009b0 e5810008 STR r0,[r1,#8]
;;;231 rRTCCON = 0x0; //No reset[3], Merge BCD counters[2], BCD clock select XTAL[1], RTC Control disable[0]
0009b4 e3a00000 MOV r0,#0
0009b8 e3a01457 MOV r1,#0x57000000
0009bc e5c10040 STRB r0,[r1,#0x40]
;;;232 rTICNT = (1<<7) + 127; //Tick time interrupt enable, Tick time count value 127
0009c0 e3a000ff MOV r0,#0xff
0009c4 e3a01457 MOV r1,#0x57000000
0009c8 e5c10044 STRB r0,[r1,#0x44]
;;;233 //Period = (n + 1) / 128 second n:Tick time count value(1~127)
;;;234 Uart_Getch();
0009cc ebfffffe BL Uart_Getch
;;;235
;;;236 rINTMSK = BIT_ALLMSK;
0009d0 e3e00000 MVN r0,#0
0009d4 e3a0144a MOV r1,#0x4a000000
0009d8 e5810008 STR r0,[r1,#8]
;;;237 rRTCCON = 0x0; //No reset[3], Merge BCD counters[2], BCD clock select XTAL[1], RTC Control disable[0]
0009dc e3a00000 MOV r0,#0
0009e0 e3a01457 MOV r1,#0x57000000
0009e4 e5c10040 STRB r0,[r1,#0x40]
;;;238 }
0009e8 e8bd8008 LDMFD sp!,{r3,pc}
|L1.2540|
0009ec 5452205b DCB "[ RT"
0009f0 69542043 DCB "C Ti"
0009f4 69206b63 DCB "ck i"
0009f8 7265746e DCB "nter"
0009fc 74707572 DCB "rupt"
000a00 73203128 DCB "(1 s"
000a04 20296365 DCB "ec) "
000a08 74736574 DCB "test"
000a0c 726f6620 DCB " for"
000a10 43335320 DCB " S3C"
000a14 32343432 DCB "2442"
000a18 000a5d20 DCB " ]\n\0"
|L1.2588|
000a1c 73657250 DCB "Pres"
000a20 6e612073 DCB "s an"
000a24 656b2079 DCB "y ke"
000a28 6f742079 DCB "y to"
000a2c 69786520 DCB " exi"
000a30 000a2e74 DCB "t.\n\0"
|L1.2612|
000a34 00202020 DCB " \0"
|L1.2616|
000a38 00000000 DCD Rtc_Tick
ENDP
EINT0_int PROC
;;;241 void __irq EINT0_int(void)
;;;242 {
000a3c e92d0003 STMFD sp!,{r0,r1}
;;;243 rSRCPND = BIT_EINT0;
000a40 e3a00001 MOV r0,#1
000a44 e3a0144a MOV r1,#0x4a000000
000a48 e5810000 STR r0,[r1,#0]
;;;244 rINTPND = BIT_EINT0;
000a4c e3a00001 MOV r0,#1
000a50 e3a0144a MOV r1,#0x4a000000
000a54 e5810010 STR r0,[r1,#0x10]
;;;245 rINTPND;
000a58 e3a0044a MOV r0,#0x4a000000
000a5c e5900010 LDR r0,[r0,#0x10]
;;;246
;;;247 rRTCRST = (1<<3) | 3; //Round second reset enable, over than 30 sec
000a60 e3a0000b MOV r0,#0xb
000a64 e3a01457 MOV r1,#0x57000000
000a68 e5c1006c STRB r0,[r1,#0x6c]
;;;248 }
000a6c e8bd0003 LDMFD sp!,{r0,r1}
000a70 e25ef004 SUBS pc,lr,#4
ENDP
AREA ||.data||, DATA, ALIGN=2
||.data$0||
||day||
DCD ||.constdata$1||
DCD ||.constdata$1||+0x2
DCD ||.constdata$1||+0x9
DCD ||.constdata$1||+0x10
DCD ||.constdata$1||+0x18
DCD ||.constdata$1||+0x22
DCD ||.constdata$1||+0x2b
DCD ||.constdata$1||+0x32
isInit
DCD 0x00000002
func_rtc_test
DCD Test_Rtc_Alarm
DCD ||.constdata$1||+0x3b
DCD Display_Rtc
DCD ||.constdata$1||+0x4b
DCD Test_Rtc_Tick
DCD ||.constdata$1||+0x5b
DCD 0x00000000
DCD 0x00000000
AREA ||.constdata||, DATA, READONLY, ALIGN=2
||.constdata$1||
DCB 0x20,0x00
DCB 0x53,0x75,0x6e,0x64
DCB 0x61,0x79,0x00
DCB 0x4d,0x6f,0x6e,0x64
DCB 0x61,0x79,0x00
DCB 0x54,0x75,0x65,0x73
DCB 0x64,0x61,0x79,0x00
DCB 0x57,0x65,0x64,0x6e
DCB 0x65,0x73,0x64,0x61
DCB 0x79,0x00
DCB 0x54,0x68,0x75,0x72
DCB 0x73,0x64,0x61,0x79
DCB 0x00
DCB 0x46,0x72,0x69,0x64
DCB 0x61,0x79,0x00
DCB 0x53,0x61,0x74,0x75
DCB 0x72,0x64,0x61,0x79
DCB 0x00
DCB 0x52,0x54,0x43,0x20
DCB 0x41,0x6c,0x61,0x72
DCB 0x6d,0x20,0x20,0x20
DCB 0x20,0x20,0x20,0x00
DCB 0x52,0x54,0x43,0x20
DCB 0x44,0x69,0x73,0x70
DCB 0x6c,0x61,0x79,0x20
DCB 0x20,0x20,0x20,0x00
DCB 0x52,0x54,0x43,0x20
DCB 0x54,0x69,0x63,0x6b
DCB 0x20,0x20,0x20,0x20
DCB 0x20,0x20,0x20,0x00
DCB 0x00
DCB 0x0a,0x31,0x3a,0x53
DCB 0x75,0x6e,0x64,0x61
DCB 0x79,0x20,0x20,0x32
DCB 0x3a,0x4d,0x6f,0x6e
DCB 0x64,0x61,0x79,0x20
DCB 0x20,0x33,0x3a,0x54
DCB 0x68,0x65,0x73,0x64
DCB 0x61,0x79,0x20,0x20
DCB 0x34,0x3a,0x57,0x65
DCB 0x64,0x6e,0x65,0x73
DCB 0x64,0x61,0x79,0x20
DCB 0x20,0x35,0x3a,0x54
DCB 0x68,0x75,0x72,0x73
DCB 0x64,0x61,0x79,0x20
DCB 0x20,0x36,0x3a,0x46
DCB 0x72,0x69,0x64,0x61
DCB 0x79,0x20,0x20,0x37
DCB 0x3a,0x53,0x61,0x74
DCB 0x75,0x72,0x64,0x61
DCB 0x79,0x0a,0x00
DCB 0x00
DCB 0x30,0x2e,0x20,0x52
DCB 0x54,0x43,0x20,0x49
DCB 0x6e,0x69,0x74,0x69
DCB 0x61,0x6c,0x69,0x7a
DCB 0x65,0x20,0x20,0x20
DCB 0x20,0x20,0x31,0x2e
DCB 0x20,0x52,0x54,0x43
DCB 0x20,0x54,0x69,0x6d
DCB 0x65,0x20,0x53,0x65
DCB 0x74,0x74,0x69,0x6e
DCB 0x67,0x20,0x20,0x20
DCB 0x20,0x32,0x2e,0x20
DCB 0x4f,0x6e,0x6c,0x79
DCB 0x20,0x52,0x54,0x43
DCB 0x20,0x44,0x69,0x73
DCB 0x70,0x6c,0x61,0x79
DCB 0x0a,0x0a,0x00
DCB 0x00
AREA ||.bss||, NOINIT, ALIGN=2
isRtcInt
||.bss$2||
% 4
sec_tick
% 4
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -