📄 dvstest.txt
字号:
0006b8 e3a00003 MOV r0,#3
0006bc e3a01451 MOV r1,#0x51000000
0006c0 e5810004 STR r0,[r1,#4]
;;;333
;;;334 // Timer input clock frequency = PCLK/(prescaler value+1)/(divider value)
;;;335 // 1clock = 81us.
;;;336 rTCNTB0 = timer_val_arr[0];
0006c4 e59f0058 LDR r0,|L1.1828|
0006c8 e5900000 LDR r0,[r0,#0] ; timer_val_arr
0006cc e3a01451 MOV r1,#0x51000000
0006d0 e581000c STR r0,[r1,#0xc]
;;;337 rTCMPB0 = 0;
0006d4 e3a00000 MOV r0,#0
0006d8 e3a01451 MOV r1,#0x51000000
0006dc e5810010 STR r0,[r1,#0x10]
;;;338
;;;339 // Load timer cnt value
;;;340 rTCON = 1<<3| 1<<1;
0006e0 e3a0000a MOV r0,#0xa
0006e4 e3a01451 MOV r1,#0x51000000
0006e8 e5810008 STR r0,[r1,#8]
;;;341
;;;342 // Timer start.
;;;343 rTCON = 1<<3| 1<<0;
0006ec e3a00009 MOV r0,#9
0006f0 e3a01451 MOV r1,#0x51000000
0006f4 e5810008 STR r0,[r1,#8]
;;;344
;;;345 }
0006f8 e8bd8010 LDMFD sp!,{r4,pc}
|L1.1788|
0006fc 00000004 DCD ||.bss$2|| + 4
|L1.1792|
000700 6954205b DCB "[ Ti"
000704 2072656d DCB "mer "
000708 6e492030 DCB "0 In"
00070c 72726574 DCB "terr"
000710 20747075 DCB "upt "
000714 74746573 DCB "sett"
000718 5d676e69 DCB "ing]"
00071c 0000000a DCB "\n\0\0\0"
|L1.1824|
000720 00000000 DCD Timer0_intr
|L1.1828|
000724 00000000 DCD timer_val_arr
ENDP
Dvs_Test PROC
;;;56 void Dvs_Test(void)
;;;57 {
000728 e92d4030 STMFD sp!,{r4,r5,lr}
00072c e24dd01c SUB sp,sp,#0x1c
;;;58 volatile int i, n;
;;;59
;;;60 Uart_Printf("Dvs test.\n");
000730 e28f0f6a ADR r0,|L1.2272|
000734 ebfffffe BL Uart_Printf
;;;61
;;;62 rGPGCON = (rGPGCON & ~(3<<22)) | (1<<22); // set GPG11 output for idle state.
000738 e3a00456 MOV r0,#0x56000000
00073c e5900060 LDR r0,[r0,#0x60]
000740 e3c008c0 BIC r0,r0,#0xc00000
000744 e3800840 ORR r0,r0,#0x400000
000748 e3a01456 MOV r1,#0x56000000
00074c e5810060 STR r0,[r1,#0x60]
;;;63
;;;64 rBANKSIZE = (rBANKSIZE & ~(3<<4)) | (0<<4) | (1<<7); //SCKE_EN, SCLK_EN = disable.
000750 e3a00448 MOV r0,#0x48000000
000754 e5900028 LDR r0,[r0,#0x28]
000758 e3c00030 BIC r0,r0,#0x30
00075c e3800080 ORR r0,r0,#0x80
000760 e3a01448 MOV r1,#0x48000000
000764 e5810028 STR r0,[r1,#0x28]
;;;65
;;;66 Uart_Printf("Change core speed to 266MHz.\n");
000768 e28f0f5f ADR r0,|L1.2284|
00076c ebfffffe BL Uart_Printf
;;;67 #if FIN==12000000
;;;68 ChangeClockDivider(13, 12); // 1:3:6
;;;69 #if CPU2442A==1
;;;70 ChangeMPllValue(127,2,1); // 406MHz
;;;71 #else // 2442X
;;;72 ChangeMPllValue(127,2,0); // 406MHz
;;;73 #endif
;;;74 #else // 16.9344Mhz
;;;75 ChangeClockDivider(13, 12);
000770 e3a0100c MOV r1,#0xc
000774 e3a0000d MOV r0,#0xd
000778 ebfffffe BL ChangeClockDivider
;;;76 #if CPU2442A==1
;;;77 ChangeMPllValue(110,3,1); // 400MHz
00077c e3a02001 MOV r2,#1
000780 e3a01003 MOV r1,#3
000784 e3a0006e MOV r0,#0x6e
000788 ebfffffe BL ChangeMPllValue
;;;78 #else // 2442X
;;;79 ChangeMPllValue(110,3,0); // 400MHz
;;;80 #endif
;;;81 #endif
;;;82
;;;83 Calc_Clock(1);
00078c e3a00001 MOV r0,#1
000790 ebfffffe BL Calc_Clock
;;;84
;;;85 UPDATE_REFRESH(Hclk);
000794 e51f0428 LDR r0,|L1.884|
000798 e5900000 LDR r0,[r0,#0] ; Hclk
00079c ebfffffe BL _ffltu
0007a0 e1a05000 MOV r5,r0
0007a4 ebfffffe BL _f2d
0007a8 e98d0003 STMIB sp,{r0,r1}
0007ac e59f0158 LDR r0,|L1.2316|
0007b0 e890000c LDMIA r0,{r2,r3}
0007b4 e59d0004 LDR r0,[sp,#4]
0007b8 ebfffffe BL _dmul
0007bc e58d000c STR r0,[sp,#0xc]
0007c0 e58d1010 STR r1,[sp,#0x10]
0007c4 e59f0144 LDR r0,|L1.2320|
0007c8 e890000c LDMIA r0,{r2,r3}
0007cc e59d000c LDR r0,[sp,#0xc]
0007d0 ebfffffe BL _ddiv
0007d4 e58d0014 STR r0,[sp,#0x14]
0007d8 e58d1018 STR r1,[sp,#0x18]
0007dc ebfffffe BL _dfixu
0007e0 e2600001 RSB r0,r0,#1
0007e4 e2800e80 ADD r0,r0,#0x800
0007e8 e3a01448 MOV r1,#0x48000000
0007ec e5911024 LDR r1,[r1,#0x24]
0007f0 e1a015a1 MOV r1,r1,LSR #11
0007f4 e1a01581 MOV r1,r1,LSL #11
0007f8 e1800001 ORR r0,r0,r1
0007fc e3a01448 MOV r1,#0x48000000
000800 e5810024 STR r0,[r1,#0x24]
;;;86 Uart_Init(Pclk, 115200);
000804 e59f1108 LDR r1,|L1.2324|
000808 e59f0108 LDR r0,|L1.2328|
00080c e5900000 LDR r0,[r0,#0] ; Pclk
000810 ebfffffe BL Uart_Init
;;;87
;;;88 Uart_Printf("Check Clkout0:FCLK, Clkout1:HCLK.\n");
000814 e28f0f40 ADR r0,|L1.2332|
000818 ebfffffe BL Uart_Printf
;;;89 // Clkout0: FCLK.
;;;90 Clk0_Enable(2);
00081c e3a00002 MOV r0,#2
000820 ebfffffe BL Clk0_Enable
;;;91 // Clkout1: HCLK.
;;;92 Clk1_Enable(3);
000824 e3a00003 MOV r0,#3
000828 ebfffffe BL Clk1_Enable
;;;93
;;;94
;;;95 #if ADS10==TRUE
;;;96 srand(0);
00082c e3a00000 MOV r0,#0
000830 ebfffffe BL srand
;;;97 #endif
;;;98 Led_Display(0); // clear all leds.
000834 e3a00000 MOV r0,#0
000838 ebfffffe BL Led_Display
;;;99
;;;100 Timer_Setting();
00083c ebfffffe BL Timer_Setting
;;;101 Set_Lcd_Tft_16Bit_240320_Dvs();
000840 ebfffffe BL Set_Lcd_Tft_16Bit_240320_Dvs
;;;102
;;;103 Uart_Printf("Tcnt, Vcnt, Idle_flag.\n");
000844 e28f00f4 ADR r0,|L1.2368|
000848 ebfffffe BL Uart_Printf
;;;104 Uart_Printf("%8d,%8d,%1d\n", Timer_cnt0, Vcount, Idle_flag);
00084c e51f04e4 LDR r0,|L1.880|
000850 e1d030f0 LDRSH r3,[r0,#0] ; Idle_flag
000854 e51f04d4 LDR r0,|L1.904|
000858 e5902000 LDR r2,[r0,#0] ; Vcount
00085c e51f0168 LDR r0,|L1.1788|
000860 e5901000 LDR r1,[r0,#0] ; Timer_cnt0
000864 e28f00ec ADR r0,|L1.2392|
000868 ebfffffe BL Uart_Printf
;;;105
;;;106 while(1) {
00086c e1a00000 NOP
|L1.2160|
000870 e1a00000 NOP
;;;107 //Uart_Printf("\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b");
;;;108 Uart_Printf("%8d,%8d,%1d\n", Timer_cnt0, Vcount, Idle_flag);
000874 e51f050c LDR r0,|L1.880|
000878 e1d030f0 LDRSH r3,[r0,#0] ; Idle_flag
00087c e51f04fc LDR r0,|L1.904|
000880 e5902000 LDR r2,[r0,#0] ; Vcount
000884 e51f0190 LDR r0,|L1.1788|
000888 e5901000 LDR r1,[r0,#0] ; Timer_cnt0
00088c e28f00c4 ADR r0,|L1.2392|
000890 ebfffffe BL Uart_Printf
;;;109 for(i=0; i<1024*32; i+=4) {
000894 e3a00000 MOV r0,#0
000898 e1a04000 MOV r4,r0
|L1.2204|
00089c e3540c80 CMP r4,#0x8000
0008a0 aa000004 BGE |L1.2232|
0008a4 ea000002 B |L1.2228|
|L1.2216|
0008a8 e2840004 ADD r0,r4,#4
0008ac e1a04000 MOV r4,r0
0008b0 eafffff9 B |L1.2204|
;;;110 //*(U32 *)(XADDR+i) = i;
;;;111 //*(U32 *)(XADDR+i);
;;;112 }
|L1.2228|
0008b4 eafffffb B |L1.2216|
;;;113 if(Uart_GetKey()==ESC_KEY) break;
|L1.2232|
0008b8 ebfffffe BL Uart_GetKey
0008bc e3500071 CMP r0,#0x71
0008c0 1a000000 BNE |L1.2248|
0008c4 ea000000 B |L1.2252|
;;;114 }
|L1.2248|
0008c8 eaffffe8 B |L1.2160|
;;;115
;;;116 rINTMSK = BIT_ALLMSK;
|L1.2252|
0008cc e3e00000 MVN r0,#0
0008d0 e3a0144a MOV r1,#0x4a000000
0008d4 e5810008 STR r0,[r1,#8]
;;;117 }
0008d8 e28dd01c ADD sp,sp,#0x1c
0008dc e8bd8030 LDMFD sp!,{r4,r5,pc}
|L1.2272|
0008e0 20737644 DCB "Dvs "
0008e4 74736574 DCB "test"
0008e8 00000a2e DCB ".\n\0\0"
|L1.2284|
0008ec 6e616843 DCB "Chan"
0008f0 63206567 DCB "ge c"
0008f4 2065726f DCB "ore "
0008f8 65657073 DCB "spee"
0008fc 6f742064 DCB "d to"
000900 36363220 DCB " 266"
000904 2e7a484d DCB "MHz."
000908 0000000a DCB "\n\0\0\0"
|L1.2316|
00090c 00000000 DCD |L1.888|
|L1.2320|
000910 00000000 DCD |L1.896|
|L1.2324|
000914 0001c200 DCD 0x0001c200
|L1.2328|
000918 00000000 DCD Pclk
|L1.2332|
00091c 63656843 DCB "Chec"
000920 6c43206b DCB "k Cl"
000924 74756f6b DCB "kout"
000928 43463a30 DCB "0:FC"
00092c 202c4b4c DCB "LK, "
000930 6f6b6c43 DCB "Clko"
000934 3a317475 DCB "ut1:"
000938 4b4c4348 DCB "HCLK"
00093c 00000a2e DCB ".\n\0\0"
|L1.2368|
000940 746e6354 DCB "Tcnt"
000944 6356202c DCB ", Vc"
000948 202c746e DCB "nt, "
00094c 656c6449 DCB "Idle"
000950 616c665f DCB "_fla"
000954 000a2e67 DCB "g.\n\0"
|L1.2392|
000958 2c643825 DCB "%8d,"
00095c 2c643825 DCB "%8d,"
000960 0a643125 DCB "%1d\n"
000964 00000000 DCB "\0\0\0\0"
ENDP
Led_Onoff PROC
;;;303 void Led_Onoff(int Led_No, int On_Off)
;;;304 {
000968 e3510001 CMP r1,#1
;;;305 // GPF7 GPF6 GPF5 GPF4
;;;306 //nLED_8 nLED4 nLED_2 nLED_1
;;;307 if(On_Off==ON) rGPFDAT = (rGPFDAT & ~Led_No);
00096c 1a000005 BNE |L1.2442|
000970 e3a02456 MOV r2,#0x56000000
000974 e5922054 LDR r2,[r2,#0x54]
000978 e1c22000 BIC r2,r2,r0
00097c e3a03456 MOV r3,#0x56000000
000980 e5832054 STR r2,[r3,#0x54]
000984 ea000004 B |L1.2460|
;;;308 else rGPFDAT = (rGPFDAT | Led_No);
|L1.2442|
000988 e3a02456 MOV r2,#0x56000000
00098c e5922054 LDR r2,[r2,#0x54]
000990 e1822000 ORR r2,r2,r0
000994 e3a03456 MOV r3,#0x56000000
000998 e5832054 STR r2,[r3,#0x54]
;;;309 }
|L1.2460|
00099c e1a0f00e MOV pc,lr
ENDP
AREA ||.data||, DATA, ALIGN=2
||.data$0||
Div_flag
DCW 0x007c
DCB 0x00,0x00
timer_val_arr
DCD 0x00000128
DCD 0x00000269
DCD 0x00000322
DCD 0x00000504
AREA ||.bss||, NOINIT, ALIGN=2
Vcount
||.bss$2||
% 4
Timer_cnt0
% 4
Idle_flag
% 2
intr_flag
% 2
timer_select
% 4
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -