📄 mstick.txt
字号:
; generated by ARM C Compiler, ADS1.2 [Build 842]
; commandline [-errors .\err\mstick.err -O0 -asm -g+ -cpu 5TEJ -fs -Wd -Ec -I.\include "-IC:\Program Files\ARM\ADSv1_2\INCLUDE"]
CODE32
AREA ||.text||, CODE, READONLY
PrintSubMessage PROC
;;;104 void PrintSubMessage(void)
;;;105 {
|L1.0|
000000 e92d4010 STMFD sp!,{r4,lr}
;;;106 int i;
;;;107
;;;108
;;;109 i=0;
000004 e3a04000 MOV r4,#0
;;;110 Uart_Printf("\n\n");
000008 e28f0058 ADR r0,|L1.104|
00000c ebfffffe BL _printf
;;;111 while(1)
000010 e1a00000 NOP
|L1.20|
000014 e1a00000 NOP
;;;112 { //display menu
;;;113 Uart_Printf("%2d:%s",i,mstick_func[i][1]);
000018 e59f004c LDR r0,|L1.108|
00001c e0800184 ADD r0,r0,r4,LSL #3
000020 e1a01004 MOV r1,r4
000024 e5902004 LDR r2,[r0,#4]
000028 e28f0040 ADR r0,|L1.112|
00002c ebfffffe BL _printf
;;;114 i++;
000030 e2844001 ADD r4,r4,#1
;;;115 if((int)(mstick_func[i][0])==0)
000034 e59f0030 LDR r0,|L1.108|
000038 e7900184 LDR r0,[r0,r4,LSL #3]
00003c e3500000 CMP r0,#0
000040 1a000002 BNE |L1.80|
;;;116 {
;;;117 Uart_Printf("\n");
000044 e28f002c ADR r0,|L1.120|
000048 ebfffffe BL _printf
;;;118 break;
00004c ea000004 B |L1.100|
;;;119 }
;;;120 if((i%4)==0) Uart_Printf("\n");
|L1.80|
000050 e3140003 TST r4,#3
000054 1a000001 BNE |L1.96|
000058 e28f0018 ADR r0,|L1.120|
00005c ebfffffe BL _printf
;;;121 }
|L1.96|
000060 eaffffeb B |L1.20|
;;;122 }
|L1.100|
000064 e8bd8010 LDMFD sp!,{r4,pc}
|L1.104|
000068 00000a0a DCB "\n\n\0\0"
|L1.108|
00006c 00000000 DCD mstick_func
|L1.112|
000070 3a643225 DCB "%2d:"
000074 00007325 DCB "%s\0\0"
|L1.120|
000078 0000000a DCB "\n\0\0\0"
ENDP
IrDA_Sub_Irq PROC
;;;887 void IrDA_Sub_Irq(void)
;;;888 {
00007c e92d4008 STMFD sp!,{r3,lr}
;;;889
;;;890 Uart_Printf("IrDA interrupt(int_status).\n");
000080 e28f0004 ADR r0,|L1.140|
000084 ebfffffe BL _printf
;;;891
;;;892 }
000088 e8bd8008 LDMFD sp!,{r3,pc}
|L1.140|
00008c 41447249 DCB "IrDA"
000090 746e6920 DCB " int"
000094 75727265 DCB "erru"
000098 69287470 DCB "pt(i"
00009c 735f746e DCB "nt_s"
0000a0 75746174 DCB "tatu"
0000a4 0a2e2973 DCB "s).\n"
0000a8 00000000 DCB "\0\0\0\0"
ENDP
Mstpc_Set_Command PROC
;;;939 int Mstpc_Set_Command(U8 Command)
;;;940 {
0000ac e59f1050 LDR r1,|L1.260|
;;;941
;;;942 rTP_CMD = SET_CMD | 1;
0000b0 e59f2050 LDR r2,|L1.264|
0000b4 e5821000 STR r1,[r2,#0]
;;;943 rDAT_FIFO = (0x00<<8) | (Command<<0);
0000b8 e1c210c1 BIC r1,r2,r1,ASR #1
0000bc e5810008 STR r0,[r1,#8]
;;;944 while(!TBE);
0000c0 e1a00000 NOP
|L1.196|
0000c4 e59f103c LDR r1,|L1.264|
0000c8 e5911004 LDR r1,[r1,#4]
0000cc e3110002 TST r1,#2
0000d0 0afffffb BEQ |L1.196|
;;;945
;;;946 while(!INT_P_END);
0000d4 e1a00000 NOP
|L1.216|
0000d8 e59f1028 LDR r1,|L1.264|
0000dc e591100c LDR r1,[r1,#0xc]
0000e0 e3110080 TST r1,#0x80
0000e4 0afffffb BEQ |L1.216|
;;;947 }
0000e8 e12fff1e BX lr
ENDP
Ms_Reset PROC
;;;521 void Ms_Reset(void)
;;;522 {
0000ec e92d4008 STMFD sp!,{r3,lr}
;;;523 Uart_Printf("Memory stick reset.\n");
0000f0 e28f0014 ADR r0,|L1.268|
0000f4 ebfffffe BL _printf
;;;524 Mstpc_Set_Command(MS_RESET);
0000f8 e3a0003c MOV r0,#0x3c
0000fc ebfffffe BL Mstpc_Set_Command
;;;525
;;;526 }
000100 e8bd8008 LDMFD sp!,{r3,pc}
|L1.260|
000104 0000e001 DCD 0x0000e001
|L1.264|
000108 46108000 DCD 0x46108000
|L1.268|
00010c 6f6d654d DCB "Memo"
000110 73207972 DCB "ry s"
000114 6b636974 DCB "tick"
000118 73657220 DCB " res"
00011c 0a2e7465 DCB "et.\n"
000120 00000000 DCB "\0\0\0\0"
ENDP
Stick_Ins_Irq PROC
;;;865 void Stick_Ins_Irq(void)
;;;866 {
000124 e92d4008 STMFD sp!,{r3,lr}
;;;867 if(rINS_CON & (1<<4) ) {
000128 e51f0028 LDR r0,|L1.264|
00012c e5900010 LDR r0,[r0,#0x10]
000130 e3100010 TST r0,#0x10
000134 0a000008 BEQ |L1.348|
;;;868 Uart_Printf("Stick is inserted.\n");
000138 e28f0034 ADR r0,|L1.372|
00013c ebfffffe BL _printf
;;;869 //if(Check_Wp()) Uart_Printf("Write-protect enabled.\n");
;;;870 // Must takes 1msec for internal initialization after power supply.
;;;871 Delay(10);
000140 e3a0000a MOV r0,#0xa
000144 ebfffffe BL Delay
;;;872 Ms_Reset();
000148 ebfffffe BL Ms_Reset
;;;873 Stick_Ins = 1;
00014c e3a00001 MOV r0,#1
000150 e59f1030 LDR r1,|L1.392|
000154 e5810000 STR r0,[r1,#0] ; Stick_Ins
000158 ea000004 B |L1.368|
;;;874 } else {
;;;875 Uart_Printf("Stick is extracted.\n");
|L1.348|
00015c e28f0028 ADR r0,|L1.396|
000160 ebfffffe BL _printf
;;;876 Stick_Ins = 0;
000164 e3a00000 MOV r0,#0
000168 e59f1018 LDR r1,|L1.392|
00016c e5810000 STR r0,[r1,#0] ; Stick_Ins
;;;877 }
;;;878
;;;879
;;;880 }
|L1.368|
000170 e8bd8008 LDMFD sp!,{r3,pc}
|L1.372|
000174 63697453 DCB "Stic"
000178 7369206b DCB "k is"
00017c 736e6920 DCB " ins"
000180 65747265 DCB "erte"
000184 000a2e64 DCB "d.\n\0"
|L1.392|
000188 00000000 DCD ||.bss$2||
|L1.396|
00018c 63697453 DCB "Stic"
000190 7369206b DCB "k is"
000194 74786520 DCB " ext"
000198 74636172 DCB "ract"
00019c 0a2e6465 DCB "ed.\n"
0001a0 00000000 DCB "\0\0\0\0"
ENDP
Mstick_Sub_Irq PROC
;;;834 void Mstick_Sub_Irq(void)
;;;835 {
0001a4 e92d4010 STMFD sp!,{r4,lr}
;;;836 int int_status;
;;;837
;;;838 int_status = rINTCTRL_STA;
0001a8 e51f00a8 LDR r0,|L1.264|
0001ac e590000c LDR r0,[r0,#0xc]
0001b0 e1a04000 MOV r4,r0
;;;839
;;;840
;;;841 //Uart_Printf("Mstick intr(%x).\n", int_status);
;;;842 if(int_status & (1<<7)) {
0001b4 e1a00000 NOP
;;;843 //Uart_Printf("[INT_INT_P_END]");
;;;844 }
;;;845 if(int_status & (1<<6)) {
0001b8 e1a00000 NOP
;;;846 //Uart_Printf("\nINT_INT_SIF(receive).\n");
;;;847 }
;;;848 if (int_status & (1<<5)) {
0001bc e1a00000 NOP
;;;849 //Tr_Irq();
;;;850 }
;;;851 if(int_status & (1<<4)) {
0001c0 e3140010 TST r4,#0x10
0001c4 0a000000 BEQ |L1.460|
;;;852 Stick_Ins_Irq();
0001c8 ebfffffe BL Stick_Ins_Irq
;;;853 }
;;;854 if(int_status & (1<<1)) {
|L1.460|
0001cc e3140002 TST r4,#2
0001d0 0a000001 BEQ |L1.476|
;;;855 Uart_Printf("\nINT_CRCerror.\n");
0001d4 e28f0014 ADR r0,|L1.496|
0001d8 ebfffffe BL _printf
;;;856 }
;;;857 if(int_status & (1<<0)) {
|L1.476|
0001dc e3140001 TST r4,#1
0001e0 0a000001 BEQ |L1.492|
;;;858 Uart_Printf("\nINT_Timeout.\n");
0001e4 e28f0014 ADR r0,|L1.512|
0001e8 ebfffffe BL _printf
;;;859 }
;;;860
;;;861
;;;862 }
|L1.492|
0001ec e8bd8010 LDMFD sp!,{r4,pc}
|L1.496|
0001f0 544e490a DCB "\nINT"
0001f4 4352435f DCB "_CRC"
0001f8 6f727265 DCB "erro"
0001fc 000a2e72 DCB "r.\n\0"
|L1.512|
000200 544e490a DCB "\nINT"
000204 6d69545f DCB "_Tim"
000208 74756f65 DCB "eout"
00020c 00000a2e DCB ".\n\0\0"
ENDP
IrDA_Mstick_Irq PROC
;;;807 void __irq IrDA_Mstick_Irq(void)
;;;808 {
000210 e92d501f STMFD sp!,{r0-r4,r12,lr}
000214 e24dd004 SUB sp,sp,#4
;;;809 int int_state;
;;;810
;;;811 int_state = rSUBSRCPND;
000218 e59f00e8 LDR r0,|L1.776|
00021c e5900018 LDR r0,[r0,#0x18]
000220 e1a04000 MOV r4,r0
;;;812 //Uart_Printf("IrDA_Mstick_Irq occurred...\n");
;;;813 if(int_state & BIT_SUB_MSTICK) {
000224 e3140080 TST r4,#0x80
000228 0a000016 BEQ |L1.648|
;;;814 rINTSUBMSK |= BIT_SUB_MSTICK;
00022c e59f00d4 LDR r0,|L1.776|
000230 e590001c LDR r0,[r0,#0x1c]
000234 e3800080 ORR r0,r0,#0x80
000238 e59f10c8 LDR r1,|L1.776|
00023c e581001c STR r0,[r1,#0x1c]
;;;815 rSUBSRCPND = BIT_SUB_MSTICK;
000240 e3a00080 MOV r0,#0x80
000244 e1c11000 BIC r1,r1,r0
000248 e5810018 STR r0,[r1,#0x18]
;;;816 ClearPending(BIT_IrDA_MSTICK);
00024c e3a00540 MOV r0,#0x10000000
000250 e1c11000 BIC r1,r1,r0
000254 e5810000 STR r0,[r1,#0]
000258 e1c10000 BIC r0,r1,r0
00025c e5900010 LDR r0,[r0,#0x10]
000260 e5810010 STR r0,[r1,#0x10]
000264 e1a00001 MOV r0,r1
000268 e5900010 LDR r0,[r0,#0x10]
;;;817 Mstick_Sub_Irq();
00026c ebfffffe BL Mstick_Sub_Irq
;;;818 rINTSUBMSK &= ~BIT_SUB_MSTICK;
000270 e59f0090 LDR r0,|L1.776|
000274 e590001c LDR r0,[r0,#0x1c]
000278 e3c00080 BIC r0,r0,#0x80
00027c e59f1084 LDR r1,|L1.776|
000280 e581001c STR r0,[r1,#0x1c]
000284 ea00001c B |L1.764|
;;;819 } else if (int_state & BIT_SUB_IrDA) {
|L1.648|
000288 e3140040 TST r4,#0x40
00028c 0a000018 BEQ |L1.756|
;;;820 Uart_Printf("\n\n\nNot allowed interrupt\n\n");
000290 e28f0074 ADR r0,|L1.780|
000294 ebfffffe BL _printf
;;;821 rINTSUBMSK |= BIT_SUB_IrDA;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -