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

📄 sleep.txt

📁 支持三星原产的S3C24A0开发板
💻 TXT
📖 第 1 页 / 共 5 页
字号:
;;;217        int i;
;;;218    
;;;219        if(rALIVECON & 1<<3)//Wake-up from SLEEP mode
00059c  e51f04f8          LDR      r0,|L1.172|
0005a0  e5900044          LDR      r0,[r0,#0x44]
0005a4  e3100008          TST      r0,#8
0005a8  0a00001e          BEQ      |L1.1576|
;;;220        {
;;;221    #if CHECK_SDRAM_SELFREFRESH
;;;222    	Test_CheckSDRAM(_NONCACHE_STARTADDRESS,0x400000); //Check NONCACHEABLE AREA
0005ac  e3a01840          MOV      r1,#0x400000
0005b0  e3a00544          MOV      r0,#0x11000000
0005b4  ebfffffe          BL       Test_CheckSDRAM
;;;223    #endif
;;;224    
;;;225    	Uart_Printf("AC97Codec is going to Normal mode, now.\n");
0005b8  e28f0fd6          ADR      r0,|L1.2328|
0005bc  ebfffffe          BL       _printf
;;;226    	AC97_Init();
0005c0  ebfffffe          BL       AC97_Init
;;;227    	AC97_Codec_Init(22050);
0005c4  e59f0378          LDR      r0,|L1.2372|
0005c8  ebfffffe          BL       AC97_Codec_Init
;;;228    
;;;229    	Clear_SleepKey();
0005cc  ebfffffe          BL       Clear_SleepKey
;;;230    	
;;;231    	Uart_Printf("Wake-up from SLEEP mode\n");
0005d0  e28f0fdc          ADR      r0,|L1.2376|
0005d4  ebfffffe          BL       _printf
;;;232    	//Uart_Printf("Check whether or not the interrupt pending bit retain the wake-up source.\n");
;;;233    
;;;234    #if 1 
;;;235    	//Unmask interrupt
;;;236    	if(rEINTPEND&(1<<19))// The RTC does not request INT, only wake the CPU up from sleep mode.
0005d8  e51f0534          LDR      r0,|L1.172|
0005dc  e5900038          LDR      r0,[r0,#0x38]
0005e0  e3100a80          TST      r0,#0x80000
0005e4  0a000001          BEQ      |L1.1520|
;;;237    	    Uart_Printf("\nALARM for SLEEP mode wake-up.\n\n");
0005e8  e28f0fdd          ADR      r0,|L1.2404|
0005ec  ebfffffe          BL       _printf
;;;238    
;;;239    	//rINTMSK=rINTMSK&~(BIT_EINT7_10);
;;;240    	rINTMSK=rINTMSK&~(BIT_EINT0_2);
                  |L1.1520|
0005f0  e51f04e8          LDR      r0,|L1.272|
0005f4  e5900008          LDR      r0,[r0,#8]
0005f8  e3c00001          BIC      r0,r0,#1
0005fc  e51f14f4          LDR      r1,|L1.272|
000600  e5810008          STR      r0,[r1,#8]
;;;241    	rEINTMASK=rEINTMASK&~(BIT_EINTPEND_EINT0);
000604  e2810646          ADD      r0,r1,#0x4600000
000608  e5900034          LDR      r0,[r0,#0x34]
00060c  e3c00001          BIC      r0,r0,#1
000610  e2811646          ADD      r1,r1,#0x4600000
000614  e5810034          STR      r0,[r1,#0x34]
;;;242    	/*	
;;;243    	//Unmask sub interrupt 
;;;244    	rEINTMASK=rEINTMASK&~(BIT_EINTPEND_EINT0);
;;;245    	rEINTMASK=rEINTMASK&~(BIT_EINTPEND_EINT1);
;;;246    	rEINTMASK=rEINTMASK&~(BIT_EINTPEND_EINT10);
;;;247    	rEINTMASK=rEINTMASK&~(BIT_EINTPEND_EINT11);
;;;248    	//for(i=0;i<100;i++);
;;;249    	*/
;;;250    #endif	 
;;;251    	Port_Init();
000618  ebfffffe          BL       Port_Init
;;;252    	Uart_Printf("SLEEP mode test is done\n");
00061c  e28f0fd9          ADR      r0,|L1.2440|
000620  ebfffffe          BL       _printf
000624  ea000123          B        |L1.2744|
;;;253        }
;;;254        else//Entering into SLEEP mode
;;;255        {
;;;256    	Uart_Printf("[SLEEP Mode Test]\n");
                  |L1.1576|
000628  e28f0fdd          ADR      r0,|L1.2468|
00062c  ebfffffe          BL       _printf
;;;257    	Uart_Printf("nBATT_FLT pin should be tested.\n");
000630  e28f0fe0          ADR      r0,|L1.2488|
000634  ebfffffe          BL       _printf
;;;258    
;;;259    	LcdEnvidOnOff(0); //Before entering SLEEP mode, LCD must be off	
000638  e3a00000          MOV      r0,#0
00063c  ebfffffe          BL       LcdEnvidOnOff
;;;260    	Delay(1);
000640  e3a00001          MOV      r0,#1
000644  ebfffffe          BL       Delay
;;;261    
;;;262    	Uart_Printf("Entering into SLEEP mode\n");    		
000648  e28f0fe3          ADR      r0,|L1.2524|
00064c  ebfffffe          BL       _printf
;;;263    	Uart_Printf("S3C24A0 will wake up by EINT0/1/9 or RTC alarm.\n");
000650  e28f0fe8          ADR      r0,|L1.2552|
000654  ebfffffe          BL       _printf
;;;264    
;;;265    	//Write SLEEP information into BACKUP AREA
;;;266    	Set_SleepKey();
000658  ebfffffe          BL       Set_SleepKey
;;;267    	//Test_InitSDRAM((_BACKUPFORSLEEP_STARTADDRESS+0x50), 0x100000); //Write test data into BACKUP AREA
;;;268    	
;;;269    #if CHECK_SDRAM_SELFREFRESH
;;;270    	Test_InitSDRAM(_NONCACHE_STARTADDRESS,0x400000); //Write test data into NONCACHEABLE AREA
00065c  e3a01840          MOV      r1,#0x400000
000660  e3a00544          MOV      r0,#0x11000000
000664  ebfffffe          BL       Test_InitSDRAM
;;;271    #endif
;;;272    
;;;273    	ConfigSleepGPIO(); 
000668  ebfffffe          BL       ConfigSleepGPIO
;;;274    
;;;275    	//Wake-up(EINT0)	
;;;276    #if CHOOSE_EINT0_TYPE	   
;;;277    	SelectEintType();
;;;278    #else
;;;279    	rGPCON_L= ( rGPCON_L & ~(3<<0) ) | (2<<0);	//GP0=EINT0
00066c  e51f05c8          LDR      r0,|L1.172|
000670  e5900008          LDR      r0,[r0,#8]
000674  e3c00003          BIC      r0,r0,#3
000678  e3800002          ORR      r0,r0,#2
00067c  e51f15d8          LDR      r1,|L1.172|
000680  e5810008          STR      r0,[r1,#8]
;;;280    	rEXTINTC0=rEXTINTC0&~(7<<0)|(2<<0);	//EINT0=falling edge triggered
000684  e1a00001          MOV      r0,r1
000688  e5900018          LDR      r0,[r0,#0x18]
00068c  e3c00007          BIC      r0,r0,#7
000690  e3800002          ORR      r0,r0,#2
000694  e5810018          STR      r0,[r1,#0x18]
;;;281    #endif
;;;282    
;;;283    	//Wake-up(EINT1) 
;;;284    	rGPCON_L=rGPCON_L&~(3<<2)|(2<<2);	//GP1=EINT1
000698  e1a00001          MOV      r0,r1
00069c  e5900008          LDR      r0,[r0,#8]
0006a0  e3c0000c          BIC      r0,r0,#0xc
0006a4  e3800008          ORR      r0,r0,#8
0006a8  e5810008          STR      r0,[r1,#8]
;;;285    	rEXTINTC0=rEXTINTC0&~(7<<4)|(2<<4);	//EINT0=falling edge triggered
0006ac  e1a00001          MOV      r0,r1
0006b0  e5900018          LDR      r0,[r0,#0x18]
0006b4  e3c00070          BIC      r0,r0,#0x70
0006b8  e3800020          ORR      r0,r0,#0x20
0006bc  e5810018          STR      r0,[r1,#0x18]
;;;286    
;;;287    	//Wake-up(EINT9) 
;;;288    	rGPCON_L=rGPCON_L&~(3<<20)|(2<<18);	//GP9=EINT9
0006c0  e1a00001          MOV      r0,r1
0006c4  e5900008          LDR      r0,[r0,#8]
0006c8  e3c009c0          BIC      r0,r0,#0x300000
0006cc  e3800a80          ORR      r0,r0,#0x80000
0006d0  e5810008          STR      r0,[r1,#8]
;;;289    	rEXTINTC1=rEXTINTC1&~(7<<28)|(2<<24);	//EINT9=falling edge triggered
0006d4  e1a00001          MOV      r0,r1
0006d8  e590001c          LDR      r0,[r0,#0x1c]
0006dc  e3c00470          BIC      r0,r0,#0x70000000
0006e0  e3800780          ORR      r0,r0,#0x2000000
0006e4  e581001c          STR      r0,[r1,#0x1c]
;;;290    
;;;291    	//To test.... EINT11 can not wake-up the S3C24A0 from Sleep mode
;;;292        	rGPCON_M=rGPCON_M&~(3<<0)|(2<<0);	//GP11=EINT11
0006e8  e1a00001          MOV      r0,r1
0006ec  e5900004          LDR      r0,[r0,#4]
0006f0  e3c00003          BIC      r0,r0,#3
0006f4  e3800002          ORR      r0,r0,#2
0006f8  e5810004          STR      r0,[r1,#4]
;;;293        	rEXTINTC2=rEXTINTC2&~(7<<0)|(2<<0);	//EINT11=falling edge triggered
0006fc  e1a00001          MOV      r0,r1
000700  e5900020          LDR      r0,[r0,#0x20]
000704  e3c00007          BIC      r0,r0,#7
000708  e3800002          ORR      r0,r0,#2
00070c  e5810020          STR      r0,[r1,#0x20]
;;;294    
;;;295    	rEXTINTC0=0x222;
000710  e59f0314          LDR      r0,|L1.2604|
000714  e1c11000          BIC      r1,r1,r0
000718  e5810018          STR      r0,[r1,#0x18]
;;;296    	rEXTINTC1=0x2222222;
00071c  e59f030c          LDR      r0,|L1.2608|
000720  e1c11000          BIC      r1,r1,r0
000724  e581001c          STR      r0,[r1,#0x1c]
;;;297    	rEXTINTC2=0x22222222;
000728  e1800200          ORR      r0,r0,r0,LSL #4
00072c  e1c11000          BIC      r1,r1,r0
000730  e5810020          STR      r0,[r1,#0x20]
;;;298    
;;;299    	//Interrupt service routine
;;;300    	pISR_EINT0_2=(U32)EintInt;
000734  e59f02f8          LDR      r0,|L1.2612|
000738  e59f12f8          LDR      r1,|L1.2616|
00073c  e5810f20          STR      r0,[r1,#0xf20]
;;;301    	pISR_RTC=(U32)AlarmInt;
000740  e59f02f4          LDR      r0,|L1.2620|
000744  e5810f98          STR      r0,[r1,#0xf98]
;;;302    	pISR_EINT7_10=(U32)Eint9Int;
000748  e59f02f0          LDR      r0,|L1.2624|
00074c  e5810f28          STR      r0,[r1,#0xf28]
;;;303        	pISR_EINT11_14=(U32)Eint11Int;
000750  e59f02ec          LDR      r0,|L1.2628|
000754  e5810f2c          STR      r0,[r1,#0xf2c]
;;;304    
;;;305    	//Clear sub interrupt pending
;;;306    	rEINTPEND=BIT_EINTPEND_EINT11;
000758  e3a00e80          MOV      r0,#0x800
00075c  e51f16b8          LDR      r1,|L1.172|
000760  e5810038          STR      r0,[r1,#0x38]
;;;307    	rEINTPEND=BIT_EINTPEND_EINT9;	
000764  e3a00f80          MOV      r0,#0x200
000768  e1c11000          BIC      r1,r1,r0
00076c  e5810038          STR      r0,[r1,#0x38]
;;;308    	rEINTPEND=BIT_EINTPEND_EINT1;
000770  e3a00002          MOV      r0,#2
000774  e1c11000          BIC      r1,r1,r0
000778  e5810038          STR      r0,[r1,#0x38]
;;;309    	rEINTPEND=BIT_EINTPEND_EINT0;
00077c  e3a00001          MOV      r0,#1
000780  e1c11000          BIC      r1,r1,r0
000784  e5810038          STR      r0,[r1,#0x38]
;;;310    	rEINTPEND=BIT_EINTPEND_PWMKUP;
000788  e3a00a80          MOV      r0,#0x80000
00078c  e1c11000          BIC      r1,r1,r0
000790  e5810038          STR      r0,[r1,#0x38]
;;;311    	rEINTPEND=BIT_EINTPEND_ALLMSK;
000794  e51f0284          LDR      r0,|L1.1304|
000798  e1c11000          BIC      r1,r1,r0
00079c  e5810038          STR      r0,[r1,#0x38]
;;;312    
;;;313    	//Clear interrupt pending
;;;314    	ClearPending(BIT_EINT11_14);
0007a0  e3a00008          MOV      r0,#8
0007a4  e2411646          SUB      r1,r1,#0x4600000
0007a8  e5810000          STR      r0,[r1,#0]
0007ac  e1c10000          BIC      r0,r1,r0
0007b0  e5900010          LDR      r0,[r0,#0x10]
0007b4  e5810010          STR      r0,[r1,#0x10]
0007b8  e1a00001          MOV      r0,r1
0007bc  e5900010          LDR      r0,[r0,#0x10]
;;;315    	ClearPending(BIT_EINT7_10);
0007c0  e3a00004          MOV      r0,#4
0007c4  e1c11000          BIC      r1,r1,r0
0007c8  e5810000          STR      r0,[r1,#0]
0007cc  e1c10000          BIC      r0,r1,r0
0007d0  e5900010          LDR      r0,[r0,#0x10]
0007d4  e5810010          STR      r0,[r1,#0x10]
0007d8  e1a00001          MOV      r0,r1
0007dc  e5900010          LDR      r0,[r0,#0x10]
;;;316    	ClearPending(BIT_EINT0_2);
0007e0  e3a00001          MOV      r0,#1
0007e4  e1c11000          BIC      r1,r1,r0
0007e8  e5810000          STR      r0,[r1,#0]
0007ec  e1c10000          BIC      r0,r1,r0
0007f0  e5900010          LDR      r0,[r0,#0x10]
0007f4  e5810010          STR      r0,[r1,#0x10]
0007f8  e1a00001          MOV      r0,r1
0007fc  e5900010          LDR      r0,[r0,#0x10]
;;;317    	ClearPending(BIT_RTC);
000800  e3a00440          MOV      r0,#0x40000000
000804  e18014c0          ORR      r1,r0,r0,ASR #9
000808  e5810000          STR      r0,[r1,#0]
00080c  e18004c0          ORR      r0,r0,r0,ASR #9
000810  e5900010          LDR      r0,[r0,#0x10]
000814  e5810010          STR      r0,[r1,#0x10]
000818  e1a00001          MOV      r0,r1
00081c  e5900010          LDR      r0,[r0,#0x10]
;;;318    
;;;319    #if 1
;;;320    	//Unmask interrupt
;;;321    	rINTMSK=rINTMSK&~(BIT_EINT11_14);   //Just testing....
000820  e1a00001          MOV      r0,r1
000824  e5900008          LDR      r0,[r0,#8]
000828  e3c00008          BIC      r0,r0,#8
00082c  e5810008          STR      r0,[r1,#8]
;;;322        	rINTMSK=rINTMSK&~(BIT_EINT7_10);
000830  e1a00001          MOV      r0,r1
000834  e5900008          LDR      r0,[r0,#8]
000838  e3c00004          BIC      r0,r0,#4
00083c  e5810008          STR      r0,[r1,#8]
;;;323    	rINTMSK=rINTMSK&~(BIT_EINT0_2);
000840  e1a00001          MOV      r0,r1
000844  e5900008          LDR      r0,[r0,#8]
000848  e3c00001          BIC      r0,r0,#1
00084c  e5810008          STR      r0,[r1,#8]
;;;324    	rINTMSK=rINTMSK&~(BIT_RTC);	    //Just testing....
000850  e1a00001          MOV      r0,r1
000854  e5900008          LDR      r0,[r0,#8]
000858  e3c00440          BIC      r0,r0,#0x40000000
00085c  e5810008          STR      r0,[r1,#8]
;;;325    
;;;326    	//Unmask sub interrupt 
;;;327    	rEINTMASK=rEINTMASK&~(BIT_EINTPEND_EINT0);
000860  e2810646          ADD      r0,r1,#0x4600000
000864  e5900034          LDR      r0,[r0,#0x34]
000868  e3c00001          BIC      r0,r0,#1
00086c  e2811646          ADD      r1,r1,#0x4600000
000870  e5810034          STR      r0,[r1,#0x34]
;;;328    	rEINTMASK=rEINTMASK&~(BIT_EINTPEND_EINT1);
000874  e1a00001          MOV      r0,r1
000878  e5900034          LDR      r0,[r0,#0x34]
00087c  e3c00002          BIC      r0,r0,#2
000880  e5810034          STR      r0,[r1,#0x34]
;;;329    	rEINTMASK=rEINTMASK&~(BIT_EINTPEND_EINT9);
000884  e1a00001          MOV      r0,r1

⌨️ 快捷键说明

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