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

📄 pwr_c.txt

📁 SMDK2442所有设备的驱动测试程序。运行monitor程序
💻 TXT
📖 第 1 页 / 共 3 页
字号:
; generated by ARM C Compiler, ADS1.2 [Build 805]

; commandline [-errors .\err\pwr_c.err -O0 -asm -g+ -cpu ARM920T -fs "-IC:\Program Files\ARM\ADSv1_2\INCLUDE"]
                          CODE32

                          AREA ||.text||, CODE, READONLY

                  compare2 PROC
;;;166    int compare2(const void *a,const void *b)
;;;167    {
                  |L1.0|
000000  e1a02000          MOV      r2,r0
;;;168    	
;;;169    	if(*(int *)a>*(int *)b)
000004  e5920000          LDR      r0,[r2,#0]
000008  e5913000          LDR      r3,[r1,#0]
00000c  e1500003          CMP      r0,r3
000010  da000001          BLE      |L1.28|
;;;170    		return -1;
000014  e3e00000          MVN      r0,#0
;;;171    	else if(*(int *)a==*(int *)b)
;;;172    		return 0;
;;;173    	else 
;;;174    		return 1;
;;;175    }
                  |L1.24|
000018  e1a0f00e          MOV      pc,lr
                  |L1.28|
00001c  e5920000          LDR      r0,[r2,#0]            ;171
000020  e5913000          LDR      r3,[r1,#0]            ;171
000024  e1500003          CMP      r0,r3                 ;171
000028  1a000001          BNE      |L1.52|               ;171
00002c  e3a00000          MOV      r0,#0                 ;172
000030  eafffff8          B        |L1.24|               ;172
                  |L1.52|
000034  e3a00001          MOV      r0,#1                 ;174
000038  eafffff6          B        |L1.24|               ;174
                          ENDP

                  compare1 PROC
;;;155    int compare1(const void *a,const void *b)
;;;156    {
00003c  e1a02000          MOV      r2,r0
;;;157    	
;;;158    	if(*(int *)a>*(int *)b)
000040  e5920000          LDR      r0,[r2,#0]
000044  e5913000          LDR      r3,[r1,#0]
000048  e1500003          CMP      r0,r3
00004c  da000001          BLE      |L1.88|
;;;159    		return 1;
000050  e3a00001          MOV      r0,#1
;;;160    	else if(*(int *)a==*(int *)b)
;;;161    		return 0;
;;;162    	else 
;;;163    		return -1;
;;;164    }
                  |L1.84|
000054  e1a0f00e          MOV      pc,lr
                  |L1.88|
000058  e5920000          LDR      r0,[r2,#0]            ;160
00005c  e5913000          LDR      r3,[r1,#0]            ;160
000060  e1500003          CMP      r0,r3                 ;160
000064  1a000001          BNE      |L1.112|              ;160
000068  e3a00000          MOV      r0,#0                 ;161
00006c  eafffff8          B        |L1.84|               ;161
                  |L1.112|
000070  e3e00000          MVN      r0,#0                 ;163
000074  eafffff6          B        |L1.84|               ;163
                          ENDP

                  PWR_IsrDma2 PROC
;;;273    void __irq PWR_IsrDma2(void)
;;;274    {
000078  e92d0003          STMFD    sp!,{r0,r1}
;;;275    	ClearPending(BIT_DMA2);
00007c  e3a00a80          MOV      r0,#0x80000
000080  e3a0144a          MOV      r1,#0x4a000000
000084  e5810000          STR      r0,[r1,#0]
000088  e3a00a80          MOV      r0,#0x80000
00008c  e3a0144a          MOV      r1,#0x4a000000
000090  e5810010          STR      r0,[r1,#0x10]
000094  e3a0044a          MOV      r0,#0x4a000000
000098  e5900010          LDR      r0,[r0,#0x10]
;;;276    	//Uart_Printf("#");
;;;277    }
00009c  e8bd0003          LDMFD    sp!,{r0,r1}
0000a0  e25ef004          SUBS     pc,lr,#4
                          ENDP

                  PWR_StartIIS PROC
;;;279    void PWR_StartIIS(void)
;;;280    {
0000a4  e92d4030          STMFD    sp!,{r4,r5,lr}
0000a8  e24dd01c          SUB      sp,sp,#0x1c
;;;281    	U32 iis_div_val=3;
0000ac  e3a04003          MOV      r4,#3
;;;282    	
;;;283    	//Uart_Printf("IIS(DMA2) is running(CDCLK=16.9Mhz,LRCK=44.1Khz).\n");
;;;284    
;;;285    	pISR_DMA2=(unsigned int)PWR_IsrDma2;	
0000b0  e59f011c          LDR      r0,|L1.468|
0000b4  e59f111c          LDR      r1,|L1.472|
0000b8  e5810f6c          STR      r0,[r1,#0xf6c]
;;;286    	rINTMSK=rINTMSK&~(BIT_DMA2);
0000bc  e3a0044a          MOV      r0,#0x4a000000
0000c0  e5900008          LDR      r0,[r0,#8]
0000c4  e3c00a80          BIC      r0,r0,#0x80000
0000c8  e3a0144a          MOV      r1,#0x4a000000
0000cc  e5810008          STR      r0,[r1,#8]
;;;287    
;;;288    	rGPECON=rGPECON&~(3<<8|3<<4|3<<2|3<<0)|(2<<8|2<<4|2<<2|2<<0); //I2SSDO,CDCLK,I2SSCLK,I2SLRCK
0000d0  e3a00456          MOV      r0,#0x56000000
0000d4  e5900040          LDR      r0,[r0,#0x40]
0000d8  e3c00fc0          BIC      r0,r0,#0x300
0000dc  e3c0003f          BIC      r0,r0,#0x3f
0000e0  e3800f80          ORR      r0,r0,#0x200
0000e4  e380002a          ORR      r0,r0,#0x2a
0000e8  e3a01456          MOV      r1,#0x56000000
0000ec  e5810040          STR      r0,[r1,#0x40]
;;;289    		
;;;290    	rDISRC2=(U32)buf3; 
0000f0  e59f00e4          LDR      r0,|L1.476|
0000f4  e3a0144b          MOV      r1,#0x4b000000
0000f8  e5810080          STR      r0,[r1,#0x80]
;;;291    	rDISRCC2=(0<<1)+(0<<0);//src=AHB,increment
0000fc  e3a00000          MOV      r0,#0
000100  e3a0144b          MOV      r1,#0x4b000000
000104  e5810084          STR      r0,[r1,#0x84]
;;;292    	rDIDST2=((U32) IISFIFO );
000108  e59f00d0          LDR      r0,|L1.480|
00010c  e3a0144b          MOV      r1,#0x4b000000
000110  e5810088          STR      r0,[r1,#0x88]
;;;293    	rDIDSTC2=(1<<1)+(1<<0); //APB,fix
000114  e3a00003          MOV      r0,#3
000118  e3a0144b          MOV      r1,#0x4b000000
00011c  e581008c          STR      r0,[r1,#0x8c]
;;;294    	rDCON2=(1<<31)|(0<<30)|(1<<29)|(0<<28)|(0<<27)|(0<<24)|(1<<23)|(0<<22)|(1<<20)|(4096);
000120  e59f00bc          LDR      r0,|L1.484|
000124  e3a0144b          MOV      r1,#0x4b000000
000128  e5810090          STR      r0,[r1,#0x90]
;;;295    	//handshake, sync PCLK, TC int, single tx, single service, I2SSDO, I2S request, 
;;;296    	//auto-reload, half-word,
;;;297    	rDMASKTRIG2=(1<<1)+0;	//DMA2 channel on, no-sw trigger 
00012c  e3a00002          MOV      r0,#2
000130  e3a0144b          MOV      r1,#0x4b000000
000134  e58100a0          STR      r0,[r1,#0xa0]
;;;298    
;;;299    	iis_div_val = (U32)(((float)Pclk/16934400.0)+0.5)-1;
000138  e59f00a8          LDR      r0,|L1.488|
00013c  e5900000          LDR      r0,[r0,#0]  ; Pclk
000140  ebfffffe          BL       _ffltu
000144  e1a05000          MOV      r5,r0
000148  ebfffffe          BL       _f2d
00014c  e98d0003          STMIB    sp,{r0,r1}
000150  e28f0094          ADR      r0,|L1.492|
000154  e890000c          LDMIA    r0,{r2,r3}
000158  e59d0004          LDR      r0,[sp,#4]
00015c  ebfffffe          BL       _ddiv
000160  e58d000c          STR      r0,[sp,#0xc]
000164  e58d1010          STR      r1,[sp,#0x10]
000168  e28f0084          ADR      r0,|L1.500|
00016c  e890000c          LDMIA    r0,{r2,r3}
000170  e59d000c          LDR      r0,[sp,#0xc]
000174  ebfffffe          BL       _dadd
000178  e58d0014          STR      r0,[sp,#0x14]
00017c  e58d1018          STR      r1,[sp,#0x18]
000180  ebfffffe          BL       _dfixu
000184  e2404001          SUB      r4,r0,#1
;;;300    	rIISPSR=(iis_div_val<<5)|(iis_div_val<<0); //IIS_LRCK=44.1Khz @384fs,PCLK=50 or 66.7Mhz.
000188  e1840284          ORR      r0,r4,r4,LSL #5
00018c  e3a01455          MOV      r1,#0x55000000
000190  e5810008          STR      r0,[r1,#8]
;;;301    	
;;;302    	rIISCON=(1<<5)+(1<<2)+(1<<1);
000194  e3a00026          MOV      r0,#0x26
000198  e3a01455          MOV      r1,#0x55000000
00019c  e5810000          STR      r0,[r1,#0]
;;;303    	//Tx DMA enable,Rx idle,prescaler enable
;;;304    	rIISMOD=(2<<6)|(1<<3)|(1<<2)|(1<<0);
0001a0  e3a0008d          MOV      r0,#0x8d
0001a4  e3a01455          MOV      r1,#0x55000000
0001a8  e5810004          STR      r0,[r1,#4]
;;;305    	//Master,Tx,L-ch=low,iis,16bit ch.,CDCLK=384fs,IISCLK=32fs
;;;306    
;;;307    	rIISFCON=(1<<15)+(1<<13);	//Tx DMA,Tx FIFO enable
0001ac  e3a00ca0          MOV      r0,#0xa000
0001b0  e3a01455          MOV      r1,#0x55000000
0001b4  e581000c          STR      r0,[r1,#0xc]
;;;308    
;;;309    	rIISCON |=0x1;
0001b8  e3a00455          MOV      r0,#0x55000000
0001bc  e5900000          LDR      r0,[r0,#0]
0001c0  e3800001          ORR      r0,r0,#1
0001c4  e3a01455          MOV      r1,#0x55000000
0001c8  e5810000          STR      r0,[r1,#0]
;;;310    }
0001cc  e28dd01c          ADD      sp,sp,#0x1c
0001d0  e8bd8030          LDMFD    sp!,{r4,r5,pc}
                  |L1.468|
0001d4  00000000          DCD      PWR_IsrDma2
                  |L1.472|
0001d8  31fff000          DCD      0x31fff000
                  |L1.476|
0001dc  00003018          DCD      ||.bss$2|| + 12312
                  |L1.480|
0001e0  55000010          DCD      0x55000010
                  |L1.484|
0001e4  a0901000          DCD      0xa0901000
                  |L1.488|
0001e8  00000000          DCD      Pclk
                  |L1.492|
0001ec  00000000          DCFD     0x4170266000000000 ; 16934400.0
0001f0  41702660  
                  |L1.500|
0001f4  00000000          DCFD     0x3fe0000000000000 ; 0.5
0001f8  3fe00000  
                          ENDP

                  Lcd_Port_Init PROC
;;;187    static void Lcd_Port_Init(void)
;;;188    {
0001fc  e3a00456          MOV      r0,#0x56000000
;;;189    	save_rGPCCON=rGPCCON;
000200  e5900020          LDR      r0,[r0,#0x20]
000204  e59f1384          LDR      r1,|L1.1424|
000208  e5810000          STR      r0,[r1,#0]  ; save_rGPCCON
;;;190    	save_rGPCDAT=rGPCDAT;
00020c  e3a00456          MOV      r0,#0x56000000
000210  e5900024          LDR      r0,[r0,#0x24]
000214  e59f1378          LDR      r1,|L1.1428|
000218  e5810000          STR      r0,[r1,#0]  ; save_rGPCDAT
;;;191    	save_rGPCUP=rGPCUP;
00021c  e3a00456          MOV      r0,#0x56000000
000220  e5900028          LDR      r0,[r0,#0x28]
000224  e59f136c          LDR      r1,|L1.1432|
000228  e5810000          STR      r0,[r1,#0]  ; save_rGPCUP
;;;192    	save_rGPDCON=rGPDCON;
00022c  e3a00456          MOV      r0,#0x56000000
000230  e5900030          LDR      r0,[r0,#0x30]
000234  e59f1360          LDR      r1,|L1.1436|
000238  e5810000          STR      r0,[r1,#0]  ; save_rGPDCON
;;;193    	save_rGPDDAT=rGPDDAT;
00023c  e3a00456          MOV      r0,#0x56000000
000240  e5900034          LDR      r0,[r0,#0x34]
000244  e59f1354          LDR      r1,|L1.1440|
000248  e5810000          STR      r0,[r1,#0]  ; save_rGPDDAT
;;;194    	save_rGPDUP=rGPDUP;
00024c  e3a00456          MOV      r0,#0x56000000
000250  e5900038          LDR      r0,[r0,#0x38]
000254  e59f1348          LDR      r1,|L1.1444|
000258  e5810000          STR      r0,[r1,#0]  ; save_rGPDUP
;;;195    	rGPCUP=0xffffffff; // Disable Pull-up register
00025c  e3e00000          MVN      r0,#0
000260  e3a01456          MOV      r1,#0x56000000
000264  e5810028          STR      r0,[r1,#0x28]
;;;196    	rGPCCON=0xaaaaaaaa; //Initialize VD[7:0],LCDVF[2:0],VM,VFRAME,VLINE,VCLK,LEND 
000268  e59f0338          LDR      r0,|L1.1448|
00026c  e3a01456          MOV      r1,#0x56000000
000270  e5810020          STR      r0,[r1,#0x20]
;;;197    	rGPDUP=0xffffffff; // Disable Pull-up register
000274  e3e00000          MVN      r0,#0
000278  e3a01456          MOV      r1,#0x56000000
00027c  e5810038          STR      r0,[r1,#0x38]
;;;198    	rGPDCON=0xaaaaaaaa; //Initialize VD[23:8]
000280  e59f0320          LDR      r0,|L1.1448|
000284  e3a01456          MOV      r1,#0x56000000
000288  e5810030          STR      r0,[r1,#0x30]
;;;199    }
00028c  e1a0f00e          MOV      pc,lr
                          ENDP

                  PWR_Lcd_Tft_16Bit_240320_On PROC
;;;202    void PWR_Lcd_Tft_16Bit_240320_On(void)
;;;203    {
000290  e92d4008          STMFD    sp!,{r3,lr}
;;;204    	Lcd_Port_Init();
000294  ebfffffe          BL       Lcd_Port_Init
;;;205    	Lcd_Init(MODE_TFT_16BIT_240320);
000298  e59f030c          LDR      r0,|L1.1452|
00029c  ebfffffe          BL       Lcd_Init
;;;206    	Glib_Init(MODE_TFT_16BIT_240320);
0002a0  e59f0304          LDR      r0,|L1.1452|
0002a4  ebfffffe          BL       Glib_Init
;;;207    
;;;208    	//Uart_Printf("TFT 64K-color(16bit) LCD on.\n");
;;;209    	
;;;210    	//Lcd_Lpc3600Enable();
;;;211    	Lcd_Lcc3600Enable();
0002a8  ebfffffe          BL       Lcd_Lcc3600Enable
;;;212    
;;;213    	Lcd_PowerEnable(0, 1);
0002ac  e3a01001          MOV      r1,#1

⌨️ 快捷键说明

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