📄 sleep.txt
字号:
; generated by ARM C Compiler, ADS1.2 [Build 805]
; commandline [-errors .\err\sleep.err -O0 -asm -g+ -cpu ARM920T -fs "-IC:\Program Files\ARM\ADSv1_2\INCLUDE"]
CODE32
AREA ||.text||, CODE, READONLY
Eint0Int PROC
;;;52 static void __irq Eint0Int(void)
;;;53 {
|L1.0|
000000 e92d500f STMFD sp!,{r0-r3,r12,lr}
;;;54 ClearPending(BIT_EINT0);
000004 e3a00001 MOV r0,#1
000008 e3a0144a MOV r1,#0x4a000000
00000c e5810000 STR r0,[r1,#0]
000010 e3a00001 MOV r0,#1
000014 e3a0144a MOV r1,#0x4a000000
000018 e5810010 STR r0,[r1,#0x10]
00001c e3a0044a MOV r0,#0x4a000000
000020 e5900010 LDR r0,[r0,#0x10]
;;;55 Uart_Printf("[WU]EINT0 interrupt is occurred for Sleep mode wake-up.\n");
000024 e28f0008 ADR r0,|L1.52|
000028 ebfffffe BL Uart_Printf
;;;56 }
00002c e8bd500f LDMFD sp!,{r0-r3,r12,lr}
000030 e25ef004 SUBS pc,lr,#4
|L1.52|
000034 5d55575b DCB "[WU]"
000038 544e4945 DCB "EINT"
00003c 6e692030 DCB "0 in"
000040 72726574 DCB "terr"
000044 20747075 DCB "upt "
000048 6f207369 DCB "is o"
00004c 72756363 DCB "ccur"
000050 20646572 DCB "red "
000054 20726f66 DCB "for "
000058 65656c53 DCB "Slee"
00005c 6f6d2070 DCB "p mo"
000060 77206564 DCB "de w"
000064 2d656b61 DCB "ake-"
000068 0a2e7075 DCB "up.\n"
00006c 00000000 DCB "\0\0\0\0"
ENDP
Eint8_23Int PROC
;;;60 static void __irq Eint8_23Int(void)
;;;61 {
|L1.112|
000070 e92d500f STMFD sp!,{r0-r3,r12,lr}
;;;62 rEINTPEND=(1<<11); //EINT11 sub-pending bit.
000074 e3a00e80 MOV r0,#0x800
000078 e3a01456 MOV r1,#0x56000000
00007c e58100a8 STR r0,[r1,#0xa8]
;;;63 ClearPending(BIT_EINT8_23);
000080 e3a00020 MOV r0,#0x20
000084 e3a0144a MOV r1,#0x4a000000
000088 e5810000 STR r0,[r1,#0]
00008c e3a00020 MOV r0,#0x20
000090 e3a0144a MOV r1,#0x4a000000
000094 e5810010 STR r0,[r1,#0x10]
000098 e3a0044a MOV r0,#0x4a000000
00009c e5900010 LDR r0,[r0,#0x10]
;;;64 Uart_Printf("[WU]EINT8_23 interrupt is occurred for Sleep mode wake-up.\n");
0000a0 e28f0008 ADR r0,|L1.176|
0000a4 ebfffffe BL Uart_Printf
;;;65 }
0000a8 e8bd500f LDMFD sp!,{r0-r3,r12,lr}
0000ac e25ef004 SUBS pc,lr,#4
|L1.176|
0000b0 5d55575b DCB "[WU]"
0000b4 544e4945 DCB "EINT"
0000b8 33325f38 DCB "8_23"
0000bc 746e6920 DCB " int"
0000c0 75727265 DCB "erru"
0000c4 69207470 DCB "pt i"
0000c8 636f2073 DCB "s oc"
0000cc 72727563 DCB "curr"
0000d0 66206465 DCB "ed f"
0000d4 5320726f DCB "or S"
0000d8 7065656c DCB "leep"
0000dc 646f6d20 DCB " mod"
0000e0 61772065 DCB "e wa"
0000e4 752d656b DCB "ke-u"
0000e8 000a2e70 DCB "p.\n\0"
ENDP
Eint8_23Int_100Hz PROC
;;;69 static void __irq Eint8_23Int_100Hz(void)
;;;70 {
0000ec e92d500f STMFD sp!,{r0-r3,r12,lr}
;;;71 rEINTPEND=(1<<11); //EINT11 sub-pending bit.
0000f0 e3a00e80 MOV r0,#0x800
0000f4 e3a01456 MOV r1,#0x56000000
0000f8 e58100a8 STR r0,[r1,#0xa8]
;;;72 ClearPending(BIT_EINT8_23);
0000fc e3a00020 MOV r0,#0x20
000100 e3a0144a MOV r1,#0x4a000000
000104 e5810000 STR r0,[r1,#0]
000108 e3a00020 MOV r0,#0x20
00010c e3a0144a MOV r1,#0x4a000000
000110 e5810010 STR r0,[r1,#0x10]
000114 e3a0044a MOV r0,#0x4a000000
000118 e5900010 LDR r0,[r0,#0x10]
;;;73 Uart_Printf("wui\n");
00011c e28f0008 ADR r0,|L1.300|
000120 ebfffffe BL Uart_Printf
;;;74 }
000124 e8bd500f LDMFD sp!,{r0-r3,r12,lr}
000128 e25ef004 SUBS pc,lr,#4
|L1.300|
00012c 0a697577 DCB "wui\n"
000130 00000000 DCB "\0\0\0\0"
ENDP
AlarmInt PROC
;;;78 static void __irq AlarmInt(void)
;;;79 {
|L1.308|
000134 e92d500f STMFD sp!,{r0-r3,r12,lr}
;;;80 Uart_Printf("INTPND:%x, SRCPND:%x \n", rINTPND, rSRCPND);
000138 e3a0044a MOV r0,#0x4a000000
00013c e5900000 LDR r0,[r0,#0]
000140 e1a02000 MOV r2,r0
000144 e3a0044a MOV r0,#0x4a000000
000148 e5900010 LDR r0,[r0,#0x10]
00014c e1a01000 MOV r1,r0
000150 e28f0030 ADR r0,|L1.392|
000154 ebfffffe BL Uart_Printf
;;;81 ClearPending(BIT_RTC);
000158 e3a00440 MOV r0,#0x40000000
00015c e3a0144a MOV r1,#0x4a000000
000160 e5810000 STR r0,[r1,#0]
000164 e3a00440 MOV r0,#0x40000000
000168 e3a0144a MOV r1,#0x4a000000
00016c e5810010 STR r0,[r1,#0x10]
000170 e3a0044a MOV r0,#0x4a000000
000174 e5900010 LDR r0,[r0,#0x10]
;;;82 Uart_Printf("[WU]ALARM interrupt is occurred for Sleep mode wake-up.\n");
000178 e28f0020 ADR r0,|L1.416|
00017c ebfffffe BL Uart_Printf
;;;83 }
000180 e8bd500f LDMFD sp!,{r0-r3,r12,lr}
000184 e25ef004 SUBS pc,lr,#4
|L1.392|
000188 50544e49 DCB "INTP"
00018c 253a444e DCB "ND:%"
000190 53202c78 DCB "x, S"
000194 4e504352 DCB "RCPN"
000198 78253a44 DCB "D:%x"
00019c 00000a20 DCB " \n\0\0"
|L1.416|
0001a0 5d55575b DCB "[WU]"
0001a4 52414c41 DCB "ALAR"
0001a8 6e69204d DCB "M in"
0001ac 72726574 DCB "terr"
0001b0 20747075 DCB "upt "
0001b4 6f207369 DCB "is o"
0001b8 72756363 DCB "ccur"
0001bc 20646572 DCB "red "
0001c0 20726f66 DCB "for "
0001c4 65656c53 DCB "Slee"
0001c8 6f6d2070 DCB "p mo"
0001cc 77206564 DCB "de w"
0001d0 2d656b61 DCB "ake-"
0001d4 0a2e7075 DCB "up.\n"
0001d8 00000000 DCB "\0\0\0\0"
ENDP
Test_InitSDRAM PROC
;;;88 //Initialize SDRAM for SDRAM self-refresh test.
;;;89 {
0001dc e92d4010 STMFD sp!,{r4,lr}
;;;90 int i;
;;;91
;;;92 Uart_Printf("[SDRAM Initialization]\n");
0001e0 e28f0048 ADR r0,|L1.560|
0001e4 ebfffffe BL Uart_Printf
;;;93 Uart_Printf("Fill SDRAM for self-refresh test.\n");
0001e8 e28f0058 ADR r0,|L1.584|
0001ec ebfffffe BL Uart_Printf
;;;94 for(i=_NONCACHE_STARTADDRESS;i<(_NONCACHE_STARTADDRESS+0x400000);i+=4)
0001f0 e3a045c4 MOV r4,#0x31000000
|L1.500|
0001f4 e35405c5 CMP r4,#0x31400000
0001f8 aa000006 BGE |L1.536|
0001fc ea000001 B |L1.520|
|L1.512|
000200 e2844004 ADD r4,r4,#4
000204 eafffffa B |L1.500|
;;;95 *((U32 *)i)=i^0x55555555;
|L1.520|
000208 e59f005c LDR r0,|L1.620|
00020c e0240000 EOR r0,r4,r0
000210 e5840000 STR r0,[r4,#0]
000214 eafffff9 B |L1.512|
;;;96 Uart_Printf("Filling SDRAM is completed.\n");
|L1.536|
000218 e28f0050 ADR r0,|L1.624|
00021c ebfffffe BL Uart_Printf
;;;97
;;;98 *((volatile U32 *)0x33e00000)=0x0; //for Initialize the counter in Check_SleepWakeUp_100Hz().
000220 e3a00000 MOV r0,#0
000224 e59f1064 LDR r1,|L1.656|
000228 e5810000 STR r0,[r1,#0]
;;;99 }
00022c e8bd8010 LDMFD sp!,{r4,pc}
|L1.560|
000230 5244535b DCB "[SDR"
000234 49204d41 DCB "AM I"
000238 6974696e DCB "niti"
00023c 7a696c61 DCB "aliz"
000240 6f697461 DCB "atio"
000244 000a5d6e DCB "n]\n\0"
|L1.584|
000248 6c6c6946 DCB "Fill"
00024c 52445320 DCB " SDR"
000250 66204d41 DCB "AM f"
000254 7320726f DCB "or s"
000258 2d666c65 DCB "elf-"
00025c 72666572 DCB "refr"
000260 20687365 DCB "esh "
000264 74736574 DCB "test"
000268 00000a2e DCB ".\n\0\0"
|L1.620|
00026c 55555555 DCD 0x55555555
|L1.624|
000270 6c6c6946 DCB "Fill"
000274 20676e69 DCB "ing "
000278 41524453 DCB "SDRA"
00027c 7369204d DCB "M is"
000280 6d6f6320 DCB " com"
000284 74656c70 DCB "plet"
000288 0a2e6465 DCB "ed.\n"
00028c 00000000 DCB "\0\0\0\0"
|L1.656|
000290 33e00000 DCD 0x33e00000
ENDP
SelectEintType PROC
;;;103 void SelectEintType(void)
;;;104 {
000294 e92d4010 STMFD sp!,{r4,lr}
;;;105
;;;106 int extintMode;
;;;107
;;;108 Uart_Printf("1.L-level 2.H-level 3.F-edge 4.R-edge 5.B-edge\n");
000298 e28f0f41 ADR r0,|L1.932|
00029c ebfffffe BL Uart_Printf
;;;109 Uart_Printf("Select the EINT0 trigger type:");
0002a0 e28f0f4c ADR r0,|L1.984|
0002a4 ebfffffe BL Uart_Printf
;;;110
;;;111
;;;112 extintMode=Uart_Getch();
0002a8 ebfffffe BL Uart_Getch
0002ac e1a04000 MOV r4,r0
;;;113
;;;114 rGPFCON=rGPFCON & ~(3<<0)|(2<<0); //PF0=EINT0
0002b0 e3a00456 MOV r0,#0x56000000
0002b4 e5900050 LDR r0,[r0,#0x50]
0002b8 e3c00003 BIC r0,r0,#3
0002bc e3800002 ORR r0,r0,#2
0002c0 e3a01456 MOV r1,#0x56000000
0002c4 e5810050 STR r0,[r1,#0x50]
;;;115
;;;116 switch(extintMode)
0002c8 e2442031 SUB r0,r4,#0x31
0002cc e3500004 CMP r0,#4
0002d0 908ff100 ADDLS pc,pc,r0,LSL #2
0002d4 ea000030 B |L1.924|
0002d8 ea000003 B |L1.748|
0002dc ea00000a B |L1.780|
0002e0 ea000012 B |L1.816|
0002e4 ea00001a B |L1.852|
0002e8 ea000022 B |L1.888|
;;;117 {
;;;118 case '1':
;;;119 rEXTINT0=rEXTINT0&~(7<<0)|(0x0<<0); //EINT0=low level triggered
|L1.748|
0002ec e3a00456 MOV r0,#0x56000000
0002f0 e5900088 LDR r0,[r0,#0x88]
0002f4 e3c00007 BIC r0,r0,#7
0002f8 e3a01456 MOV r1,#0x56000000
0002fc e5810088 STR r0,[r1,#0x88]
;;;120 Uart_Printf("L-level\n");
000300 e28f00f0 ADR r0,|L1.1016|
000304 ebfffffe BL Uart_Printf
;;;121 break;
000308 ea000024 B |L1.928|
;;;122 case '2':
;;;123 rEXTINT0=rEXTINT0&~(7<<0)|(0x1<<0); //EINT0=high level triggered
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -