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

📄 timer.txt

📁 SMDK2442所有设备的驱动测试程序。运行monitor程序
💻 TXT
📖 第 1 页 / 共 5 页
字号:
000814  73657250          DCB      "Pres"
000818  6e612073          DCB      "s an"
00081c  656b2079          DCB      "y ke"
000820  000a2e79          DCB      "y.\n\0"
                          ENDP

                  Timer4Done PROC
;;;426    void __irq Timer4Done(void)
;;;427    {
000824  e92d0003          STMFD    sp!,{r0,r1}
;;;428        rSRCPND = BIT_TIMER4;       //Clear pending bit
000828  e3a00c40          MOV      r0,#0x4000
00082c  e3a0144a          MOV      r1,#0x4a000000
000830  e5810000          STR      r0,[r1,#0]
;;;429        rINTPND = BIT_TIMER4;
000834  e3a00c40          MOV      r0,#0x4000
000838  e3a0144a          MOV      r1,#0x4a000000
00083c  e5810010          STR      r0,[r1,#0x10]
;;;430        rINTPND;
000840  e3a0044a          MOV      r0,#0x4a000000
000844  e5900010          LDR      r0,[r0,#0x10]
;;;431        variable4++;    
000848  e59f045c          LDR      r0,|L1.3244|
00084c  e5900000          LDR      r0,[r0,#0]  ; variable4
000850  e2800001          ADD      r0,r0,#1
000854  e59f1450          LDR      r1,|L1.3244|
000858  e5810000          STR      r0,[r1,#0]  ; variable4
;;;432    }
00085c  e8bd0003          LDMFD    sp!,{r0,r1}
000860  e25ef004          SUBS     pc,lr,#4
                          ENDP

                  Timer3Done PROC
;;;418    void __irq Timer3Done(void)
;;;419    {
000864  e92d0003          STMFD    sp!,{r0,r1}
;;;420        rSRCPND = BIT_TIMER3;       //Clear pending bit
000868  e3a00d80          MOV      r0,#0x2000
00086c  e3a0144a          MOV      r1,#0x4a000000
000870  e5810000          STR      r0,[r1,#0]
;;;421        rINTPND = BIT_TIMER3;
000874  e3a00d80          MOV      r0,#0x2000
000878  e3a0144a          MOV      r1,#0x4a000000
00087c  e5810010          STR      r0,[r1,#0x10]
;;;422        rINTPND;
000880  e3a0044a          MOV      r0,#0x4a000000
000884  e5900010          LDR      r0,[r0,#0x10]
;;;423        variable3++;    
000888  e59f0420          LDR      r0,|L1.3248|
00088c  e5900000          LDR      r0,[r0,#0]  ; variable3
000890  e2800001          ADD      r0,r0,#1
000894  e59f1414          LDR      r1,|L1.3248|
000898  e5810000          STR      r0,[r1,#0]  ; variable3
;;;424    }
00089c  e8bd0003          LDMFD    sp!,{r0,r1}
0008a0  e25ef004          SUBS     pc,lr,#4
                          ENDP

                  Timer2Done PROC
;;;410    void __irq Timer2Done(void)
;;;411    {
0008a4  e92d0003          STMFD    sp!,{r0,r1}
;;;412        rSRCPND = BIT_TIMER2;       //Clear pending bit
0008a8  e3a00d40          MOV      r0,#0x1000
0008ac  e3a0144a          MOV      r1,#0x4a000000
0008b0  e5810000          STR      r0,[r1,#0]
;;;413        rINTPND = BIT_TIMER2;
0008b4  e3a00d40          MOV      r0,#0x1000
0008b8  e3a0144a          MOV      r1,#0x4a000000
0008bc  e5810010          STR      r0,[r1,#0x10]
;;;414        rINTPND;
0008c0  e3a0044a          MOV      r0,#0x4a000000
0008c4  e5900010          LDR      r0,[r0,#0x10]
;;;415        variable2++;    
0008c8  e59f03e4          LDR      r0,|L1.3252|
0008cc  e5900000          LDR      r0,[r0,#0]  ; variable2
0008d0  e2800001          ADD      r0,r0,#1
0008d4  e59f13d8          LDR      r1,|L1.3252|
0008d8  e5810000          STR      r0,[r1,#0]  ; variable2
;;;416    }
0008dc  e8bd0003          LDMFD    sp!,{r0,r1}
0008e0  e25ef004          SUBS     pc,lr,#4
                          ENDP

                  Timer1Done PROC
;;;402    void __irq Timer1Done(void)
;;;403    {
0008e4  e92d0003          STMFD    sp!,{r0,r1}
;;;404        rSRCPND = BIT_TIMER1;       //Clear pending bit
0008e8  e3a00e80          MOV      r0,#0x800
0008ec  e3a0144a          MOV      r1,#0x4a000000
0008f0  e5810000          STR      r0,[r1,#0]
;;;405        rINTPND = BIT_TIMER1;
0008f4  e3a00e80          MOV      r0,#0x800
0008f8  e3a0144a          MOV      r1,#0x4a000000
0008fc  e5810010          STR      r0,[r1,#0x10]
;;;406        rINTPND;
000900  e3a0044a          MOV      r0,#0x4a000000
000904  e5900010          LDR      r0,[r0,#0x10]
;;;407        variable1++;    
000908  e59f03a8          LDR      r0,|L1.3256|
00090c  e5900000          LDR      r0,[r0,#0]  ; variable1
000910  e2800001          ADD      r0,r0,#1
000914  e59f139c          LDR      r1,|L1.3256|
000918  e5810000          STR      r0,[r1,#0]  ; variable1
;;;408    }
00091c  e8bd0003          LDMFD    sp!,{r0,r1}
000920  e25ef004          SUBS     pc,lr,#4
                          ENDP

                  Timer0Done PROC
;;;394    void __irq Timer0Done(void)
;;;395    {
000924  e92d0003          STMFD    sp!,{r0,r1}
;;;396        rSRCPND = BIT_TIMER0;       //Clear pending bit
000928  e3a00e40          MOV      r0,#0x400
00092c  e3a0144a          MOV      r1,#0x4a000000
000930  e5810000          STR      r0,[r1,#0]
;;;397        rINTPND = BIT_TIMER0;
000934  e3a00e40          MOV      r0,#0x400
000938  e3a0144a          MOV      r1,#0x4a000000
00093c  e5810010          STR      r0,[r1,#0x10]
;;;398        rINTPND;                    //Prevent an double interrupt pending
000940  e3a0044a          MOV      r0,#0x4a000000
000944  e5900010          LDR      r0,[r0,#0x10]
;;;399        variable0++;    
000948  e59f036c          LDR      r0,|L1.3260|
00094c  e5900000          LDR      r0,[r0,#0]  ; variable0
000950  e2800001          ADD      r0,r0,#1
000954  e59f1360          LDR      r1,|L1.3260|
000958  e5810000          STR      r0,[r1,#0]  ; variable0
;;;400    }
00095c  e8bd0003          LDMFD    sp!,{r0,r1}
000960  e25ef004          SUBS     pc,lr,#4
                          ENDP

                  Test_TimerInt PROC
;;;299    void Test_TimerInt(void)
;;;300    {
000964  e92d400e          STMFD    sp!,{r1-r3,lr}
;;;301        variable0 = 0;variable1 = 0;variable2 = 0;variable3 = 0;variable4 = 0;
000968  e3a00000          MOV      r0,#0
00096c  e59f1348          LDR      r1,|L1.3260|
000970  e5810000          STR      r0,[r1,#0]  ; variable0
000974  e3a00000          MOV      r0,#0
000978  e59f1338          LDR      r1,|L1.3256|
00097c  e5810000          STR      r0,[r1,#0]  ; variable1
000980  e3a00000          MOV      r0,#0
000984  e59f1328          LDR      r1,|L1.3252|
000988  e5810000          STR      r0,[r1,#0]  ; variable2
00098c  e3a00000          MOV      r0,#0
000990  e59f1318          LDR      r1,|L1.3248|
000994  e5810000          STR      r0,[r1,#0]  ; variable3
000998  e3a00000          MOV      r0,#0
00099c  e59f1308          LDR      r1,|L1.3244|
0009a0  e5810000          STR      r0,[r1,#0]  ; variable4
;;;302    		
;;;303    	/* Timer0,1,2,3,4 Interrupt service is available */ 
;;;304        rINTMSK = ~(BIT_TIMER4 | BIT_TIMER3 | BIT_TIMER2 | BIT_TIMER1 | BIT_TIMER0);
0009a4  e3e00c7c          MVN      r0,#0x7c00
0009a8  e3a0144a          MOV      r1,#0x4a000000
0009ac  e5810008          STR      r0,[r1,#8]
;;;305    	// Uart_Printf("rINTMSK (After)  = 0x%8x   <= Timer4,3,2,1 Bit[14:10]\n",rINTMSK);
;;;306    
;;;307        /* Timer0,1,2,3,4 Interrupt Service Routine Entry Point Determine */ 
;;;308        pISR_TIMER0 = (int)Timer0Done;
0009b0  e59f0308          LDR      r0,|L1.3264|
0009b4  e59f1308          LDR      r1,|L1.3268|
0009b8  e5810f48          STR      r0,[r1,#0xf48]
;;;309        pISR_TIMER1 = (int)Timer1Done;
0009bc  e59f0304          LDR      r0,|L1.3272|
0009c0  e5810f4c          STR      r0,[r1,#0xf4c]
;;;310        pISR_TIMER2 = (int)Timer2Done;
0009c4  e59f0300          LDR      r0,|L1.3276|
0009c8  e5810f50          STR      r0,[r1,#0xf50]
;;;311        pISR_TIMER3 = (int)Timer3Done;
0009cc  e59f02fc          LDR      r0,|L1.3280|
0009d0  e5810f54          STR      r0,[r1,#0xf54]
;;;312        pISR_TIMER4 = (int)Timer4Done;
0009d4  e59f02f8          LDR      r0,|L1.3284|
0009d8  e5810f58          STR      r0,[r1,#0xf58]
;;;313    
;;;314        Uart_Printf("\n[Timer 0,1,2,3,4 Interrupt Test]\n\n");
0009dc  e28f0fbd          ADR      r0,|L1.3288|
0009e0  ebfffffe          BL       Uart_Printf
;;;315    
;;;316        rTCFG0 = rTCFG0 & ~(0xffffff) | 0xff | 0xff<<8; //Dead zone=0,Prescaler1=255(0x0f),Prescaler0=255(0x0f)
0009e4  e3a00451          MOV      r0,#0x51000000
0009e8  e5900000          LDR      r0,[r0,#0]
0009ec  e20004ff          AND      r0,r0,#0xff000000
0009f0  e3800cff          ORR      r0,r0,#0xff00
0009f4  e38000ff          ORR      r0,r0,#0xff
0009f8  e3a01451          MOV      r1,#0x51000000
0009fc  e5810000          STR      r0,[r1,#0]
;;;317        rTCFG1  =rTCFG1 & ~(0xffffff) | 0x001233; //All interrupt,Mux4=1/2,Mux3=1/4,Mux2=1/8,Mux1=1/16,Mux0=1/16
000a00  e3a00451          MOV      r0,#0x51000000
000a04  e5900004          LDR      r0,[r0,#4]
000a08  e20004ff          AND      r0,r0,#0xff000000
000a0c  e3800d48          ORR      r0,r0,#0x1200
000a10  e3800033          ORR      r0,r0,#0x33
000a14  e3a01451          MOV      r1,#0x51000000
000a18  e5810004          STR      r0,[r1,#4]
;;;318    	
;;;319        rTCNTB0 = 30000;         
000a1c  e59f02d8          LDR      r0,|L1.3324|
000a20  e3a01451          MOV      r1,#0x51000000
000a24  e581000c          STR      r0,[r1,#0xc]
;;;320        rTCNTB1 = 30000;           
000a28  e3a01451          MOV      r1,#0x51000000
000a2c  e5810018          STR      r0,[r1,#0x18]
;;;321        rTCNTB2 = 30000;           
000a30  e3a01451          MOV      r1,#0x51000000
000a34  e5810024          STR      r0,[r1,#0x24]
;;;322        rTCNTB3 = 30000;        
000a38  e3a01451          MOV      r1,#0x51000000
000a3c  e5810030          STR      r0,[r1,#0x30]
;;;323        rTCNTB4 = 30000;         
000a40  e3a01451          MOV      r1,#0x51000000
000a44  e581003c          STR      r0,[r1,#0x3c]
;;;324        
;;;325        rTCMPB0 = 15000;
000a48  e1a000c0          MOV      r0,r0,ASR #1
000a4c  e3a01451          MOV      r1,#0x51000000
000a50  e5810010          STR      r0,[r1,#0x10]
;;;326        rTCMPB1 = 15000;
000a54  e3a01451          MOV      r1,#0x51000000
000a58  e581001c          STR      r0,[r1,#0x1c]
;;;327        rTCMPB2 = 15000;
000a5c  e3a01451          MOV      r1,#0x51000000
000a60  e5810028          STR      r0,[r1,#0x28]
;;;328        rTCMPB3 = 15000;
000a64  e3a01451          MOV      r1,#0x51000000
000a68  e5810034          STR      r0,[r1,#0x34]
;;;329        
;;;330        rTCON  = rTCON & ~(0xffffff) | 0x1<<1 | 0x1<<9 | 0x1<<13 | 0x1<<17 | 0x1<<21 ; //Manual update 	
000a6c  e3a00451          MOV      r0,#0x51000000
000a70  e5900008          LDR      r0,[r0,#8]
000a74  e20004ff          AND      r0,r0,#0xff000000
000a78  e51f13f0          LDR      r1,|L1.1680|
000a7c  e1800001          ORR      r0,r0,r1
000a80  e3a01451          MOV      r1,#0x51000000
000a84  e5810008          STR      r0,[r1,#8]
;;;331        
;;;332       
;;;333        rTCON  = rTCON & ~(0xffffff) | 0x1 | 0x1<<3 ; //Timer 0 Start, Auto-reload 
000a88  e3a00451          MOV      r0,#0x51000000
000a8c  e5900008          LDR      r0,[r0,#8]
000a90  e20004ff          AND      r0,r0,#0xff000000
000a94  e3800009          ORR      r0,r0,#9
000a98  e3a01451          MOV      r1,#0x51000000
000a9c  e5810008          STR      r0,[r1,#8]
;;;334        rTCON  = rTCON | 0x1<<8 | 0x1<<11 ; //Timer 1 Start, Auto-reload
000aa0  e3a00451          MOV      r0,#0x51000000
000aa4  e5900008          LDR      r0,[r0,#8]
000aa8  e3800e90          ORR      r0,r0,#0x900
000aac  e3a01451          MOV      r1,#0x51000000
000ab0  e5810008          STR      r0,[r1,#8]
;;;335        rTCON  = rTCON | 0x1<<12 | 0x1<<15 ; //Timer 2 Start, Auto-reload
000ab4  e3a00451          MOV      r0,#0x51000000
000ab8  e5900008          LDR      r0,[r0,#8]
000abc  e3800c90          ORR      r0,r0,#0x9000
000ac0  e3a01451          MOV      r1,#0x51000000
000ac4  e5810008          STR      r0,[r1,#8]
;;;336        rTCON  = rTCON | 0x1<<16 | 0x1<<19 ; //Timer 3 Start, Auto-reload
000ac8  e3a00451          MOV      r0,#0x51000000
000acc  e5900008          LDR      r0,[r0,#8]
000ad0  e3800a90          ORR      r0,r0,#0x90000
000ad4  e3a01451          MOV      r1,#0x51000000
000ad8  e5810008          STR      r0,[r1,#8]
;;;337        rTCON  = rTCON | 0x1<<20 | 0x1<<22 ; //Timer 4 Start, Auto-reload   
000adc  e3a00451          MOV      r0,#0x51000000

⌨️ 快捷键说明

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