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

📄 idle.txt

📁 支持三星原产的S3C24A0开发板
💻 TXT
📖 第 1 页 / 共 4 页
字号:
000614  e5900020          LDR      r0,[r0,#0x20]
000618  e3c00007          BIC      r0,r0,#7
00061c  e3800002          ORR      r0,r0,#2
000620  e5810020          STR      r0,[r1,#0x20]
;;;217    
;;;218        SetTouchWakeUp();
000624  ebfffffe          BL       SetTouchWakeUp
;;;219    
;;;220    #if USE_RTC_ALARM
;;;221        SetAlarmWakeUp(10);
000628  e3a0000a          MOV      r0,#0xa
00062c  ebfffffe          BL       SetAlarmWakeUp
;;;222    #endif
;;;223    
;;;224        SetModemWakeUp();
000630  ebfffffe          BL       SetModemWakeUp
;;;225        
;;;226        rINTMSK=BIT_ALLMSK;
000634  e3e00000          MVN      r0,#0
000638  e51f1570          LDR      r1,|L1.208|
00063c  e5810008          STR      r0,[r1,#8]
;;;227        rINTSUBMSK=BIT_SUB_ALLMSK;
000640  e3e004e0          MVN      r0,#0xe0000000
000644  e1c11440          BIC      r1,r1,r0,ASR #8
000648  e581001c          STR      r0,[r1,#0x1c]
;;;228        rEINTMASK=BIT_EINTPEND_ALLMSK;
00064c  e1a004c0          MOV      r0,r0,ASR #9
000650  e2811646          ADD      r1,r1,#0x4600000
000654  e5810034          STR      r0,[r1,#0x34]
;;;229    
;;;230        pISR_EINT0_2=(U32)EintInt;
000658  e59f0254          LDR      r0,|L1.2228|
00065c  e59f1254          LDR      r1,|L1.2232|
000660  e5810f20          STR      r0,[r1,#0xf20]
;;;231        pISR_EINT7_10=(U32)Eint9Int;
000664  e59f0250          LDR      r0,|L1.2236|
000668  e5810f28          STR      r0,[r1,#0xf28]
;;;232        pISR_EINT11_14=(U32)EintInt;
00066c  e59f0240          LDR      r0,|L1.2228|
000670  e5810f2c          STR      r0,[r1,#0xf2c]
;;;233        pISR_RTC=(U32)AlarmInt;
000674  e59f0244          LDR      r0,|L1.2240|
000678  e5810f98          STR      r0,[r1,#0xf98]
;;;234        pISR_MODEM=(U32)ModemInt;
00067c  e59f0240          LDR      r0,|L1.2244|
000680  e5810f6c          STR      r0,[r1,#0xf6c]
;;;235        pISR_ADC_PENUP_DOWN=(U32)PenDownInt;
000684  e59f023c          LDR      r0,|L1.2248|
000688  e5810f9c          STR      r0,[r1,#0xf9c]
;;;236    
;;;237        //Clear sub interrupt pending
;;;238        rEINTPEND=BIT_EINTPEND_EINT0;
00068c  e3a00001          MOV      r0,#1
000690  e51f1614          LDR      r1,|L1.132|
000694  e5810038          STR      r0,[r1,#0x38]
;;;239        rEINTPEND=BIT_EINTPEND_EINT1;
000698  e3a00002          MOV      r0,#2
00069c  e1c11000          BIC      r1,r1,r0
0006a0  e5810038          STR      r0,[r1,#0x38]
;;;240        rEINTPEND=BIT_EINTPEND_EINT9;
0006a4  e3a00f80          MOV      r0,#0x200
0006a8  e1c11000          BIC      r1,r1,r0
0006ac  e5810038          STR      r0,[r1,#0x38]
;;;241        rEINTPEND=BIT_EINTPEND_EINT11;
0006b0  e3a00e80          MOV      r0,#0x800
0006b4  e1c11000          BIC      r1,r1,r0
0006b8  e5810038          STR      r0,[r1,#0x38]
;;;242        rSUBSRCPND=(BIT_SUB_PENDN|BIT_SUB_PENUP);
0006bc  e3a00a60          MOV      r0,#0x60000
0006c0  e2411646          SUB      r1,r1,#0x4600000
0006c4  e5810018          STR      r0,[r1,#0x18]
;;;243        //Clear interrupt pending
;;;244        ClearPending(BIT_EINT0_2);
0006c8  e3a00001          MOV      r0,#1
0006cc  e1c11000          BIC      r1,r1,r0
0006d0  e5810000          STR      r0,[r1,#0]
0006d4  e1c10000          BIC      r0,r1,r0
0006d8  e5900010          LDR      r0,[r0,#0x10]
0006dc  e5810010          STR      r0,[r1,#0x10]
0006e0  e1a00001          MOV      r0,r1
0006e4  e5900010          LDR      r0,[r0,#0x10]
;;;245        ClearPending(BIT_EINT7_10);
0006e8  e3a00004          MOV      r0,#4
0006ec  e1c11000          BIC      r1,r1,r0
0006f0  e5810000          STR      r0,[r1,#0]
0006f4  e1c10000          BIC      r0,r1,r0
0006f8  e5900010          LDR      r0,[r0,#0x10]
0006fc  e5810010          STR      r0,[r1,#0x10]
000700  e1a00001          MOV      r0,r1
000704  e5900010          LDR      r0,[r0,#0x10]
;;;246        ClearPending(BIT_EINT11_14);
000708  e3a00008          MOV      r0,#8
00070c  e1c11000          BIC      r1,r1,r0
000710  e5810000          STR      r0,[r1,#0]
000714  e1c10000          BIC      r0,r1,r0
000718  e5900010          LDR      r0,[r0,#0x10]
00071c  e5810010          STR      r0,[r1,#0x10]
000720  e1a00001          MOV      r0,r1
000724  e5900010          LDR      r0,[r0,#0x10]
;;;247        ClearPending(BIT_RTC);
000728  e3a00440          MOV      r0,#0x40000000
00072c  e18014c0          ORR      r1,r0,r0,ASR #9
000730  e5810000          STR      r0,[r1,#0]
000734  e18004c0          ORR      r0,r0,r0,ASR #9
000738  e5900010          LDR      r0,[r0,#0x10]
00073c  e5810010          STR      r0,[r1,#0x10]
000740  e1a00001          MOV      r0,r1
000744  e5900010          LDR      r0,[r0,#0x10]
;;;248        ClearPending(BIT_MODEM);
000748  e3a00a80          MOV      r0,#0x80000
00074c  e1c11000          BIC      r1,r1,r0
000750  e5810000          STR      r0,[r1,#0]
000754  e1c10000          BIC      r0,r1,r0
000758  e5900010          LDR      r0,[r0,#0x10]
00075c  e5810010          STR      r0,[r1,#0x10]
000760  e1a00001          MOV      r0,r1
000764  e5900010          LDR      r0,[r0,#0x10]
;;;249        ClearPending(BIT_ADC_PENUP_DOWN);
000768  e3a00480          MOV      r0,#0x80000000
00076c  e1c11000          BIC      r1,r1,r0
000770  e5810000          STR      r0,[r1,#0]
000774  e1c10000          BIC      r0,r1,r0
000778  e5900010          LDR      r0,[r0,#0x10]
00077c  e5810010          STR      r0,[r1,#0x10]
000780  e1a00001          MOV      r0,r1
000784  e5900010          LDR      r0,[r0,#0x10]
;;;250     
;;;251        //Uart_Printf("rINTMSK=0x%x, rINTSUBMSK=0x%x, rEINTMASK=0x%x\n",rINTMSK, rINTSUBMSK, rEINTMASK);
;;;252        //rPWRMAN=rPWRMAN&~(1<<8)|(1<<8); //Mask touch screen wakeup
;;;253        
;;;254        //Unmask interrupt
;;;255        rINTMSK=rINTMSK&~(BIT_EINT0_2);
000788  e1a00001          MOV      r0,r1
00078c  e5900008          LDR      r0,[r0,#8]
000790  e3c00001          BIC      r0,r0,#1
000794  e5810008          STR      r0,[r1,#8]
;;;256        rINTMSK=rINTMSK&~(BIT_EINT7_10);
000798  e1a00001          MOV      r0,r1
00079c  e5900008          LDR      r0,[r0,#8]
0007a0  e3c00004          BIC      r0,r0,#4
0007a4  e5810008          STR      r0,[r1,#8]
;;;257        rINTMSK=rINTMSK&~(BIT_EINT11_14);
0007a8  e1a00001          MOV      r0,r1
0007ac  e5900008          LDR      r0,[r0,#8]
0007b0  e3c00008          BIC      r0,r0,#8
0007b4  e5810008          STR      r0,[r1,#8]
;;;258        rINTMSK=rINTMSK&~(BIT_RTC);
0007b8  e1a00001          MOV      r0,r1
0007bc  e5900008          LDR      r0,[r0,#8]
0007c0  e3c00440          BIC      r0,r0,#0x40000000
0007c4  e5810008          STR      r0,[r1,#8]
;;;259        rINTMSK=rINTMSK&~(BIT_MODEM);
0007c8  e1a00001          MOV      r0,r1
0007cc  e5900008          LDR      r0,[r0,#8]
0007d0  e3c00a80          BIC      r0,r0,#0x80000
0007d4  e5810008          STR      r0,[r1,#8]
;;;260        rINTMSK=rINTMSK&~(BIT_ADC_PENUP_DOWN);
0007d8  e1a00001          MOV      r0,r1
0007dc  e5900008          LDR      r0,[r0,#8]
0007e0  e3c00480          BIC      r0,r0,#0x80000000
0007e4  e5810008          STR      r0,[r1,#8]
;;;261        //Unmask sub interrupt 
;;;262        rEINTMASK=rEINTMASK&~(BIT_EINTPEND_EINT0);
0007e8  e2810646          ADD      r0,r1,#0x4600000
0007ec  e5900034          LDR      r0,[r0,#0x34]
0007f0  e3c00001          BIC      r0,r0,#1
0007f4  e2811646          ADD      r1,r1,#0x4600000
0007f8  e5810034          STR      r0,[r1,#0x34]
;;;263        rEINTMASK=rEINTMASK&~(BIT_EINTPEND_EINT1);
0007fc  e1a00001          MOV      r0,r1
000800  e5900034          LDR      r0,[r0,#0x34]
000804  e3c00002          BIC      r0,r0,#2
000808  e5810034          STR      r0,[r1,#0x34]
;;;264        rEINTMASK=rEINTMASK&~(BIT_EINTPEND_EINT9);
00080c  e1a00001          MOV      r0,r1
000810  e5900034          LDR      r0,[r0,#0x34]
000814  e3c00f80          BIC      r0,r0,#0x200
000818  e5810034          STR      r0,[r1,#0x34]
;;;265        rEINTMASK=rEINTMASK&~(BIT_EINTPEND_EINT11);
00081c  e1a00001          MOV      r0,r1
000820  e5900034          LDR      r0,[r0,#0x34]
000824  e3c00e80          BIC      r0,r0,#0x800
000828  e5810034          STR      r0,[r1,#0x34]
;;;266        rINTSUBMSK=rINTSUBMSK&~(BIT_SUB_PENDN);
00082c  e2410646          SUB      r0,r1,#0x4600000
000830  e590001c          LDR      r0,[r0,#0x1c]
000834  e3c00a40          BIC      r0,r0,#0x40000
000838  e2411646          SUB      r1,r1,#0x4600000
00083c  e581001c          STR      r0,[r1,#0x1c]
;;;267    
;;;268        Uart_Printf("\nEntering IDLE mode......\n\n");
000840  e28f0084          ADR      r0,|L1.2252|
000844  ebfffffe          BL       _printf
;;;269        Uart_TxEmpty(0);
000848  e3a00000          MOV      r0,#0
00084c  ebfffffe          BL       Uart_TxEmpty
;;;270    
;;;271        rCLKCON=( rCLKCON & ~(1<<2) ) | (1<<2);  //enter IDLE mode.
000850  e3a00440          MOV      r0,#0x40000000
000854  e5900020          LDR      r0,[r0,#0x20]
000858  e3800004          ORR      r0,r0,#4
00085c  e3a01440          MOV      r1,#0x40000000
000860  e5810020          STR      r0,[r1,#0x20]
;;;272        for(i=0;i<10;i++);   
000864  e3a04000          MOV      r4,#0
                  |L1.2152|
000868  e354000a          CMP      r4,#0xa
00086c  aa00001d          BGE      |L1.2280|
000870  e2844001          ADD      r4,r4,#1
000874  eafffffb          B        |L1.2152|
                  |L1.2168|
000878  4c44495b          DCB      "[IDL"
00087c  6f4d2045          DCB      "E Mo"
000880  54206564          DCB      "de T"
000884  5d747365          DCB      "est]"
000888  0000000a          DCB      "\n\0\0\0"
                  |L1.2188|
00088c  63656843          DCB      "Chec"
000890  6874206b          DCB      "k th"
000894  75632065          DCB      "e cu"
000898  6e657272          DCB      "rren"
00089c  75632074          DCB      "t cu"
0008a0  6d75736e          DCB      "nsum"
0008a4  6f697470          DCB      "ptio"
0008a8  000a2e6e          DCB      "n.\n\0"
                  |L1.2220|
0008ac  00000000          DCD      ||.constdata$1||
                  |L1.2224|
0008b0  00000044          DCD      ||.constdata$1|| + 68
                  |L1.2228|
0008b4  00000000          DCD      EintInt
                  |L1.2232|
0008b8  13fff000          DCD      0x13fff000
                  |L1.2236|
0008bc  00000000          DCD      Eint9Int
                  |L1.2240|
0008c0  00000000          DCD      AlarmInt
                  |L1.2244|
0008c4  00000000          DCD      ModemInt
                  |L1.2248|
0008c8  00000000          DCD      PenDownInt
                  |L1.2252|
0008cc  746e450a          DCB      "\nEnt"
0008d0  6e697265          DCB      "erin"
0008d4  44492067          DCB      "g ID"
0008d8  6d20454c          DCB      "LE m"
0008dc  2e65646f          DCB      "ode."
0008e0  2e2e2e2e          DCB      "...."
0008e4  000a0a2e          DCB      ".\n\n\0"
;;;273        //wait until S3C24A0X enters IDLE mode.	
;;;274        //wait EINT, RTC alarm, Touch screen pen-down or Modem interrupt
;;;275    
;;;276        rCLKCON &= ~(1<<2); 
                  |L1.2280|
0008e8  e3a00440          MOV      r0,#0x40000000
0008ec  e5900020          LDR      r0,[r0,#0x20]
0008f0  e3c00004          BIC      r0,r0,#4
0008f4  e3a01440          MOV      r1,#0x40000000
0008f8  e5810020          STR      r0,[r1,#0x20]
;;;277        rINTMSK=BIT_ALLMSK;
0008fc  e3e00000          MVN      r0,#0
000900  e0411a80          SUB      r1,r1,r0,LSL #21
000904  e5810008          STR      r0,[r1,#8]
;;;278        //turn-off IDLE bit. IDLE bit should be turned off after wake-up.
;;;279        Uart_Printf("Return to Normal Mode.\n");
000908  e28f0004          ADR      r0,|L1.2324|
00090c  ebfffffe          BL       _printf
;;;280    }
000910  e8bd8010          LDMFD    sp!,{r4,pc}
                  |L1.2324|
000914  75746552          DCB      "Retu"
000918  74206e72          DCB      "rn t"
00091c  6f4e206f          DCB      "o No"
000920  6c616d72          DCB      "rmal"
000924  646f4d20          DCB      " Mod"
000928  000a2e65          DCB      "e.\n\0"
                          ENDP

                  Test_IdleModeHard PROC
;;;283    void Test_IdleModeHard(void)
;;;284    {
00092c  e92d4010          STMFD    sp!,{r4,lr}
;;;285        int i;
;;;286    
;;;287        Uart_Printf("[IDLE Mode Hard Test with Function Genenrator]\n");
000930  e28f0f44          ADR      r0,|L1.2632|
000934  ebfffffe          BL       _printf
;;;288        Uart_Printf("S3C24A0X will wake up by EINT9 at its falling edge.\n");
000938  e28f0f4e          ADR      r0,|L1.2680|
00093c  ebfffffe          BL       _printf
;;;289        Uart_TxEmpty(0);    //Wait until UART0 Tx buffer empty.
000940  e3a00000          MOV      r0,#0
000944  ebfffffe          BL       Uart_TxEmpty
;;;290    
;;;291        m_cnt=0;
000948  e3a00000          MOV      r0,#0
00094c  e51f16e8          LDR      r1,|L1.620|
000950  e5810000          STR      r0,[r1,#0]  ; m_cnt
;;;292        m_flag=1;
000954  e3a00001          MOV      r0,#1
000958  e51f16ec          LDR      r1,|L1.628|
00095c  e5810000          STR      r0,[r1,#0]  ; m_flag
;;;293        rGPCON_L=( rGPCON_L & ~(3<<18) ) | (2<<18); //GP9=EINT9
000960  e51f08e4          LDR      r0,|L1.132|
000964  e5900008          LDR      r0,[r0,#8]
000968  e3c00ac0          BIC      r0,r0,#0xc0000
00096c  e3800a80          ORR      r0,r0,#0x80000
000970  e51f18f4          LDR      r1,|L1.132|
000974  e5810008          STR      r0,[r1,#8]
;;;294        rEXTINTC1=( rEXTINTC1 & ~(7<<24) ) | (2<<24); //EINT9=falling edge triggered
000978  e1a00001          MOV      r0,r1
00097c  e590001c          LDR      r0,[r0,#0x1c]
000980  e3c00670          BIC      r0,r0,#0x7000000
000984  e3800780          ORR      r0,r0,#0x2000000
000988  e581001c          STR      r0,[r1,#0x1c]

⌨️ 快捷键说明

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