📄 iis.txt
字号:
; generated by ARM C Compiler, ADS1.2 [Build 842]
; commandline [-errors .\err\iis.err -O0 -asm -g+ -cpu 5TEJ -fs -Wd -Ec -I.\include "-IC:\Program Files\ARM\ADSv1_2\INCLUDE"]
CODE32
AREA ||.text||, CODE, READONLY
Ch14_IIS PROC
;;;71 void Ch14_IIS(void)
;;;72 {
|L1.0|
000000 e92d4010 STMFD sp!,{r4,lr}
;;;73 int i;
;;;74
;;;75 Uart_Printf("\n====== IIS Controller Test program start ======\n");
000004 e28f00b0 ADR r0,|L1.188|
000008 ebfffffe BL _printf
;;;76
;;;77 while(1)
00000c e1a00000 NOP
|L1.16|
000010 e1a00000 NOP
;;;78 {
;;;79 i=0;
000014 e3a04000 MOV r4,#0
;;;80 Uart_Printf("\n\n");
000018 e28f00d0 ADR r0,|L1.240|
00001c ebfffffe BL _printf
;;;81 while(1)
000020 e1a00000 NOP
|L1.36|
000024 e1a00000 NOP
;;;82 { //display menu
;;;83 Uart_Printf("%2d:%s",i,func_iis_test[i][1]);
000028 e59f00c4 LDR r0,|L1.244|
00002c e0800184 ADD r0,r0,r4,LSL #3
000030 e1a01004 MOV r1,r4
000034 e5902004 LDR r2,[r0,#4]
000038 e28f00b8 ADR r0,|L1.248|
00003c ebfffffe BL _printf
;;;84 i++;
000040 e2844001 ADD r4,r4,#1
;;;85 if((int)(func_iis_test[i][0])==0)
000044 e59f00a8 LDR r0,|L1.244|
000048 e7900184 LDR r0,[r0,r4,LSL #3]
00004c e3500000 CMP r0,#0
000050 1a000002 BNE |L1.96|
;;;86 {
;;;87 Uart_Printf("\n");
000054 e28f00a4 ADR r0,|L1.256|
000058 ebfffffe BL _printf
;;;88 break;
00005c ea000004 B |L1.116|
;;;89 }
;;;90 if((i%4)==0)
|L1.96|
000060 e3140003 TST r4,#3
000064 1a000001 BNE |L1.112|
;;;91 Uart_Printf("\n");
000068 e28f0090 ADR r0,|L1.256|
00006c ebfffffe BL _printf
;;;92 }
|L1.112|
000070 eaffffeb B |L1.36|
;;;93
;;;94 Uart_Printf("\nPress Enter key to exit : ");
|L1.116|
000074 e28f0088 ADR r0,|L1.260|
000078 ebfffffe BL _printf
;;;95 i = Uart_GetIntNum();
00007c ebfffffe BL Uart_GetIntNum
000080 e1a04000 MOV r4,r0
;;;96 if(i==-1) break; // return.
000084 e3740001 CMN r4,#1
000088 1a000000 BNE |L1.144|
00008c ea000007 B |L1.176|
;;;97 if(i>=0 && (i<((sizeof(func_iis_test)-1)/8)) ) // select and execute...
|L1.144|
000090 e3540000 CMP r4,#0
000094 ba000004 BLT |L1.172|
000098 e3540005 CMP r4,#5
00009c 2a000002 BCS |L1.172|
;;;98 ( (void (*)(void)) (func_iis_test[i][0]) )();
0000a0 e59f104c LDR r1,|L1.244|
0000a4 e7910184 LDR r0,[r1,r4,LSL #3]
0000a8 e12fff30 BLX r0
;;;99 }
|L1.172|
0000ac eaffffd7 B |L1.16|
;;;100
;;;101 Uart_Printf("\n====== IIS Controller Test program end ======\n");
|L1.176|
0000b0 e28f0068 ADR r0,|L1.288|
0000b4 ebfffffe BL _printf
;;;102 }
0000b8 e8bd8010 LDMFD sp!,{r4,pc}
|L1.188|
0000bc 3d3d3d0a DCB "\n==="
0000c0 203d3d3d DCB "=== "
0000c4 53494920 DCB " IIS"
0000c8 6e6f4320 DCB " Con"
0000cc 6c6f7274 DCB "trol"
0000d0 2072656c DCB "ler "
0000d4 74736554 DCB "Test"
0000d8 6f727020 DCB " pro"
0000dc 6d617267 DCB "gram"
0000e0 61747320 DCB " sta"
0000e4 3d207472 DCB "rt ="
0000e8 3d3d3d3d DCB "===="
0000ec 00000a3d DCB "=\n\0\0"
|L1.240|
0000f0 00000a0a DCB "\n\n\0\0"
|L1.244|
0000f4 00000000 DCD func_iis_test
|L1.248|
0000f8 3a643225 DCB "%2d:"
0000fc 00007325 DCB "%s\0\0"
|L1.256|
000100 0000000a DCB "\n\0\0\0"
|L1.260|
000104 6572500a DCB "\nPre"
000108 45207373 DCB "ss E"
00010c 7265746e DCB "nter"
000110 79656b20 DCB " key"
000114 206f7420 DCB " to "
000118 74697865 DCB "exit"
00011c 00203a20 DCB " : \0"
|L1.288|
000120 3d3d3d0a DCB "\n==="
000124 203d3d3d DCB "=== "
000128 20534949 DCB "IIS "
00012c 746e6f43 DCB "Cont"
000130 6c6c6f72 DCB "roll"
000134 54207265 DCB "er T"
000138 20747365 DCB "est "
00013c 676f7270 DCB "prog"
000140 206d6172 DCB "ram "
000144 20646e65 DCB "end "
000148 3d3d3d3d DCB "===="
00014c 000a3d3d DCB "==\n\0"
ENDP
_WrL3Data PROC
;;;591 void _WrL3Data(U8 data,int halt)
;;;592 {
000150 e52de004 STR lr,[sp,#-4]!
;;;593 S32 i,j;
;;;594
;;;595 if(halt)
000154 e3510000 CMP r1,#0
000158 0a00000a BEQ |L1.392|
;;;596 {
;;;597 rGPDAT = rGPDAT & ~(L3D | L3M | L3C) | L3C; //L3C=H(while tstp, L3 interface halt condition)
00015c e59fc4b4 LDR r12,|L1.1560|
000160 e59cc00c LDR r12,[r12,#0xc]
000164 e3cccbe0 BIC r12,r12,#0x38000
000168 e38ccb40 ORR r12,r12,#0x10000
00016c e59fe4a4 LDR lr,|L1.1560|
000170 e58ec00c STR r12,[lr,#0xc]
;;;598 for(j=0;j<4;j++); //tstp(L3) > 190ns
000174 e3a02000 MOV r2,#0
|L1.376|
000178 e3520004 CMP r2,#4
00017c aa000001 BGE |L1.392|
000180 e2822001 ADD r2,r2,#1
000184 eafffffb B |L1.376|
;;;599 }
;;;600
;;;601 rGPDAT = rGPDAT & ~(L3D | L3M | L3C) | (L3C | L3M); //L3M=H(in data transfer mode)
|L1.392|
000188 e59fc488 LDR r12,|L1.1560|
00018c e59cc00c LDR r12,[r12,#0xc]
000190 e3cccbe0 BIC r12,r12,#0x38000
000194 e38ccbc0 ORR r12,r12,#0x30000
000198 e59fe478 LDR lr,|L1.1560|
00019c e58ec00c STR r12,[lr,#0xc]
;;;602 for(j=0;j<4;j++); //tsu(L3)D > 190ns
0001a0 e3a02000 MOV r2,#0
|L1.420|
0001a4 e3520004 CMP r2,#4
0001a8 aa000001 BGE |L1.436|
0001ac e2822001 ADD r2,r2,#1
0001b0 eafffffb B |L1.420|
;;;603
;;;604 for(i=0;i<8;i++)
|L1.436|
0001b4 e3a03000 MOV r3,#0
|L1.440|
0001b8 e3530008 CMP r3,#8
0001bc aa00003a BGE |L1.684|
0001c0 ea000001 B |L1.460|
|L1.452|
0001c4 e2833001 ADD r3,r3,#1
0001c8 eafffffa B |L1.440|
;;;605 {
;;;606 if(data & 0x1) //if data's LSB is 'H'
|L1.460|
0001cc e3100001 TST r0,#1
0001d0 0a000017 BEQ |L1.564|
;;;607 {
;;;608 rGPDAT &= ~L3C; //L3C=L
0001d4 e59fc43c LDR r12,|L1.1560|
0001d8 e59cc00c LDR r12,[r12,#0xc]
0001dc e3cccb40 BIC r12,r12,#0x10000
0001e0 e59fe430 LDR lr,|L1.1560|
0001e4 e58ec00c STR r12,[lr,#0xc]
;;;609 rGPDAT |= L3D; //L3D=H
0001e8 e1a0c00e MOV r12,lr
0001ec e59cc00c LDR r12,[r12,#0xc]
0001f0 e38ccc80 ORR r12,r12,#0x8000
0001f4 e58ec00c STR r12,[lr,#0xc]
;;;610
;;;611 for(j=0;j<4;j++); //tcy(L3) > 500ns
0001f8 e3a02000 MOV r2,#0
|L1.508|
0001fc e3520004 CMP r2,#4
000200 aa000001 BGE |L1.524|
000204 e2822001 ADD r2,r2,#1
000208 eafffffb B |L1.508|
;;;612
;;;613 rGPDAT |= (L3C | L3D); //L3C=H,L3D=H
|L1.524|
00020c e59fc404 LDR r12,|L1.1560|
000210 e59cc00c LDR r12,[r12,#0xc]
000214 e38ccb60 ORR r12,r12,#0x18000
000218 e59fe3f8 LDR lr,|L1.1560|
00021c e58ec00c STR r12,[lr,#0xc]
;;;614
;;;615 for(j=0;j<4;j++); //tcy(L3) > 500ns
000220 e3a02000 MOV r2,#0
|L1.548|
000224 e3520004 CMP r2,#4
000228 aa00001d BGE |L1.676|
00022c e2822001 ADD r2,r2,#1
000230 eafffffb B |L1.548|
;;;616 }
;;;617 else //If data's LSB is 'L'
;;;618 {
;;;619 rGPDAT &= ~L3C; //L3C=L
|L1.564|
000234 e59fc3dc LDR r12,|L1.1560|
000238 e59cc00c LDR r12,[r12,#0xc]
00023c e3cccb40 BIC r12,r12,#0x10000
000240 e59fe3d0 LDR lr,|L1.1560|
000244 e58ec00c STR r12,[lr,#0xc]
;;;620 rGPDAT &= ~L3D; //L3D=L
000248 e1a0c00e MOV r12,lr
00024c e59cc00c LDR r12,[r12,#0xc]
000250 e3cccc80 BIC r12,r12,#0x8000
000254 e58ec00c STR r12,[lr,#0xc]
;;;621 for(j=0;j<4;j++); //tcy(L3) > 500ns
000258 e3a02000 MOV r2,#0
|L1.604|
00025c e3520004 CMP r2,#4
000260 aa000001 BGE |L1.620|
000264 e2822001 ADD r2,r2,#1
000268 eafffffb B |L1.604|
;;;622 rGPDAT |= L3C; //L3C=H
|L1.620|
00026c e59fc3a4 LDR r12,|L1.1560|
000270 e59cc00c LDR r12,[r12,#0xc]
000274 e38ccb40 ORR r12,r12,#0x10000
000278 e59fe398 LDR lr,|L1.1560|
00027c e58ec00c STR r12,[lr,#0xc]
;;;623 rGPDAT &= ~L3D; //L3D=L
000280 e1a0c00e MOV r12,lr
000284 e59cc00c LDR r12,[r12,#0xc]
000288 e3cccc80 BIC r12,r12,#0x8000
00028c e58ec00c STR r12,[lr,#0xc]
;;;624 for(j=0;j<4;j++); //tcy(L3) > 500ns
000290 e3a02000 MOV r2,#0
|L1.660|
000294 e3520004 CMP r2,#4
000298 aa000001 BGE |L1.676|
00029c e2822001 ADD r2,r2,#1
0002a0 eafffffb B |L1.660|
;;;625 }
;;;626 data >>= 1; //For check next bit
|L1.676|
0002a4 e1a000a0 MOV r0,r0,LSR #1
;;;627 }
0002a8 eaffffc5 B |L1.452|
;;;628 rGPDAT = rGPDAT & ~(L3D | L3M | L3C) | (L3C | L3M); //L3M=H,L3C=H
|L1.684|
0002ac e59fc364 LDR r12,|L1.1560|
0002b0 e59cc00c LDR r12,[r12,#0xc]
0002b4 e3cccbe0 BIC r12,r12,#0x38000
0002b8 e38ccbc0 ORR r12,r12,#0x30000
0002bc e59fe354 LDR lr,|L1.1560|
0002c0 e58ec00c STR r12,[lr,#0xc]
;;;629 }
0002c4 e49df004 LDR pc,[sp],#4
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -