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

📄 timer.txt

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

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

                          AREA ||.text||, CODE, READONLY

                  TimerSubMessage PROC
;;;72     void TimerSubMessage(void)
;;;73     {
                  |L1.0|
000000  e92d4010          STMFD    sp!,{r4,lr}
;;;74     	int i;
;;;75     	
;;;76     	
;;;77     	i=0;	
000004  e3a04000          MOV      r4,#0
;;;78     	Uart_Printf("\n\n");
000008  e28f0058          ADR      r0,|L1.104|
00000c  ebfffffe          BL       _printf
;;;79     	while(1)
000010  e1a00000          NOP      
                  |L1.20|
000014  e1a00000          NOP      
;;;80     	{   //display menu
;;;81     	    Uart_Printf("%2d:%s",i,timer_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
;;;82     	    i++;
000030  e2844001          ADD      r4,r4,#1
;;;83     	    if((int)(timer_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|
;;;84     	    {
;;;85     			Uart_Printf("\n");
000044  e28f002c          ADR      r0,|L1.120|
000048  ebfffffe          BL       _printf
;;;86     			break;
00004c  ea000004          B        |L1.100|
;;;87     	    }
;;;88     	    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
;;;89     	}
                  |L1.96|
000060  eaffffeb          B        |L1.20|
;;;90     }
                  |L1.100|
000064  e8bd8010          LDMFD    sp!,{r4,pc}
                  |L1.104|
000068  00000a0a          DCB      "\n\n\0\0"
                  |L1.108|
00006c  00000000          DCD      timer_func
                  |L1.112|
000070  3a643225          DCB      "%2d:"
000074  00007325          DCB      "%s\0\0"
                  |L1.120|
000078  0000000a          DCB      "\n\0\0\0"
                          ENDP

                  Ch7_PwmTimer_test PROC
;;;52     void Ch7_PwmTimer_test(void)
;;;53     {
00007c  e92d4010          STMFD    sp!,{r4,lr}
;;;54     	int i;
;;;55     	
;;;56     	Uart_Printf("Menu of Timer function\n");
000080  e28f004c          ADR      r0,|L1.212|
000084  ebfffffe          BL       _printf
;;;57     	// Wait until memory stick is inserted.
;;;58     	
;;;59     	while(1) {
000088  e1a00000          NOP      
                  |L1.140|
00008c  e1a00000          NOP      
;;;60     		TimerSubMessage();
000090  ebfffffe          BL       TimerSubMessage
;;;61     		Uart_Printf("\nSelect(-1 to exit): ");
000094  e28f0050          ADR      r0,|L1.236|
000098  ebfffffe          BL       _printf
;;;62     		i = Uart_GetIntNum();
00009c  ebfffffe          BL       Uart_GetIntNum
0000a0  e1a04000          MOV      r4,r0
;;;63     		//Uart_Printf("IN:%d.\n\n", i);
;;;64     		if(i==-1) break;
0000a4  e3740001          CMN      r4,#1
0000a8  1a000000          BNE      |L1.176|
0000ac  ea000007          B        |L1.208|
;;;65     		
;;;66     		if(i>=0 && (i<(sizeof(timer_func)/3)) ) 
                  |L1.176|
0000b0  e3540000          CMP      r4,#0
0000b4  ba000004          BLT      |L1.204|
0000b8  e354000a          CMP      r4,#0xa
0000bc  2a000002          BCS      |L1.204|
;;;67     	    	( (void (*)(void)) (timer_func[i][0]) )();	// execute selected function.
0000c0  e51f105c          LDR      r1,|L1.108|
0000c4  e7910184          LDR      r0,[r1,r4,LSL #3]
0000c8  e12fff30          BLX      r0
;;;68     	}
                  |L1.204|
0000cc  eaffffee          B        |L1.140|
;;;69     
;;;70     }
                  |L1.208|
0000d0  e8bd8010          LDMFD    sp!,{r4,pc}
                  |L1.212|
0000d4  756e654d          DCB      "Menu"
0000d8  20666f20          DCB      " of "
0000dc  656d6954          DCB      "Time"
0000e0  75662072          DCB      "r fu"
0000e4  6974636e          DCB      "ncti"
0000e8  000a6e6f          DCB      "on\n\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

                  Test_Timer PROC
;;;107    void Test_Timer(void)
;;;108    {
000104  e92d4ff8          STMFD    sp!,{r3-r11,lr}
;;;109        int save_GPCON_U, save_GPCON_L,save_GPDAT, save_rGPUP;
;;;110        int Deadzone_test_flag= 0, PWM50_test_flag=0, Inverton_test_flag=0;
000108  e3a04000          MOV      r4,#0
00010c  e3a06000          MOV      r6,#0
000110  e3a05000          MOV      r5,#0
;;;111    	char key;
;;;112    	
;;;113        
;;;114        Uart_Printf("[ PWM_TOUT 0,1,2,3 Test ]\n\n");    
000114  e28f0f54          ADR      r0,|L1.620|
000118  ebfffffe          BL       _printf
;;;115        //Uart_Printf("= Current Port Setting List =\n");
;;;116        //Uart_Printf("rGPCON_U = 0x%8x,   rGPDAT = 0x%8x,   rGPUP= 0x%8x \n" ,rGPCON_U,rGPDAT,rGPUP);
;;;117    
;;;118        save_GPCON_L= rGPCON_L;
00011c  e59f0164          LDR      r0,|L1.648|
000120  e5900008          LDR      r0,[r0,#8]
000124  e1a09000          MOV      r9,r0
;;;119        save_GPCON_U= rGPCON_U;	
000128  e59f0158          LDR      r0,|L1.648|
00012c  e5900000          LDR      r0,[r0,#0]
000130  e1a08000          MOV      r8,r0
;;;120        save_GPDAT= rGPDAT;
000134  e59f014c          LDR      r0,|L1.648|
000138  e590000c          LDR      r0,[r0,#0xc]
00013c  e1a0a000          MOV      r10,r0
;;;121        save_rGPUP= rGPPU;    
000140  e59f0140          LDR      r0,|L1.648|
000144  e5900010          LDR      r0,[r0,#0x10]
000148  e1a0b000          MOV      r11,r0
;;;122    
;;;123        // controls PCLK into PWMTIMER block 0 :disable, 1:enable
;;;124        rCLKCON = rCLKCON & ~(0x100) | 0x100;
00014c  e3a00440          MOV      r0,#0x40000000
000150  e5900020          LDR      r0,[r0,#0x20]
000154  e3800f40          ORR      r0,r0,#0x100
000158  e3a01440          MOV      r1,#0x40000000
00015c  e5810020          STR      r0,[r1,#0x20]
;;;125        // IO port pull up control register : 0=enable, 1=disable   
;;;126        //rGPPU= rGPPU & ~(0x00f80000) | 0x00f80000;
;;;127    
;;;128        // IO port configuration register relative to TIMER
;;;129    #if GPCONU_ABAIL
;;;130        	rGPCON_U = 0x2aa;
000160  e59f0124          LDR      r0,|L1.652|
000164  e2811648          ADD      r1,r1,#0x4800000
000168  e5810000          STR      r0,[r1,#0]
;;;131    #else
;;;132        	rGPCON_L = 0xffc;
;;;133    #endif
;;;134    
;;;135        rGPPU = 0x0;	
00016c  e3a00000          MOV      r0,#0
000170  e1c11000          BIC      r1,r1,r0
000174  e5810010          STR      r0,[r1,#0x10]
;;;136        // check the buffer writing, correctly
;;;137        //Uart_Printf("= Changed Port Setting List =\n");    
;;;138        //Uart_Printf("rGPCON_U = 0x%8x,   rGPDAT = 0x%8x,   rGPUP= 0x%8x \n" ,rGPCON_L,rGPDAT,rGPPU);
;;;139    
;;;140    
;;;141    LABEL:
000178  e1a00000          NOP      
;;;142    
;;;143        Uart_Printf("[ Select Timer Clock ]\n");
                  |L1.380|
00017c  e28f0f43          ADR      r0,|L1.656|
000180  ebfffffe          BL       _printf
;;;144        Uart_Printf("[  prescaler0 | prescaler1 | divider\n");
000184  e28f0f47          ADR      r0,|L1.680|
000188  ebfffffe          BL       _printf
;;;145        Uart_Printf("a.       0                 0             1/2 \n");
00018c  e28f0f4f          ADR      r0,|L1.720|
000190  ebfffffe          BL       _printf
;;;146        Uart_Printf("b.       0                 0             1/4 \n");
000194  e28f0f59          ADR      r0,|L1.768|
000198  ebfffffe          BL       _printf
;;;147        Uart_Printf("c.       0                 0             1/8 \n");
00019c  e28f0f63          ADR      r0,|L1.816|
0001a0  ebfffffe          BL       _printf
;;;148        Uart_Printf("d.       0                 0             1/16 \n");
0001a4  e28f0f6d          ADR      r0,|L1.864|
0001a8  ebfffffe          BL       _printf
;;;149    //    Uart_Printf("e.       0                 0             TCLK0 \n"); // not implemented in GPIO
;;;150        Uart_Printf("f.     255              255           1/2 \n");
0001ac  e28f0f77          ADR      r0,|L1.912|
0001b0  ebfffffe          BL       _printf
;;;151        Uart_Printf("g.    255              255           1/4 \n");
0001b4  e28f0f80          ADR      r0,|L1.956|
0001b8  ebfffffe          BL       _printf
;;;152        Uart_Printf("h.    255              255           1/8 \n"); 
0001bc  e28f0f89          ADR      r0,|L1.1000|
0001c0  ebfffffe          BL       _printf
;;;153        Uart_Printf("i.     255              255           1/16 \n");
0001c4  e28f0f92          ADR      r0,|L1.1044|
0001c8  ebfffffe          BL       _printf
;;;154    //    Uart_Printf("j.     255              255           TCLK1 \n"); // // not implemented in GPIO	
;;;155        Uart_Printf("k.       0                 0             1/2 (Dead-zone value=40 \n");
0001cc  e59f0270          LDR      r0,|L1.1092|
0001d0  ebfffffe          BL       _printf
;;;156        Uart_Printf("l.       0                 0             1/2 (PWM 50% \n");
0001d4  e28f0f9b          ADR      r0,|L1.1096|
0001d8  ebfffffe          BL       _printf
;;;157        Uart_Printf("m.     0                 0             1/2 (Invert on.off \n");
0001dc  e28f0fa7          ADR      r0,|L1.1152|
0001e0  ebfffffe          BL       _printf
;;;158    		
;;;159        Uart_Printf("\nSelect the function to test : ");
0001e4  e28f0fb4          ADR      r0,|L1.1212|
0001e8  ebfffffe          BL       _printf
;;;160        key = Uart_Getch();
0001ec  ebfffffe          BL       Uart_Getch
0001f0  e1a07000          MOV      r7,r0
;;;161        Uart_Printf("%c\n\n",key);    
0001f4  e1a01007          MOV      r1,r7
0001f8  e28f0fb7          ADR      r0,|L1.1244|
0001fc  ebfffffe          BL       _printf
;;;162    
;;;163        switch(key)
000200  e2470061          SUB      r0,r7,#0x61
000204  e350000c          CMP      r0,#0xc
000208  908ff100          ADDLS    pc,pc,r0,LSL #2
00020c  ea00011f          B        |L1.1680|
000210  ea00000b          B        |L1.580|
000214  ea0000b2          B        |L1.1252|
000218  ea0000bb          B        |L1.1292|
00021c  ea0000c4          B        |L1.1332|
000220  ea00011a          B        |L1.1680|
000224  ea0000cc          B        |L1.1372|
000228  ea0000d6          B        |L1.1416|
00022c  ea0000e0          B        |L1.1460|
000230  ea0000ea          B        |L1.1504|

⌨️ 快捷键说明

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