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

📄 nwait.txt

📁 SMDK2442所有设备的驱动测试程序。运行monitor程序
💻 TXT
📖 第 1 页 / 共 2 页
字号:
;;;175    {
00033c  e92d4038          STMFD    sp!,{r3-r5,lr}
;;;176        U32 readVal;
;;;177        int i;
;;;178    
;;;179        Uart_Printf("[nGCS4,32-bit,read,nWAIT Test].\n");
000340  e28f0090          ADR      r0,|L1.984|
000344  ebfffffe          BL       Uart_Printf
;;;180    
;;;181        rBWSCON=rBWSCON & ~(0xf<<16)|(BUS32<<16)|(ENWAIT<<18); //nGCS4 
000348  e3a00448          MOV      r0,#0x48000000
00034c  e5900000          LDR      r0,[r0,#0]
000350  e3c00af0          BIC      r0,r0,#0xf0000
000354  e3800a60          ORR      r0,r0,#0x60000
000358  e3a01448          MOV      r1,#0x48000000
00035c  e5810000          STR      r0,[r1,#0]
;;;182        rBANKCON4=((B4_Tacs<<13)+(B4_Tcos<<11)+(B4_Tacc<<8)+(B4_Tcoh<<6)+(B4_Tah<<4)+(B4_Tacp<<2)+(B4_PMC));
000360  e3a00f80          MOV      r0,#0x200
000364  e3a01448          MOV      r1,#0x48000000
000368  e5810014          STR      r0,[r1,#0x14]
;;;183    
;;;184        Uart_Printf("rBWSCON:%x\n", rBWSCON);
00036c  e3a00448          MOV      r0,#0x48000000
000370  e5900000          LDR      r0,[r0,#0]
000374  e1a01000          MOV      r1,r0
000378  e24f0fb1          ADR      r0,|L1.188|
00037c  ebfffffe          BL       Uart_Printf
;;;185        Uart_Printf("rBANKCON4:%x\n", rBANKCON4);
000380  e3a00448          MOV      r0,#0x48000000
000384  e5900014          LDR      r0,[r0,#0x14]
000388  e1a01000          MOV      r1,r0
00038c  e24f0fb3          ADR      r0,|L1.200|
000390  ebfffffe          BL       Uart_Printf
;;;186    	
;;;187        for(i=0;i<2;i++); //wait until the bank configuration is in effect.
000394  e3a04000          MOV      r4,#0
                  |L1.920|
000398  e3540002          CMP      r4,#2
00039c  aa000001          BGE      |L1.936|
0003a0  e2844001          ADD      r4,r4,#1
0003a4  eafffffb          B        |L1.920|
;;;188    
;;;189        Uart_Printf("Press any key to stop...\n");
                  |L1.936|
0003a8  e24f0fb6          ADR      r0,|L1.216|
0003ac  ebfffffe          BL       Uart_Printf
;;;190        while(1) 
0003b0  e1a00000          NOP      
                  |L1.948|
0003b4  e1a00000          NOP      
;;;191        {
;;;192            readVal=(*(volatile U32 *)CS_nGCS4);
0003b8  e3a00580          MOV      r0,#0x20000000
0003bc  e5905000          LDR      r5,[r0,#0]
;;;193        	if(Uart_GetKey()!=0) 
0003c0  ebfffffe          BL       Uart_GetKey
0003c4  e3500000          CMP      r0,#0
0003c8  0a000000          BEQ      |L1.976|
;;;194    	    break;
0003cc  ea000000          B        |L1.980|
;;;195        }
                  |L1.976|
0003d0  eafffff7          B        |L1.948|
;;;196    }
                  |L1.980|
0003d4  e8bd8038          LDMFD    sp!,{r3-r5,pc}
                  |L1.984|
0003d8  43476e5b          DCB      "[nGC"
0003dc  332c3453          DCB      "S4,3"
0003e0  69622d32          DCB      "2-bi"
0003e4  65722c74          DCB      "t,re"
0003e8  6e2c6461          DCB      "ad,n"
0003ec  54494157          DCB      "WAIT"
0003f0  73655420          DCB      " Tes"
0003f4  0a2e5d74          DCB      "t].\n"
0003f8  00000000          DCB      "\0\0\0\0"
                          ENDP

                  WaitWr32 PROC
;;;199    void WaitWr32(void)
;;;200    {
0003fc  e92d4010          STMFD    sp!,{r4,lr}
;;;201        
;;;202        int i;
;;;203        
;;;204        Uart_Printf("[nGCS4,32-bit,write,nWAIT Test].\n");
000400  e28f0094          ADR      r0,|L1.1180|
000404  ebfffffe          BL       Uart_Printf
;;;205    
;;;206        rBWSCON=rBWSCON & ~(0xf<<16)|(BUS32<<16)|(ENWAIT<<18); //nGCS4 
000408  e3a00448          MOV      r0,#0x48000000
00040c  e5900000          LDR      r0,[r0,#0]
000410  e3c00af0          BIC      r0,r0,#0xf0000
000414  e3800a60          ORR      r0,r0,#0x60000
000418  e3a01448          MOV      r1,#0x48000000
00041c  e5810000          STR      r0,[r1,#0]
;;;207        rBANKCON4=((B4_Tacs<<13)+(B4_Tcos<<11)+(B4_Tacc<<8)+(B4_Tcoh<<6)+(B4_Tah<<4)+(B4_Tacp<<2)+(B4_PMC));
000420  e3a00f80          MOV      r0,#0x200
000424  e3a01448          MOV      r1,#0x48000000
000428  e5810014          STR      r0,[r1,#0x14]
;;;208    
;;;209        Uart_Printf("rBWSCON:%x\n", rBWSCON);
00042c  e3a00448          MOV      r0,#0x48000000
000430  e5900000          LDR      r0,[r0,#0]
000434  e1a01000          MOV      r1,r0
000438  e24f0fe1          ADR      r0,|L1.188|
00043c  ebfffffe          BL       Uart_Printf
;;;210        Uart_Printf("rBANKCON4:%x\n", rBANKCON4);
000440  e3a00448          MOV      r0,#0x48000000
000444  e5900014          LDR      r0,[r0,#0x14]
000448  e1a01000          MOV      r1,r0
00044c  e24f0fe3          ADR      r0,|L1.200|
000450  ebfffffe          BL       Uart_Printf
;;;211    	
;;;212        for(i=0;i<2;i++); //wait until the bank configuration is in effect.
000454  e3a04000          MOV      r4,#0
                  |L1.1112|
000458  e3540002          CMP      r4,#2
00045c  aa000001          BGE      |L1.1128|
000460  e2844001          ADD      r4,r4,#1
000464  eafffffb          B        |L1.1112|
;;;213    
;;;214        Uart_Printf("Press any key to stop...\n");
                  |L1.1128|
000468  e24f0fe6          ADR      r0,|L1.216|
00046c  ebfffffe          BL       Uart_Printf
;;;215        while(1) 
000470  e1a00000          NOP      
                  |L1.1140|
000474  e1a00000          NOP      
;;;216        {
;;;217            *((volatile U32 *)CS_nGCS4)=0;
000478  e3a00000          MOV      r0,#0
00047c  e3a01580          MOV      r1,#0x20000000
000480  e5810000          STR      r0,[r1,#0]
;;;218    	if(Uart_GetKey()!=0) 
000484  ebfffffe          BL       Uart_GetKey
000488  e3500000          CMP      r0,#0
00048c  0a000000          BEQ      |L1.1172|
;;;219    	    break;	
000490  ea000000          B        |L1.1176|
;;;220        }
                  |L1.1172|
000494  eafffff6          B        |L1.1140|
;;;221    }
                  |L1.1176|
000498  e8bd8010          LDMFD    sp!,{r4,pc}
                  |L1.1180|
00049c  43476e5b          DCB      "[nGC"
0004a0  332c3453          DCB      "S4,3"
0004a4  69622d32          DCB      "2-bi"
0004a8  72772c74          DCB      "t,wr"
0004ac  2c657469          DCB      "ite,"
0004b0  4941576e          DCB      "nWAI"
0004b4  65542054          DCB      "T Te"
0004b8  2e5d7473          DCB      "st]."
                  |L1.1212|
0004bc  0000000a          DCB      "\n\0\0\0"
                          ENDP

                  Test_WaitPin PROC
;;;31     void Test_WaitPin(void)
;;;32     {
0004c0  e92d4070          STMFD    sp!,{r4-r6,lr}
;;;33         U32 savePLLCON,saveCLKDIVN;
;;;34     	int i;
;;;35     
;;;36         saveCLKDIVN=rCLKDIVN;
0004c4  e3a0044c          MOV      r0,#0x4c000000
0004c8  e5900014          LDR      r0,[r0,#0x14]
0004cc  e1a06000          MOV      r6,r0
;;;37         savePLLCON=rMPLLCON;
0004d0  e3a0044c          MOV      r0,#0x4c000000
0004d4  e5900004          LDR      r0,[r0,#4]
0004d8  e1a05000          MOV      r5,r0
;;;38     
;;;39         Uart_TxEmpty(1);
0004dc  e3a00001          MOV      r0,#1
0004e0  ebfffffe          BL       Uart_TxEmpty
;;;40         ChangeClockDivider(12,12);	    // 1:2:4 
0004e4  e3a0100c          MOV      r1,#0xc
0004e8  e3a0000c          MOV      r0,#0xc
0004ec  ebfffffe          BL       ChangeClockDivider
;;;41         ChangeMPllValue(246,13,1);  //Fin=12MHz FCLK=100MHz for ALTERA
0004f0  e3a02001          MOV      r2,#1
0004f4  e3a0100d          MOV      r1,#0xd
0004f8  e3a000f6          MOV      r0,#0xf6
0004fc  ebfffffe          BL       ChangeMPllValue
;;;42         Uart_Init(101606000/4,115200);		// PCLK is about 25MHz
000500  e59f10d4          LDR      r1,|L1.1500|
000504  e59f00d4          LDR      r0,|L1.1504|
000508  ebfffffe          BL       Uart_Init
;;;43     
;;;44         rMISCCR=0x330;	//HCLK
00050c  e3a00fcc          MOV      r0,#0x330
000510  e3a01456          MOV      r1,#0x56000000
000514  e5810080          STR      r0,[r1,#0x80]
;;;45         rGPHCON=(rGPHCON & (~(0x3<<18))) | (0x2<<18);   //GPH9=CLKOUT0
000518  e3a00456          MOV      r0,#0x56000000
00051c  e5900070          LDR      r0,[r0,#0x70]
000520  e3c00ac0          BIC      r0,r0,#0xc0000
000524  e3800a80          ORR      r0,r0,#0x80000
000528  e3a01456          MOV      r1,#0x56000000
00052c  e5810070          STR      r0,[r1,#0x70]
;;;46     
;;;47         Uart_Printf("Select test bus width(32bit(0)/16bit(1)/8bit(2): ");
000530  e28f00ac          ADR      r0,|L1.1508|
000534  ebfffffe          BL       Uart_Printf
;;;48         i=Uart_GetIntNum();
000538  ebfffffe          BL       Uart_GetIntNum
00053c  e1a04000          MOV      r4,r0
;;;49     
;;;50         switch(i) {
000540  e3540000          CMP      r4,#0
000544  0a000004          BEQ      |L1.1372|
000548  e3540001          CMP      r4,#1
00054c  0a000009          BEQ      |L1.1400|
000550  e3540002          CMP      r4,#2
000554  1a000015          BNE      |L1.1456|
000558  ea00000d          B        |L1.1428|
;;;51     		case 0:
;;;52     		    WaitWr32();
                  |L1.1372|
00055c  ebfffffe          BL       WaitWr32
;;;53     		    Uart_Printf("\n");
000560  e24f00ac          ADR      r0,|L1.1212|
000564  ebfffffe          BL       Uart_Printf
;;;54     		    WaitRd32();
000568  ebfffffe          BL       WaitRd32
;;;55     		    Uart_Printf("\n");
00056c  e24f00b8          ADR      r0,|L1.1212|
000570  ebfffffe          BL       Uart_Printf
;;;56     		    break;
000574  ea00000e          B        |L1.1460|
;;;57     		case 1:
;;;58     			WaitWr16();
                  |L1.1400|
000578  ebfffffe          BL       WaitWr16
;;;59     			Uart_Printf("\n");
00057c  e24f00c8          ADR      r0,|L1.1212|
000580  ebfffffe          BL       Uart_Printf
;;;60     			WaitRd16();
000584  ebfffffe          BL       WaitRd16
;;;61     			Uart_Printf("\n");
000588  e24f00d4          ADR      r0,|L1.1212|
00058c  ebfffffe          BL       Uart_Printf
;;;62     		break;
000590  ea000007          B        |L1.1460|
;;;63     		case 2:
;;;64     			WaitWr8();
                  |L1.1428|
000594  ebfffffe          BL       WaitWr8
;;;65     			Uart_Printf("\n");
000598  e24f00e4          ADR      r0,|L1.1212|
00059c  ebfffffe          BL       Uart_Printf
;;;66     			WaitRd8();
0005a0  ebfffffe          BL       WaitRd8
;;;67     			Uart_Printf("\n");
0005a4  e24f00f0          ADR      r0,|L1.1212|
0005a8  ebfffffe          BL       Uart_Printf
;;;68     		break;
0005ac  ea000000          B        |L1.1460|
;;;69     		default:
;;;70     		break;
                  |L1.1456|
0005b0  e1a00000          NOP      
;;;71     	}
;;;72     		
;;;73         Uart_TxEmpty(1);
                  |L1.1460|
0005b4  e3a00001          MOV      r0,#1
0005b8  ebfffffe          BL       Uart_TxEmpty
;;;74         rCLKDIVN=saveCLKDIVN;
0005bc  e3a0044c          MOV      r0,#0x4c000000
0005c0  e5806014          STR      r6,[r0,#0x14]
;;;75         rMPLLCON=savePLLCON;
0005c4  e3a0044c          MOV      r0,#0x4c000000
0005c8  e5805004          STR      r5,[r0,#4]
;;;76         Uart_Init(0,115200);    
0005cc  e59f1008          LDR      r1,|L1.1500|
0005d0  e3a00000          MOV      r0,#0
0005d4  ebfffffe          BL       Uart_Init
;;;77     }
0005d8  e8bd8070          LDMFD    sp!,{r4-r6,pc}
                  |L1.1500|
0005dc  0001c200          DCD      0x0001c200
                  |L1.1504|
0005e0  0183989c          DCD      0x0183989c
                  |L1.1508|
0005e4  656c6553          DCB      "Sele"
0005e8  74207463          DCB      "ct t"
0005ec  20747365          DCB      "est "
0005f0  20737562          DCB      "bus "
0005f4  74646977          DCB      "widt"
0005f8  32332868          DCB      "h(32"
0005fc  28746962          DCB      "bit("
000600  312f2930          DCB      "0)/1"
000604  74696236          DCB      "6bit"
000608  2f293128          DCB      "(1)/"
00060c  74696238          DCB      "8bit"
000610  3a293228          DCB      "(2):"
000614  00000020          DCB      " \0\0\0"
                          ENDP

                  Test_XBREQ PROC
;;;223    void Test_XBREQ(void)
;;;224    {
000618  e92d4010          STMFD    sp!,{r4,lr}
;;;225        U32 saveGPBCON,saveGPBUP;
;;;226    
;;;227        saveGPBCON=rGPBCON;
00061c  e3a00456          MOV      r0,#0x56000000
000620  e5900010          LDR      r0,[r0,#0x10]
000624  e1a04000          MOV      r4,r0
;;;228        rGPBCON=0x2800;
000628  e3a00da0          MOV      r0,#0x2800
00062c  e3a01456          MOV      r1,#0x56000000
000630  e5810010          STR      r0,[r1,#0x10]
;;;229    
;;;230        Uart_Printf("Press any key!!\n");
000634  e28f0010          ADR      r0,|L1.1612|
000638  ebfffffe          BL       Uart_Printf
;;;231        Uart_Getch();
00063c  ebfffffe          BL       Uart_Getch
;;;232        
;;;233        rGPBCON=saveGPBCON;
000640  e3a00456          MOV      r0,#0x56000000
000644  e5804010          STR      r4,[r0,#0x10]
;;;234    }
000648  e8bd8010          LDMFD    sp!,{r4,pc}
                  |L1.1612|
00064c  73657250          DCB      "Pres"
000650  6e612073          DCB      "s an"
000654  656b2079          DCB      "y ke"
000658  0a212179          DCB      "y!!\n"
00065c  00000000          DCB      "\0\0\0\0"
                          ENDP



        END

⌨️ 快捷键说明

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