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

📄 user_test2.txt

📁 SMDK2442所有设备的驱动测试程序。运行monitor程序
💻 TXT
📖 第 1 页 / 共 2 页
字号:
0002b8  e590000c          LDR      r0,[r0,#0xc]
0002bc  e3c00004          BIC      r0,r0,#4
0002c0  e3a0144c          MOV      r1,#0x4c000000
0002c4  e581000c          STR      r0,[r1,#0xc]
;;;116    		rTCON = 0;
0002c8  e3a00000          MOV      r0,#0
0002cc  e3a01451          MOV      r1,#0x51000000
0002d0  e5810008          STR      r0,[r1,#8]
;;;117    
;;;118    		//(1) Return Core voltage
;;;119    		Max1718_Set(DVS_VOLTH);
0002d4  e3a00078          MOV      r0,#0x78
0002d8  ebfffffe          BL       Max1718_Set
;;;120    		Led_Display(0x6);
0002dc  e3a00006          MOV      r0,#6
0002e0  ebfffffe          BL       Led_Display
;;;121    
;;;122    		// (2) t_DVS, delay while dropping the core voltage...
;;;123    		for(i=0; i<2000; i++);		// SMDK2442: 28us/0.1V.
0002e4  e3a00000          MOV      r0,#0
0002e8  e1a04000          MOV      r4,r0
                  |L1.748|
0002ec  e3540e7d          CMP      r4,#0x7d0
0002f0  aa000002          BGE      |L1.768|
0002f4  e2840001          ADD      r0,r4,#1
0002f8  e1a04000          MOV      r4,r0
0002fc  eafffffa          B        |L1.748|
;;;124    		Led_Display(0x7);
                  |L1.768|
000300  e3a00007          MOV      r0,#7
000304  ebfffffe          BL       Led_Display
;;;125    
;;;126    		// (3) Return Hclk
;;;127    		rCLKDIVN |= (1<<0);						// 1:6:6 -> 1:6:12
000308  e3a0044c          MOV      r0,#0x4c000000
00030c  e5900014          LDR      r0,[r0,#0x14]
000310  e3800001          ORR      r0,r0,#1
000314  e3a0144c          MOV      r1,#0x4c000000
000318  e5810014          STR      r0,[r1,#0x14]
;;;128    		rCAMDIVN = (rCAMDIVN & ~(3<<8));			// 1:6:12 -> 1:3:6
00031c  e3a0044c          MOV      r0,#0x4c000000
000320  e5900018          LDR      r0,[r0,#0x18]
000324  e3c00fc0          BIC      r0,r0,#0x300
000328  e3a0144c          MOV      r1,#0x4c000000
00032c  e5810018          STR      r0,[r1,#0x18]
;;;129    
;;;130    		if(!(cnt++%10)) Uart_Printf("cnt:%d.\n", cnt);
000330  e2850001          ADD      r0,r5,#1
000334  e1a02005          MOV      r2,r5
000338  e1a05000          MOV      r5,r0
00033c  e1a01002          MOV      r1,r2
000340  e3a0000a          MOV      r0,#0xa
000344  ebfffffe          BL       __rt_sdiv
000348  e3510000          CMP      r1,#0
00034c  1a000002          BNE      |L1.860|
000350  e1a01005          MOV      r1,r5
000354  e28f0090          ADR      r0,|L1.1004|
000358  ebfffffe          BL       Uart_Printf
;;;131    		//Delay(10);
;;;132    #else
;;;133    		// Only for CLKDIV test.
;;;134    		// * Strengthen HCLK.
;;;135    		//rCAMDIVN = (rCAMDIVN & ~(3<<8)) | (1<<8);	// 1:3:6 -> 1:6:12
;;;136    		//rCLKDIVN &= ~(1<<0);						// 1:6:12 -> 1:6:6
;;;137    		rCLKDIVN=(rCLKDIVN&~(7<<0))|(7<<0);	// for bug of 2442x, 1:3:6
;;;138    		rCLKDIVN=(rCLKDIVN&~(7<<0))|(5<<0);	// for 2442x, 1:4:8
;;;139    		//CLKDIV144();
;;;140    		Led_Display(1);
;;;141    		// * Drop the core voltage
;;;142    		Max1718_Set(DVS_VOLTL);
;;;143    		// * set Idle bit.
;;;144    		rTCNTB0 = 30;		// Timer setting for wake-up from idle mode.
;;;145    		rTCON = 1<<3| 1<<1;	// load timer.
;;;146    		rTCON = 1<<3| 1<<0;	// start timer.
;;;147    
;;;148    		rCLKCON |= 1<<2;	// Enter Idle mode.
;;;149    		for(i=0;i<10;i++);
;;;150    
;;;151    		//...
;;;152    		//... in Idle mode...
;;;153    		//...
;;;154    		
;;;155    		// 2. Wake up from Idle mode...
;;;156    		rCLKCON&=~(1<<2);		// must clear this bit after wake-up from idle mode.
;;;157    		rTCON = 0;
;;;158    
;;;159    
;;;160    		//* Return Core voltage
;;;161    		Max1718_Set(DVS_VOLTH);
;;;162    		// * t_DVS, delay while dropping the core voltage...
;;;163    		for(i=0; i<2000; i++);		// SMDK2442: 28us/0.1V.
;;;164    
;;;165    		// * Return Hclk
;;;166    		//rCLKDIVN |= (1<<0);						// 1:6:6 -> 1:6:12
;;;167    		//rCAMDIVN = (rCAMDIVN & ~(3<<8));			// 1:6:12 -> 1:3:6
;;;168    		rCLKDIVN=(rCLKDIVN&~(7<<0))|(3<<0);	// for 2442x, 1:2:4
;;;169    		//CLKDIV124();
;;;170    		Led_Display(0);
;;;171    
;;;172    		Delay(200);
;;;173    #endif
;;;174    		if(Uart_GetKey()==ESC_KEY) break;
                  |L1.860|
00035c  ebfffffe          BL       Uart_GetKey
000360  e3500071          CMP      r0,#0x71
000364  1a000000          BNE      |L1.876|
000368  ea000000          B        |L1.880|
;;;175    	}
                  |L1.876|
00036c  eaffffa8          B        |L1.532|
;;;176    }
                  |L1.880|
000370  e28dd018          ADD      sp,sp,#0x18
000374  e8bd8070          LDMFD    sp!,{r4-r6,pc}
                  |L1.888|
000378  20535644          DCB      "DVS "
00037c  74736574          DCB      "test"
000380  00000a2e          DCB      ".\n\0\0"
                  |L1.900|
000384  6e616843          DCB      "Chan"
000388  63206567          DCB      "ge c"
00038c  2065726f          DCB      "ore "
000390  65657073          DCB      "spee"
000394  6f742064          DCB      "d to"
000398  30303420          DCB      " 400"
00039c  2e7a484d          DCB      "MHz."
0003a0  0000000a          DCB      "\n\0\0\0"
                  |L1.932|
0003a4  00000000          DCD      Hclk
                  |L1.936|
0003a8  33333333          DCFD     0x401f333333333333 ; 7.8
0003ac  401f3333  
                  |L1.944|
0003b0  00000000          DCFD     0x412e848000000000 ; 1000000.0
0003b4  412e8480  
                  |L1.952|
0003b8  0001c200          DCD      0x0001c200
                  |L1.956|
0003bc  00000000          DCD      Pclk
                  |L1.960|
0003c0  63656843          DCB      "Chec"
0003c4  6c43206b          DCB      "k Cl"
0003c8  74756f6b          DCB      "kout"
0003cc  43463a30          DCB      "0:FC"
0003d0  202c4b4c          DCB      "LK, "
0003d4  6f6b6c43          DCB      "Clko"
0003d8  3a317475          DCB      "ut1:"
0003dc  4b4c4348          DCB      "HCLK"
0003e0  00000a2e          DCB      ".\n\0\0"
                  |L1.996|
0003e4  72617473          DCB      "star"
0003e8  000a2e74          DCB      "t.\n\0"
                  |L1.1004|
0003ec  3a746e63          DCB      "cnt:"
0003f0  0a2e6425          DCB      "%d.\n"
0003f4  00000000          DCB      "\0\0\0\0"
                          ENDP

                  DVS_Onoff_Man PROC
;;;223    void DVS_Onoff_Man(void)
;;;224    {
0003f8  e92d4070          STMFD    sp!,{r4-r6,lr}
0003fc  e24dd018          SUB      sp,sp,#0x18
;;;225    	int i=0; 
000400  e3a06000          MOV      r6,#0
;;;226    	char c;
;;;227    	
;;;228    
;;;229    	Uart_Printf("Change core speed to 400MHz.\n");
000404  e24f0088          ADR      r0,|L1.900|
000408  ebfffffe          BL       Uart_Printf
;;;230    	#if FIN==12000000
;;;231    		ChangeClockDivider(13, 12);
;;;232    		#if CPU2442A==1
;;;233    		ChangeMPllValue(127,2,1);	// 406MHz
;;;234    		#else
;;;235    		ChangeMPllValue(127,2,0);	// 406MHz
;;;236    		#endif
;;;237    	#else	// 16.9344Mhz
;;;238    	ChangeClockDivider(13, 12);
00040c  e3a0100c          MOV      r1,#0xc
000410  e3a0000d          MOV      r0,#0xd
000414  ebfffffe          BL       ChangeClockDivider
;;;239    		#if CPU2442A==1
;;;240    		ChangeMPllValue(110,3,1);	// 400MHz
000418  e3a02001          MOV      r2,#1
00041c  e3a01003          MOV      r1,#3
000420  e3a0006e          MOV      r0,#0x6e
000424  ebfffffe          BL       ChangeMPllValue
;;;241    		#else
;;;242    		ChangeMPllValue(110,3,0);	// 400MHz
;;;243    		#endif
;;;244    	#endif
;;;245    	
;;;246    	Calc_Clock(1);
000428  e3a00001          MOV      r0,#1
00042c  ebfffffe          BL       Calc_Clock
;;;247    	
;;;248    	UPDATE_REFRESH(Hclk);
000430  e51f0094          LDR      r0,|L1.932|
000434  e5900000          LDR      r0,[r0,#0]  ; Hclk
000438  ebfffffe          BL       _ffltu
00043c  e1a05000          MOV      r5,r0
000440  ebfffffe          BL       _f2d
000444  e88d0003          STMIA    sp,{r0,r1}
000448  e24f00a8          ADR      r0,|L1.936|
00044c  e890000c          LDMIA    r0,{r2,r3}
000450  e59d0000          LDR      r0,[sp,#0]
000454  ebfffffe          BL       _dmul
000458  e58d0008          STR      r0,[sp,#8]
00045c  e58d100c          STR      r1,[sp,#0xc]
000460  e24f00b8          ADR      r0,|L1.944|
000464  e890000c          LDMIA    r0,{r2,r3}
000468  e59d0008          LDR      r0,[sp,#8]
00046c  ebfffffe          BL       _ddiv
000470  e58d0010          STR      r0,[sp,#0x10]
000474  e58d1014          STR      r1,[sp,#0x14]
000478  ebfffffe          BL       _dfixu
00047c  e2600001          RSB      r0,r0,#1
000480  e2800e80          ADD      r0,r0,#0x800
000484  e3a01448          MOV      r1,#0x48000000
000488  e5911024          LDR      r1,[r1,#0x24]
00048c  e1a015a1          MOV      r1,r1,LSR #11
000490  e1a01581          MOV      r1,r1,LSL #11
000494  e1800001          ORR      r0,r0,r1
000498  e3a01448          MOV      r1,#0x48000000
00049c  e5810024          STR      r0,[r1,#0x24]
;;;249    	Uart_Init(Pclk, 115200);
0004a0  e51f10f0          LDR      r1,|L1.952|
0004a4  e51f00f0          LDR      r0,|L1.956|
0004a8  e5900000          LDR      r0,[r0,#0]  ; Pclk
0004ac  ebfffffe          BL       Uart_Init
;;;250    
;;;251    	Uart_Printf("Check Clkout0:FCLK, Clkout1:HCLK.\n");
0004b0  e24f00f8          ADR      r0,|L1.960|
0004b4  ebfffffe          BL       Uart_Printf
;;;252    	// Clkout0: FCLK.	
;;;253    	Clk0_Enable(2);
0004b8  e3a00002          MOV      r0,#2
0004bc  ebfffffe          BL       Clk0_Enable
;;;254    	// Clkout1: HCLK.
;;;255    	Clk1_Enable(3);
0004c0  e3a00003          MOV      r0,#3
0004c4  ebfffffe          BL       Clk1_Enable
;;;256    
;;;257    	Uart_Printf("Press key to on/off dvs_on bit.\n");
0004c8  e28f0074          ADR      r0,|L1.1348|
0004cc  ebfffffe          BL       Uart_Printf
;;;258    	do {
0004d0  e1a00000          NOP      
;;;259    		c=Uart_Getch();
                  |L1.1236|
0004d4  ebfffffe          BL       Uart_Getch
0004d8  e1a04000          MOV      r4,r0
;;;260    		rCAMDIVN |= BIT_DVS_ON;
0004dc  e3a0044c          MOV      r0,#0x4c000000
0004e0  e5900018          LDR      r0,[r0,#0x18]
0004e4  e3800d40          ORR      r0,r0,#0x1000
0004e8  e3a0144c          MOV      r1,#0x4c000000
0004ec  e5810018          STR      r0,[r1,#0x18]
;;;261    		Uart_Printf("DVS=ON(0x%d).\n", rCAMDIVN);
0004f0  e3a0044c          MOV      r0,#0x4c000000
0004f4  e5900018          LDR      r0,[r0,#0x18]
0004f8  e1a01000          MOV      r1,r0
0004fc  e28f0064          ADR      r0,|L1.1384|
000500  ebfffffe          BL       Uart_Printf
;;;262    		
;;;263    		c=Uart_Getch();
000504  ebfffffe          BL       Uart_Getch
000508  e1a04000          MOV      r4,r0
;;;264    		rCAMDIVN &= ~BIT_DVS_ON;
00050c  e3a0044c          MOV      r0,#0x4c000000
000510  e5900018          LDR      r0,[r0,#0x18]
000514  e3c00d40          BIC      r0,r0,#0x1000
000518  e3a0144c          MOV      r1,#0x4c000000
00051c  e5810018          STR      r0,[r1,#0x18]
;;;265    		Uart_Printf("DVS=OFF(0x%d).\n", rCAMDIVN);
000520  e3a0044c          MOV      r0,#0x4c000000
000524  e5900018          LDR      r0,[r0,#0x18]
000528  e1a01000          MOV      r1,r0
00052c  e28f0044          ADR      r0,|L1.1400|
000530  ebfffffe          BL       Uart_Printf
;;;266    	} while(c!='q');
000534  e3540071          CMP      r4,#0x71
000538  1affffe5          BNE      |L1.1236|
;;;267    
;;;268    }
00053c  e28dd018          ADD      sp,sp,#0x18
000540  e8bd8070          LDMFD    sp!,{r4-r6,pc}
                  |L1.1348|
000544  73657250          DCB      "Pres"
000548  656b2073          DCB      "s ke"
00054c  6f742079          DCB      "y to"
000550  2f6e6f20          DCB      " on/"
000554  2066666f          DCB      "off "
000558  5f737664          DCB      "dvs_"
00055c  62206e6f          DCB      "on b"
000560  0a2e7469          DCB      "it.\n"
000564  00000000          DCB      "\0\0\0\0"
                  |L1.1384|
000568  3d535644          DCB      "DVS="
00056c  30284e4f          DCB      "ON(0"
000570  29642578          DCB      "x%d)"
000574  00000a2e          DCB      ".\n\0\0"
                  |L1.1400|
000578  3d535644          DCB      "DVS="
00057c  2846464f          DCB      "OFF("
000580  64257830          DCB      "0x%d"
000584  000a2e29          DCB      ").\n\0"
                          ENDP



        END

⌨️ 快捷键说明

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