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

📄 rtc_test.txt

📁 s3c24a0固件测试代码 ? ? ? ? ?啊 
💻 TXT
📖 第 1 页 / 共 4 页
字号:
; generated by ARM C Compiler, ADS1.2 [Build 842]

; commandline [-errors .\err\rtc_test.err -O0 -asm -g+ -cpu 5TEJ -fs -Wd -Ec -I.\include "-IC:\Program Files\ARM\ADSv1_2\INCLUDE"]
                          CODE32

                          AREA ||.text||, CODE, READONLY

                  RTCSubMessage PROC
;;;58     void RTCSubMessage(void)
;;;59     {
                  |L1.0|
000000  e92d4010          STMFD    sp!,{r4,lr}
;;;60     	int i;
;;;61     	
;;;62     	
;;;63     	i=0;	
000004  e3a04000          MOV      r4,#0
;;;64     	Uart_Printf("\n\n");
000008  e28f0058          ADR      r0,|L1.104|
00000c  ebfffffe          BL       _printf
;;;65     	while(1)
000010  e1a00000          NOP      
                  |L1.20|
000014  e1a00000          NOP      
;;;66     	{   //display menu
;;;67     	    Uart_Printf("%2d:%s",i,rtc_func[i][1]);
000018  e59f004c          LDR      r0,|L1.108|
00001c  e0800184          ADD      r0,r0,r4,LSL #3
000020  e1a01004          MOV      r1,r4
000024  e5902004          LDR      r2,[r0,#4]
000028  e28f0040          ADR      r0,|L1.112|
00002c  ebfffffe          BL       _printf
;;;68     	    i++;
000030  e2844001          ADD      r4,r4,#1
;;;69     	    if((int)(rtc_func[i][0])==0)
000034  e59f0030          LDR      r0,|L1.108|
000038  e7900184          LDR      r0,[r0,r4,LSL #3]
00003c  e3500000          CMP      r0,#0
000040  1a000002          BNE      |L1.80|
;;;70     	    {
;;;71     			Uart_Printf("\n");
000044  e28f002c          ADR      r0,|L1.120|
000048  ebfffffe          BL       _printf
;;;72     			break;
00004c  ea000004          B        |L1.100|
;;;73     	    }
;;;74     	    if((i%4)==0) Uart_Printf("\n");
                  |L1.80|
000050  e3140003          TST      r4,#3
000054  1a000001          BNE      |L1.96|
000058  e28f0018          ADR      r0,|L1.120|
00005c  ebfffffe          BL       _printf
;;;75     	}
                  |L1.96|
000060  eaffffeb          B        |L1.20|
;;;76     }
                  |L1.100|
000064  e8bd8010          LDMFD    sp!,{r4,pc}
                  |L1.104|
000068  00000a0a          DCB      "\n\n\0\0"
                  |L1.108|
00006c  00000000          DCD      rtc_func
                  |L1.112|
000070  3a643225          DCB      "%2d:"
000074  00007325          DCB      "%s\0\0"
                  |L1.120|
000078  0000000a          DCB      "\n\0\0\0"
                          ENDP

                  Ch10_RTC PROC
;;;38     void Ch10_RTC(void)
;;;39     {
00007c  e92d4010          STMFD    sp!,{r4,lr}
;;;40     	int i;
;;;41     	
;;;42     	Uart_Printf("Menu of RTC function\n");
000080  e28f004c          ADR      r0,|L1.212|
000084  ebfffffe          BL       _printf
;;;43     	// Wait until memory stick is inserted.
;;;44     	
;;;45     	while(1) {
000088  e1a00000          NOP      
                  |L1.140|
00008c  e1a00000          NOP      
;;;46     		RTCSubMessage();
000090  ebfffffe          BL       RTCSubMessage
;;;47     		Uart_Printf("\nSelect(-1 to exit): ");
000094  e28f0050          ADR      r0,|L1.236|
000098  ebfffffe          BL       _printf
;;;48     		i = Uart_GetIntNum();
00009c  ebfffffe          BL       Uart_GetIntNum
0000a0  e1a04000          MOV      r4,r0
;;;49     		//Uart_Printf("IN:%d.\n\n", i);
;;;50     		if(i==-1) break;
0000a4  e3740001          CMN      r4,#1
0000a8  1a000000          BNE      |L1.176|
0000ac  ea000007          B        |L1.208|
;;;51     		
;;;52     		if(i>=0 && (i<(sizeof(rtc_func)/4)) ) 
                  |L1.176|
0000b0  e3540000          CMP      r4,#0
0000b4  ba000004          BLT      |L1.204|
0000b8  e354000a          CMP      r4,#0xa
0000bc  2a000002          BCS      |L1.204|
;;;53     	    	( (void (*)(void)) (rtc_func[i][0]) )();	// execute selected function.
0000c0  e51f105c          LDR      r1,|L1.108|
0000c4  e7910184          LDR      r0,[r1,r4,LSL #3]
0000c8  e12fff30          BLX      r0
;;;54     	}
                  |L1.204|
0000cc  eaffffee          B        |L1.140|
;;;55     
;;;56     }
                  |L1.208|
0000d0  e8bd8010          LDMFD    sp!,{r4,pc}
                  |L1.212|
0000d4  756e654d          DCB      "Menu"
0000d8  20666f20          DCB      " of "
0000dc  20435452          DCB      "RTC "
0000e0  636e7566          DCB      "func"
0000e4  6e6f6974          DCB      "tion"
0000e8  0000000a          DCB      "\n\0\0\0"
                  |L1.236|
0000ec  6c65530a          DCB      "\nSel"
0000f0  28746365          DCB      "ect("
0000f4  7420312d          DCB      "-1 t"
0000f8  7865206f          DCB      "o ex"
0000fc  3a297469          DCB      "it):"
000100  00000020          DCB      " \0\0\0"
                          ENDP

                  Rtc_Init PROC
;;;255    void Rtc_Init(void)
;;;256    {
000104  e59f01f0          LDR      r0,|L1.764|
;;;257        	rRTCCON  = rRTCCON  & ~(0xf)  | 0x1;            //No reset, Merge BCD counters, 1/32768, RTC Control enable
000108  e5d00040          LDRB     r0,[r0,#0x40]
00010c  e3c0000f          BIC      r0,r0,#0xf
000110  e3800001          ORR      r0,r0,#1
000114  e59f11e0          LDR      r1,|L1.764|
000118  e5c10040          STRB     r0,[r1,#0x40]
;;;258        
;;;259        	rBCDYEAR = rBCDYEAR & ~(0xff) | TESTYEAR;
00011c  e1a00001          MOV      r0,r1
000120  e5d00088          LDRB     r0,[r0,#0x88]
000124  e3c000ff          BIC      r0,r0,#0xff
000128  e3800001          ORR      r0,r0,#1
00012c  e5c10088          STRB     r0,[r1,#0x88]
;;;260        	rBCDMON  = rBCDMON  & ~(0x1f) | TESTMONTH;
000130  e1a00001          MOV      r0,r1
000134  e5d00084          LDRB     r0,[r0,#0x84]
000138  e3c0001f          BIC      r0,r0,#0x1f
00013c  e3800012          ORR      r0,r0,#0x12
000140  e5c10084          STRB     r0,[r1,#0x84]
;;;261        	rBCDDATE = rBCDDATE & ~(0x3f) | TESTDATE;         
000144  e1a00001          MOV      r0,r1
000148  e5d0007c          LDRB     r0,[r0,#0x7c]
00014c  e3c0003f          BIC      r0,r0,#0x3f
000150  e3800031          ORR      r0,r0,#0x31
000154  e5c1007c          STRB     r0,[r1,#0x7c]
;;;262        	rBCDDAY  = rBCDDAY  & ~(0x7)  | TESTDAY;       //SUN:1 MON:2 TUE:3 WED:4 THU:5 FRI:6 SAT:7
000158  e1a00001          MOV      r0,r1
00015c  e5d00080          LDRB     r0,[r0,#0x80]
000160  e3c00007          BIC      r0,r0,#7
000164  e3800002          ORR      r0,r0,#2
000168  e5c10080          STRB     r0,[r1,#0x80]
;;;263        	rBCDHOUR = rBCDHOUR & ~(0x3f) | TESTHOUR;
00016c  e1a00001          MOV      r0,r1
000170  e5d00078          LDRB     r0,[r0,#0x78]
000174  e3c0003f          BIC      r0,r0,#0x3f
000178  e3800023          ORR      r0,r0,#0x23
00017c  e5c10078          STRB     r0,[r1,#0x78]
;;;264        	rBCDMIN  = rBCDMIN  & ~(0x7f) | TESTMIN;
000180  e1a00001          MOV      r0,r1
000184  e5d00074          LDRB     r0,[r0,#0x74]
000188  e3c0007f          BIC      r0,r0,#0x7f
00018c  e3800059          ORR      r0,r0,#0x59
000190  e5c10074          STRB     r0,[r1,#0x74]
;;;265        	rBCDSEC  = rBCDSEC  & ~(0x7f) | TESTSEC;
000194  e1a00001          MOV      r0,r1
000198  e5d00070          LDRB     r0,[r0,#0x70]
00019c  e3c0007f          BIC      r0,r0,#0x7f
0001a0  e3800059          ORR      r0,r0,#0x59
0001a4  e5c10070          STRB     r0,[r1,#0x70]
;;;266        
;;;267        	rRTCCON  = 0x0;             //No reset, Merge BCD counters, 1/32768, RTC Control disable    
0001a8  e3a00000          MOV      r0,#0
0001ac  e1c11000          BIC      r1,r1,r0
0001b0  e5c10040          STRB     r0,[r1,#0x40]
;;;268    }
0001b4  e12fff1e          BX       lr
                          ENDP

                  Rtc_TimeSet PROC
;;;271    void Rtc_TimeSet(void)
;;;272    {
0001b8  e92d47f0          STMFD    sp!,{r4-r10,lr}
;;;273        	int syear,smonth,sdate,shour,smin,ssec;
;;;274        	int sday;
;;;275    
;;;276        	Uart_Printf("[ RTC Time Setting ]\n");
0001bc  e28f0f4f          ADR      r0,|L1.768|
0001c0  ebfffffe          BL       _printf
;;;277        	Rtc_Init();         //RTC Initialize
0001c4  ebfffffe          BL       Rtc_Init
;;;278        	Uart_Printf("RTC Time Initialized ...\n");
0001c8  e28f0f52          ADR      r0,|L1.792|
0001cc  ebfffffe          BL       _printf
;;;279        
;;;280        	Uart_Printf("Year (Two digit the latest)[0x??] : ");
0001d0  e28f0f57          ADR      r0,|L1.820|
0001d4  ebfffffe          BL       _printf
;;;281        	syear = Uart_GetIntNum();
0001d8  ebfffffe          BL       Uart_GetIntNum
0001dc  e1a05000          MOV      r5,r0
;;;282        
;;;283        	Uart_Printf("Month                      [0x??] : ");
0001e0  e28f0f5d          ADR      r0,|L1.860|
0001e4  ebfffffe          BL       _printf
;;;284        	smonth = Uart_GetIntNum();
0001e8  ebfffffe          BL       Uart_GetIntNum
0001ec  e1a06000          MOV      r6,r0
;;;285    
;;;286        	Uart_Printf("\n1:Sunday  2:Monday  3:Thesday  4:Wednesday  5:Thursday  6:Friday  7:Saturday\n");
0001f0  e59f018c          LDR      r0,|L1.900|
0001f4  ebfffffe          BL       _printf
;;;287        	Uart_Printf("Day of the week                   : ");
0001f8  e28f0f62          ADR      r0,|L1.904|
0001fc  ebfffffe          BL       _printf
;;;288        	sday = Uart_GetIntNum();
000200  ebfffffe          BL       Uart_GetIntNum
000204  e1a0a000          MOV      r10,r0
;;;289    	
;;;290        	Uart_Printf("Date                      [0x??] : ");
000208  e28f0f68          ADR      r0,|L1.944|
00020c  ebfffffe          BL       _printf
;;;291        	sdate = Uart_GetIntNum();
000210  ebfffffe          BL       Uart_GetIntNum
000214  e1a07000          MOV      r7,r0
;;;292              
;;;293        
;;;294        	Uart_Printf("Hour                       [0x??] : ");
000218  e28f0f6d          ADR      r0,|L1.980|
00021c  ebfffffe          BL       _printf
;;;295        	shour = Uart_GetIntNum();
000220  ebfffffe          BL       Uart_GetIntNum
000224  e1a08000          MOV      r8,r0
;;;296        
;;;297        	Uart_Printf("Minute                     [0x??] : ");
000228  e28f0f73          ADR      r0,|L1.1020|
00022c  ebfffffe          BL       _printf
;;;298        	smin = Uart_GetIntNum();
000230  ebfffffe          BL       Uart_GetIntNum
000234  e1a09000          MOV      r9,r0
;;;299        
;;;300        	Uart_Printf("Second                     [0x??] : ");
000238  e28f0f79          ADR      r0,|L1.1060|
00023c  ebfffffe          BL       _printf
;;;301        	ssec = Uart_GetIntNum();
000240  ebfffffe          BL       Uart_GetIntNum
000244  e1a04000          MOV      r4,r0
;;;302        
;;;303        	rRTCCON  = rRTCCON  & ~(0xf)  | 0x1;            //No reset, Merge BCD counters, 1/32768, RTC Control enable
000248  e59f00ac          LDR      r0,|L1.764|
00024c  e5d00040          LDRB     r0,[r0,#0x40]
000250  e3c0000f          BIC      r0,r0,#0xf
000254  e3800001          ORR      r0,r0,#1
000258  e59f109c          LDR      r1,|L1.764|
00025c  e5c10040          STRB     r0,[r1,#0x40]
;;;304        
;;;305        	rBCDYEAR = rBCDYEAR & ~(0xff) | syear;
000260  e1a00001          MOV      r0,r1
000264  e5d00088          LDRB     r0,[r0,#0x88]
000268  e3c000ff          BIC      r0,r0,#0xff
00026c  e1800005          ORR      r0,r0,r5
000270  e5c10088          STRB     r0,[r1,#0x88]
;;;306        	rBCDMON  = rBCDMON  & ~(0x1f) | smonth;
000274  e1a00001          MOV      r0,r1
000278  e5d00084          LDRB     r0,[r0,#0x84]
00027c  e3c0001f          BIC      r0,r0,#0x1f
000280  e1800006          ORR      r0,r0,r6
000284  e5c10084          STRB     r0,[r1,#0x84]
;;;307        	rBCDDAY  = rBCDDAY  & ~(0x7)  | sday;           //SUN:1 MON:2 TUE:3 WED:4 THU:5 FRI:6 SAT:7
000288  e1a00001          MOV      r0,r1
00028c  e5d00080          LDRB     r0,[r0,#0x80]
000290  e3c00007          BIC      r0,r0,#7
000294  e180000a          ORR      r0,r0,r10
000298  e5c10080          STRB     r0,[r1,#0x80]
;;;308        	rBCDDATE = rBCDDATE & ~(0x3f) | sdate;
00029c  e1a00001          MOV      r0,r1
0002a0  e5d0007c          LDRB     r0,[r0,#0x7c]
0002a4  e3c0003f          BIC      r0,r0,#0x3f
0002a8  e1800007          ORR      r0,r0,r7
0002ac  e5c1007c          STRB     r0,[r1,#0x7c]
;;;309        	rBCDHOUR = rBCDHOUR & ~(0x3f) | shour;
0002b0  e1a00001          MOV      r0,r1
0002b4  e5d00078          LDRB     r0,[r0,#0x78]
0002b8  e3c0003f          BIC      r0,r0,#0x3f
0002bc  e1800008          ORR      r0,r0,r8
0002c0  e5c10078          STRB     r0,[r1,#0x78]
;;;310        		rBCDMIN  = rBCDMIN  & ~(0x7f) | smin;
0002c4  e1a00001          MOV      r0,r1
0002c8  e5d00074          LDRB     r0,[r0,#0x74]
0002cc  e3c0007f          BIC      r0,r0,#0x7f
0002d0  e1800009          ORR      r0,r0,r9
0002d4  e5c10074          STRB     r0,[r1,#0x74]
;;;311        	rBCDSEC  = rBCDSEC  & ~(0x7f) | ssec;
0002d8  e1a00001          MOV      r0,r1
0002dc  e5d00070          LDRB     r0,[r0,#0x70]
0002e0  e3c0007f          BIC      r0,r0,#0x7f
0002e4  e1800004          ORR      r0,r0,r4
0002e8  e5c10070          STRB     r0,[r1,#0x70]
;;;312        
;;;313        	rRTCCON  = 0x0;    //No reset, Merge BCD counters, 1/32768, RTC Control disable    
0002ec  e3a00000          MOV      r0,#0
0002f0  e1c11000          BIC      r1,r1,r0
0002f4  e5c10040          STRB     r0,[r1,#0x40]
;;;314    }
0002f8  e8bd87f0          LDMFD    sp!,{r4-r10,pc}
                  |L1.764|
0002fc  44200000          DCD      0x44200000
                  |L1.768|
000300  5452205b          DCB      "[ RT"
000304  69542043          DCB      "C Ti"
000308  5320656d          DCB      "me S"
00030c  69747465          DCB      "etti"
000310  5d20676e          DCB      "ng ]"
000314  0000000a          DCB      "\n\0\0\0"
                  |L1.792|
000318  20435452          DCB      "RTC "
00031c  656d6954          DCB      "Time"
000320  696e4920          DCB      " Ini"
000324  6c616974          DCB      "tial"

⌨️ 快捷键说明

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