📄 power.txt
字号:
; generated by ARM C Compiler, ADS1.2 [Build 805]
; commandline [-errors .\err\power.err -O0 -asm -g+ -cpu ARM920T -fs "-IC:\Program Files\ARM\ADSv1_2\INCLUDE"]
CODE32
AREA ||.text||, CODE, READONLY
Power_Test PROC
;;;59 void Power_Test(void)
;;;60 {
|L1.0|
000000 e92d4010 STMFD sp!,{r4,lr}
;;;61 int i;
;;;62
;;;63 Uart_Printf("\nPower mode test.\n");
000004 e28f00d8 ADR r0,|L1.228|
000008 ebfffffe BL Uart_Printf
;;;64
;;;65 // Battery fault setting.
;;;66 rMISCCR = (rMISCCR & ~(0x7<<20)) | (1<<22) | (1<<21) | (0<<20);
00000c e3a00456 MOV r0,#0x56000000
000010 e5900080 LDR r0,[r0,#0x80]
000014 e3c00870 BIC r0,r0,#0x700000
000018 e3800860 ORR r0,r0,#0x600000
00001c e3a01456 MOV r1,#0x56000000
000020 e5810080 STR r0,[r1,#0x80]
;;;67
;;;68 while(1)
000024 e1a00000 NOP
|L1.40|
000028 e1a00000 NOP
;;;69 {
;;;70 i=0;
00002c e3a04000 MOV r4,#0
;;;71 Uart_Printf("\n\n");
000030 e28f00c0 ADR r0,|L1.248|
000034 ebfffffe BL Uart_Printf
;;;72 while(1)
000038 e1a00000 NOP
|L1.60|
00003c e1a00000 NOP
;;;73 { //display menu
;;;74 Uart_Printf("%2d:%s",i,func_power_test[i][1]);
000040 e59f00b4 LDR r0,|L1.252|
000044 e0800184 ADD r0,r0,r4,LSL #3
000048 e1a01004 MOV r1,r4
00004c e5902004 LDR r2,[r0,#4]
000050 e28f00a8 ADR r0,|L1.256|
000054 ebfffffe BL Uart_Printf
;;;75 i++;
000058 e2844001 ADD r4,r4,#1
;;;76 if((int)(func_power_test[i][0])==0)
00005c e59f0098 LDR r0,|L1.252|
000060 e7900184 LDR r0,[r0,r4,LSL #3]
000064 e3500000 CMP r0,#0
000068 1a000002 BNE |L1.120|
;;;77 {
;;;78 Uart_Printf("\n");
00006c e28f0094 ADR r0,|L1.264|
000070 ebfffffe BL Uart_Printf
;;;79 break;
000074 ea000007 B |L1.152|
;;;80 }
;;;81 if((i%3)==0)
|L1.120|
000078 e1a01004 MOV r1,r4
00007c e3a00003 MOV r0,#3
000080 ebfffffe BL __rt_sdiv
000084 e3510000 CMP r1,#0
000088 1a000001 BNE |L1.148|
;;;82 Uart_Printf("\n");
00008c e28f0074 ADR r0,|L1.264|
000090 ebfffffe BL Uart_Printf
;;;83 }
|L1.148|
000094 eaffffe8 B |L1.60|
;;;84
;;;85 Uart_Printf("\nSelect (\"-1\" to exit) : ");
|L1.152|
000098 e28f006c ADR r0,|L1.268|
00009c ebfffffe BL Uart_Printf
;;;86 i = Uart_GetIntNum();
0000a0 ebfffffe BL Uart_GetIntNum
0000a4 e1a04000 MOV r4,r0
;;;87 if(i==-1) break; // return.
0000a8 e3740001 CMN r4,#1
0000ac 1a000000 BNE |L1.180|
0000b0 ea000008 B |L1.216|
;;;88 if(i>=0 && (i<((sizeof(func_power_test)-1)/8)) ) // select and execute...
|L1.180|
0000b4 e3540000 CMP r4,#0
0000b8 ba000005 BLT |L1.212|
0000bc e3540010 CMP r4,#0x10
0000c0 2a000003 BCS |L1.212|
;;;89 ( (void (*)(void)) (func_power_test[i][0]) )();
0000c4 e59f1030 LDR r1,|L1.252|
0000c8 e7910184 LDR r0,[r1,r4,LSL #3]
0000cc e1a0e00f MOV lr,pc
0000d0 e1a0f000 MOV pc,r0
;;;90 }
|L1.212|
0000d4 eaffffd3 B |L1.40|
;;;91
;;;92 Uart_Printf("\nPower_Test program end.\n");
|L1.216|
0000d8 e28f0048 ADR r0,|L1.296|
0000dc ebfffffe BL Uart_Printf
;;;93 }
0000e0 e8bd8010 LDMFD sp!,{r4,pc}
|L1.228|
0000e4 776f500a DCB "\nPow"
0000e8 6d207265 DCB "er m"
0000ec 2065646f DCB "ode "
0000f0 74736574 DCB "test"
0000f4 00000a2e DCB ".\n\0\0"
|L1.248|
0000f8 00000a0a DCB "\n\n\0\0"
|L1.252|
0000fc 00000000 DCD func_power_test
|L1.256|
000100 3a643225 DCB "%2d:"
000104 00007325 DCB "%s\0\0"
|L1.264|
000108 0000000a DCB "\n\0\0\0"
|L1.268|
00010c 6c65530a DCB "\nSel"
000110 20746365 DCB "ect "
000114 312d2228 DCB "(\"-1"
000118 6f742022 DCB "\" to"
00011c 69786520 DCB " exi"
000120 3a202974 DCB "t) :"
000124 00000020 DCB " \0\0\0"
|L1.296|
000128 776f500a DCB "\nPow"
00012c 545f7265 DCB "er_T"
000130 20747365 DCB "est "
000134 676f7270 DCB "prog"
000138 206d6172 DCB "ram "
00013c 2e646e65 DCB "end."
000140 0000000a DCB "\n\0\0\0"
ENDP
SlowEint0Int PROC
;;;158 void __irq SlowEint0Int(void)
;;;159 {
000144 e92d0003 STMFD sp!,{r0,r1}
;;;160 ClearPending(BIT_EINT0);
000148 e3a00001 MOV r0,#1
00014c e3a0144a MOV r1,#0x4a000000
000150 e5810000 STR r0,[r1,#0]
000154 e3a00001 MOV r0,#1
000158 e3a0144a MOV r1,#0x4a000000
00015c e5810010 STR r0,[r1,#0x10]
000160 e3a0044a MOV r0,#0x4a000000
000164 e5900010 LDR r0,[r0,#0x10]
;;;161 slowExit=1;
000168 e3a00001 MOV r0,#1
00016c e59f1184 LDR r1,|L1.760|
000170 e5810000 STR r0,[r1,#0] ; slowExit
;;;162 }
000174 e8bd0003 LDMFD sp!,{r0,r1}
000178 e25ef004 SUBS pc,lr,#4
ENDP
Test_SlowMode PROC
;;;98 void Test_SlowMode(void)
;;;99 {
00017c e92d4038 STMFD sp!,{r3-r5,lr}
;;;100 int i;
;;;101 unsigned int saveREFRESH;
;;;102
;;;103 slowExit=0;
000180 e3a00000 MOV r0,#0
000184 e59f116c LDR r1,|L1.760|
000188 e5810000 STR r0,[r1,#0] ; slowExit
;;;104
;;;105 // GPIO and Interrupt setting
;;;106 rGPFCON=(rGPFCON & ~(0x3<<0)) | (0x2<<0); //PF0=EINT0
00018c e3a00456 MOV r0,#0x56000000
000190 e5900050 LDR r0,[r0,#0x50]
000194 e3c00003 BIC r0,r0,#3
000198 e3800002 ORR r0,r0,#2
00019c e3a01456 MOV r1,#0x56000000
0001a0 e5810050 STR r0,[r1,#0x50]
;;;107 rEXTINT0=(rEXTINT0&~(0x7<<0)) | (0x2<<0); //EINT0=falling edge triggered
0001a4 e3a00456 MOV r0,#0x56000000
0001a8 e5900088 LDR r0,[r0,#0x88]
0001ac e3c00007 BIC r0,r0,#7
0001b0 e3800002 ORR r0,r0,#2
0001b4 e3a01456 MOV r1,#0x56000000
0001b8 e5810088 STR r0,[r1,#0x88]
;;;108
;;;109 pISR_EINT0=(U32)SlowEint0Int;
0001bc e59f0138 LDR r0,|L1.764|
0001c0 e59f1138 LDR r1,|L1.768|
0001c4 e5810f20 STR r0,[r1,#0xf20]
;;;110 rINTMSK=~BIT_EINT0; // Unmask eint0
0001c8 e3e00001 MVN r0,#1
0001cc e3a0144a MOV r1,#0x4a000000
0001d0 e5810008 STR r0,[r1,#8]
;;;111
;;;112 Uart_Printf("[SLOW MODE TEST]\n");
0001d4 e28f0f4a ADR r0,|L1.772|
0001d8 ebfffffe BL Uart_Printf
;;;113 Uart_Printf(" Press EINT0 key to exit SLOW mode\n");
0001dc e28f0f4d ADR r0,|L1.792|
0001e0 ebfffffe BL Uart_Printf
;;;114 Uart_Printf(" Check the CLKOUT0 pad clock is the same as X-tal input in Slow mode.\n");
0001e4 e59f0154 LDR r0,|L1.832|
0001e8 ebfffffe BL Uart_Printf
;;;115 Uart_Printf(" Compare the LED Blink speed at each mode.\n");
0001ec e28f0f54 ADR r0,|L1.836|
0001f0 ebfffffe BL Uart_Printf
;;;116 Uart_Printf("\n Press any key to enter slow mode.\n");
0001f4 e28f0f5e ADR r0,|L1.884|
0001f8 ebfffffe BL Uart_Printf
;;;117 Uart_TxEmpty(1); //To avoid being crushed the character
0001fc e3a00001 MOV r0,#1
000200 ebfffffe BL Uart_TxEmpty
;;;118
;;;119 Clk0_Enable(2); // 0:MPLLin, 1:UPLL, 2:FCLK, 3:HCLK, 4:PCLK, 5:DCLK0
000204 e3a00002 MOV r0,#2
000208 ebfffffe BL Clk0_Enable
;;;120
;;;121 while(!slowExit) {
00020c e1a00000 NOP
|L1.528|
000210 e59f00e0 LDR r0,|L1.760|
000214 e5900000 LDR r0,[r0,#0] ; slowExit
000218 e3500000 CMP r0,#0
00021c 1a000012 BNE |L1.620|
;;;122 Led_Display(0xa);
000220 e3a0000a MOV r0,#0xa
000224 ebfffffe BL Led_Display
;;;123 //DoQsort();
;;;124 for(i=0; i<100; i++);
000228 e3a04000 MOV r4,#0
|L1.556|
00022c e3540064 CMP r4,#0x64
000230 aa000001 BGE |L1.572|
000234 e2844001 ADD r4,r4,#1
000238 eafffffb B |L1.556|
;;;125
;;;126 Led_Display(0x5);
|L1.572|
00023c e3a00005 MOV r0,#5
000240 ebfffffe BL Led_Display
;;;127 //DoQsort();
;;;128 for(i=0; i<100; i++);
000244 e3a04000 MOV r4,#0
|L1.584|
000248 e3540064 CMP r4,#0x64
00024c aa000001 BGE |L1.600|
000250 e2844001 ADD r4,r4,#1
000254 eafffffb B |L1.584|
;;;129
;;;130 if(Uart_GetKey()!=0) break;
|L1.600|
000258 ebfffffe BL Uart_GetKey
00025c e3500000 CMP r0,#0
000260 0a000000 BEQ |L1.616|
000264 ea000000 B |L1.620|
;;;131 }
|L1.616|
000268 eaffffe8 B |L1.528|
;;;132
;;;133 rCLKSLOW=(1<<7)|(1<<5)|(1<<4)|(0<<0); //FCLK=FIN/1,SLOW mode,MPLL=off,UPLL=off
|L1.620|
00026c e3a000b0 MOV r0,#0xb0
000270 e3a0144c MOV r1,#0x4c000000
000274 e5810010 STR r0,[r1,#0x10]
;;;134
;;;135 // Re-setting the refresh count for 12MHz HCLK.
;;;136 saveREFRESH=rREFRESH;
000278 e3a00448 MOV r0,#0x48000000
00027c e5905024 LDR r5,[r0,#0x24]
;;;137 rREFRESH=(1<<23)|(U32)(2048+1-12*7.8); //Trp=2clk,Trc=4clk
000280 e59f0114 LDR r0,|L1.924|
000284 e3a01448 MOV r1,#0x48000000
000288 e5810024 STR r0,[r1,#0x24]
;;;138
;;;139
;;;140 while(!slowExit) {
00028c e1a00000 NOP
|L1.656|
000290 e59f0060 LDR r0,|L1.760|
000294 e5900000 LDR r0,[r0,#0] ; slowExit
000298 e3500000 CMP r0,#0
00029c 1a000006 BNE |L1.700|
;;;141 Led_Display(0xa);
0002a0 e3a0000a MOV r0,#0xa
0002a4 ebfffffe BL Led_Display
;;;142 DoQsort();
0002a8 ebfffffe BL DoQsort
;;;143 //for(i=0; i<100; i++);
;;;144
;;;145 Led_Display(0x5);
0002ac e3a00005 MOV r0,#5
0002b0 ebfffffe BL Led_Display
;;;146 DoQsort();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -