📄 main.lst
字号:
\ 000000D8 0460 STR R4,[R0, #0]
\ 000000DA 4460 STR R4,[R0, #+4]
\ 000000DC 8460 STR R4,[R0, #+8]
103 char i;
104
105 TRACE_INFO( "file <FileName> <Si");
\ 000000DE 6349 LDR R1,??menu_1+0x34 ;; `?<Constant "wodemima">` + 12
\ 000000E0 281C MOV R0,R5
\ 000000E2 ........ _BLF fprintf,??fprintf??rT
106 TRACE_INFO( "ze>\n\rEnter name: ");
\ 000000E6 6249 LDR R1,??menu_1+0x38 ;; `?<Constant "wodemima">` + 160
\ 000000E8 281C MOV R0,R5
\ 000000EA ........ _BLF fprintf,??fprintf??rT
107 AT91F_DBGU_scanf(fileName);
\ 000000EE 02A8 ADD R0,SP,#+8
\ 000000F0 ........ _BLF AT91F_DBGU_scanf,??AT91F_DBGU_scanf??rT
108 TRACE_INFO( "\n\r");
\ 000000F4 311C MOV R1,R6
\ 000000F6 281C MOV R0,R5
\ 000000F8 ........ _BLF fprintf,??fprintf??rT
109
110 TRACE_INFO( "File size: ");
\ 000000FC 5D49 LDR R1,??menu_1+0x3C ;; `?<Constant "wodemima">` + 180
\ 000000FE 281C MOV R0,R5
\ 00000100 ........ _BLF fprintf,??fprintf??rT
111 AT91F_DBGU_scanf(Size );
\ 00000104 06A8 ADD R0,SP,#+24
\ 00000106 ........ _BLF AT91F_DBGU_scanf,??AT91F_DBGU_scanf??rT
112 TRACE_INFO( "\n\r.");
\ 0000010A 5BA1 ADR R1,??menu_1+0x40 ;; "\n\r."
\ 0000010C 281C MOV R0,R5
\ 0000010E ........ _BLF fprintf,??fprintf??rT
113
114 i=0;
\ 00000112 201C MOV R0,R4
\ 00000114 0A22 MOV R2,#+10
\ 00000116 03E0 B ??menu_14
115 while( (Size[i] != '\0') && (i != sizeof(Size)) )
116 {
117 if( (Size[i]>='0') && (Size[i]<='9') )
118 {
119 ulSize *=10;
120 ulSize += ((unsigned int) Size[i] - '0'); // convert ASCII to INT
\ ??menu_15:
\ 00000118 5743 MUL R7,R2
\ 0000011A CF19 ADD R7,R1,R7
\ 0000011C 303F SUB R7,#+48
121 i++;
\ 0000011E 401C ADD R0,R0,#+1
122 }
\ ??menu_14:
\ 00000120 06A9 ADD R1,SP,#+24
\ 00000122 095C LDRB R1,[R1, R0]
\ 00000124 0029 CMP R1,#+0
\ 00000126 05D0 BEQ ??menu_16
\ 00000128 0A28 CMP R0,#+10
\ 0000012A 03D0 BEQ ??menu_16
\ 0000012C 3029 CMP R1,#+48
\ 0000012E 01D3 BCC ??menu_16
\ 00000130 3A29 CMP R1,#+58
\ 00000132 F1D3 BCC ??menu_15
123 else
124 {
125 break;
126 }
127 }
128
129 // Fill buffer
130 for (count=0; count < sizeof(FileBuff); count++)
\ ??menu_16:
\ 00000134 0020 MOV R0,#+0
\ 00000136 211C MOV R1,R4
131 {
132 FileBuff[count] = (unsigned char)count;
\ ??menu_17:
\ 00000138 09AA ADD R2,SP,#+36
\ 0000013A 5154 STRB R1,[R2, R1]
133 }
\ 0000013C 491C ADD R1,R1,#+1
\ 0000013E 8022 MOV R2,#+128
\ 00000140 5200 LSL R2,R2,#+1 ;; #+256
\ 00000142 9142 CMP R1,R2
\ 00000144 F8D3 BCC ??menu_17
134
135 // Write parts of file
136 for (count=0;count<ulSize / sizeof(FileBuff); count++)
\ 00000146 0190 STR R0,[SP, #+4]
\ 00000148 8026 MOV R6,#+128
\ 0000014A 3606 LSL R6,R6,#+24 ;; #-2147483648
\ 0000014C 0CE0 B ??menu_18
137 {
138 status = BFSA_write( fileName, (char*)FileBuff, sizeof(FileBuff), count );
\ ??menu_19:
\ 0000014E 0306 LSL R3,R0,#+24
\ 00000150 1B0E LSR R3,R3,#+24
\ 00000152 F20D LSR R2,R6,#+23
\ 00000154 09A9 ADD R1,SP,#+36
\ 00000156 02A8 ADD R0,SP,#+8
\ 00000158 ........ _BLF BFSA_write,??BFSA_write??rT
\ 0000015C 041C MOV R4,R0
139 if( BFSA_FAILURE(status) )
\ 0000015E 3042 TST R0,R6
\ 00000160 60D1 BNE ??menu_11
140 {
141 goto FAILURE;
142 }
143 }
\ 00000162 0198 LDR R0,[SP, #+4]
\ 00000164 401C ADD R0,R0,#+1
\ 00000166 0190 STR R0,[SP, #+4]
\ ??menu_18:
\ 00000168 0198 LDR R0,[SP, #+4]
\ 0000016A 390A LSR R1,R7,#+8
\ 0000016C 8842 CMP R0,R1
\ 0000016E EED3 BCC ??menu_19
144
145 // Write end of file
146 if (ulSize % sizeof( FileBuff) )
\ 00000170 3806 LSL R0,R7,#+24
\ 00000172 A6D0 BEQ ??menu_12
147 {
148 status = BFSA_write( fileName, (char*)FileBuff, ulSize % sizeof(FileBuff), ulSize / sizeof(FileBuff) );
\ 00000174 3B0A LSR R3,R7,#+8
\ 00000176 1B06 LSL R3,R3,#+24
\ 00000178 1B0E LSR R3,R3,#+24
\ 0000017A 3A06 LSL R2,R7,#+24
\ 0000017C 120E LSR R2,R2,#+24
\ 0000017E 09A9 ADD R1,SP,#+36
\ 00000180 02A8 ADD R0,SP,#+8
\ 00000182 ........ _BLF BFSA_write,??BFSA_write??rT
\ 00000186 041C MOV R4,R0
149 if( BFSA_FAILURE(status) )
\ 00000188 3042 TST R0,R6
\ 0000018A 4BD1 BNE ??menu_11
150 {
151 goto FAILURE;
152 }
153 }
154 status = BFSA_SUCCESS;
155 TRACE_INFO( "OK\n\r");
\ 0000018C 99E7 B ??menu_12
156 }
157 break;
158
159 case '4': // dir
160 {
161 status = BFSA_dir();
\ ??menu_5:
\ 0000018E ........ _BLF BFSA_dir,??BFSA_dir??rT
\ ??menu_20:
\ 00000192 041C MOV R4,R0
162 if( BFSA_SUCCESS != status )
\ 00000194 46D1 BNE ??menu_11
163 {
164 goto FAILURE;
165 }
166 TRACE_INFO( "OK\n\r");
\ 00000196 0099 LDR R1,[SP, #+0]
\ 00000198 281C MOV R0,R5
\ 0000019A ........ _BLF fprintf,??fprintf??rT
\ 0000019E 48E0 B ??menu_13
167 }
168 break;
169
170 case '5': // cd
171 {
172 char dirName[10]="";
\ ??menu_6:
\ 000001A0 02A8 ADD R0,SP,#+8
\ 000001A2 0460 STR R4,[R0, #0]
\ 000001A4 4460 STR R4,[R0, #+4]
\ 000001A6 8460 STR R4,[R0, #+8]
173
174 TRACE_INFO( "cd <DirName> \n\r");
\ 000001A8 3449 LDR R1,??menu_1+0x44 ;; `?<Constant "wodemima">` + 192
\ 000001AA 281C MOV R0,R5
\ 000001AC ........ _BLF fprintf,??fprintf??rT
175 TRACE_INFO( "Enter name: ");
\ 000001B0 391C MOV R1,R7
\ 000001B2 281C MOV R0,R5
\ 000001B4 ........ _BLF fprintf,??fprintf??rT
176 AT91F_DBGU_scanf(dirName);
\ 000001B8 02A8 ADD R0,SP,#+8
\ 000001BA ........ _BLF AT91F_DBGU_scanf,??AT91F_DBGU_scanf??rT
177 TRACE_INFO( "\n\r");
\ 000001BE 311C MOV R1,R6
\ 000001C0 281C MOV R0,R5
\ 000001C2 ........ _BLF fprintf,??fprintf??rT
178
179 status = BFSA_cd(dirName);
\ 000001C6 02A8 ADD R0,SP,#+8
\ 000001C8 ........ _BLF BFSA_cd,??BFSA_cd??rT
\ 000001CC 041C MOV R4,R0
180 if( BFSA_SUCCESS != status )
\ 000001CE 29D1 BNE ??menu_11
181 {
182 goto FAILURE;
183 }
184 TRACE_INFO( "OK\n\r");
\ 000001D0 77E7 B ??menu_12
185 }
186 break;
187
188 case '6': // delete
189 {
190 char fileName[10]="";
\ ??menu_7:
\ 000001D2 02A8 ADD R0,SP,#+8
\ 000001D4 0460 STR R4,[R0, #0]
\ 000001D6 4460 STR R4,[R0, #+4]
\ 000001D8 8460 STR R4,[R0, #+8]
191
192 TRACE_INFO( "delete <FileName>");
\ 000001DA 2949 LDR R1,??menu_1+0x48 ;; `?<Constant "wodemima">` + 208
\ 000001DC 281C MOV R0,R5
\ 000001DE ........ _BLF fprintf,??fprintf??rT
193 TRACE_INFO( "\n\r Enter name: ");
\ 000001E2 2849 LDR R1,??menu_1+0x4C ;; `?<Constant "wodemima">` + 228
\ 000001E4 281C MOV R0,R5
\ 000001E6 ........ _BLF fprintf,??fprintf??rT
194 AT91F_DBGU_scanf(fileName);
\ 000001EA 02A8 ADD R0,SP,#+8
\ 000001EC ........ _BLF AT91F_DBGU_scanf,??AT91F_DBGU_scanf??rT
195 TRACE_INFO( "\n\r");
\ 000001F0 311C MOV R1,R6
\ 000001F2 281C MOV R0,R5
\ 000001F4 ........ _BLF fprintf,??fprintf??rT
196
197 status = BFSA_delete(fileName);
\ 000001F8 02A8 ADD R0,SP,#+8
\ 000001FA ........ _BLF BFSA_delete,??BFSA_delete??rT
\ 000001FE C8E7 B ??menu_20
198 if( BFSA_SUCCESS != status )
199 {
200 goto FAILURE;
201 }
202 TRACE_INFO( "OK\n\r");
203 }
204 break;
205
206 case '7': // Init
207 {
208 status = BFSA_init();
\ ??menu_8:
\ 00000200 ........ _BLF BFSA_init,??BFSA_init??rT
\ 00000204 041C MOV R4,R0
209 if( BFSA_SUCCESS != status )
\ 00000206 0DD1 BNE ??menu_11
210 {
211 goto FAILURE;
212 }
213 TRACE_INFO( "OK\n\r");
\ 00000208 5BE7 B ??menu_12
214 }
215 break;
216
217 case 'F': // Format
218 {
219 status = BFSA_format();
\ ??menu_9:
\ 0000020A ........ _BLF BFSA_format,??BFSA_format??rT
\ 0000020E 041C MOV R4,R0
220 if( BFSA_SUCCESS != status )
\ 00000210 08D1 BNE ??menu_11
221 {
222 goto FAILURE;
223 }
224 status = BFSA_init();
\ 00000212 ........ _BLF BFSA_init,??BFSA_init??rT
\ 00000216 041C MOV R4,R0
225 if( BFSA_SUCCESS != status )
\ 00000218 04D1 BNE ??menu_11
226 {
227 goto FAILURE;
228 }
229 TRACE_INFO( "OK\n\r");
\ 0000021A 0099 LDR R1,[SP, #+0]
\ 0000021C 281C MOV R0,R5
\ 0000021E ........ _BLF fprintf,??fprintf??rT
\ 00000222 06E0 B ??menu_13
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -