📄 am29f800.txt
字号:
AM29F800_EraseSecotor_Auto PROC
;;;264 int AM29F800_EraseSecotor_Auto(void)
;;;265 {
0009e4 e92d4038 STMFD sp!,{r3-r5,lr}
;;;266 int i, count;
;;;267
;;;268 if(downloadProgramSize/0x10000<1)
0009e8 e51f05f8 LDR r0,|L1.1016|
0009ec e5900000 LDR r0,[r0,#0] ; downloadProgramSize
0009f0 e3a01001 MOV r1,#1
0009f4 e1510820 CMP r1,r0,LSR #16
0009f8 9a00003b BLS |L1.2796|
;;;269 {
;;;270 if(downloadProgramSize<0x4000)
0009fc e51f060c LDR r0,|L1.1016|
000a00 e5900000 LDR r0,[r0,#0] ; downloadProgramSize
000a04 e3500c40 CMP r0,#0x4000
000a08 2a00000a BCS |L1.2616|
;;;271 {
;;;272 AM29F800_EraseSector(0x0);
000a0c e3a00000 MOV r0,#0
000a10 ebfffffe BL AM29F800_EraseSector
;;;273 if(!BlankCheck(0x0,0x4000))
000a14 e3a01c40 MOV r1,#0x4000
000a18 e3a00000 MOV r0,#0
000a1c ebfffffe BL BlankCheck
000a20 e3500000 CMP r0,#0
000a24 1a000071 BNE |L1.3056|
;;;274 {
;;;275 Uart_Printf("Blank Check Error!!!\n");
000a28 e24f0f4d ADR r0,|L1.2300|
000a2c ebfffffe BL _printf
;;;276 return 0;
000a30 e3a00000 MOV r0,#0
;;;277 }
;;;278 }
;;;279 else if(downloadProgramSize<0x6000)
;;;280 {
;;;281 AM29F800_EraseSector(0x4000);
;;;282 if(!BlankCheck(0x4000,0x2000))
;;;283 {
;;;284 Uart_Printf("Blank Check Error!!!\n");
;;;285 return 0;
;;;286 }
;;;287 }
;;;288 else if(downloadProgramSize<0x8000)
;;;289 {
;;;290 AM29F800_EraseSector(0x6000);
;;;291 if(!BlankCheck(0x6000,0x2000))
;;;292 {
;;;293 Uart_Printf("Blank Check Error!!!\n");
;;;294 return 0;
;;;295 }
;;;296 }
;;;297 else if(downloadProgramSize<0x10000)
;;;298 {
;;;299 AM29F800_EraseSector(0x8000);
;;;300 if(!BlankCheck(0x8000,0x8000))
;;;301 {
;;;302 Uart_Printf("Blank Check Error!!!\n");
;;;303 return 0;
;;;304 }
;;;305 }
;;;306 }
;;;307 else
;;;308 {
;;;309 AM29F800_EraseSector(0x0);
;;;310 if(!BlankCheck(0x0,0x4000))
;;;311 {
;;;312 Uart_Printf("Blank Check Error!!!\n");
;;;313 return 0;
;;;314 }
;;;315 AM29F800_EraseSector(0x4000);
;;;316 if(!BlankCheck(0x4000,0x2000))
;;;317 {
;;;318 Uart_Printf("Blank Check Error!!!\n");
;;;319 return 0;
;;;320 }
;;;321 AM29F800_EraseSector(0x6000);
;;;322 if(!BlankCheck(0x6000,0x2000))
;;;323 {
;;;324 Uart_Printf("Blank Check Error!!!\n");
;;;325 return 0;
;;;326 }
;;;327 AM29F800_EraseSector(0x8000);
;;;328 if(!BlankCheck(0x8000,0x8000))
;;;329 {
;;;330 Uart_Printf("Blank Check Error!!!\n");
;;;331 return 0;
;;;332 }
;;;333 count = downloadProgramSize/0x10000;
;;;334 for(i=1; i<=count; i++)
;;;335 {
;;;336 AM29F800_EraseSector(i*0x10000);
;;;337 if(!BlankCheck(i*0x10000,0x10000))
;;;338 {
;;;339 Uart_Printf("Blank Check Error!!!\n");
;;;340 return 0;
;;;341 }
;;;342 }
;;;343 }
;;;344
;;;345 return 1;
;;;346 }
|L1.2612|
000a34 e8bd8038 LDMFD sp!,{r3-r5,pc}
|L1.2616|
000a38 e51f0648 LDR r0,|L1.1016| ;279
000a3c e5900000 LDR r0,[r0,#0] ;279 ; downloadProgramSize
000a40 e3500c60 CMP r0,#0x6000 ;279
000a44 2a00000a BCS |L1.2676| ;279
000a48 e3a00c40 MOV r0,#0x4000 ;281
000a4c ebfffffe BL AM29F800_EraseSector ;281
000a50 e3a01d80 MOV r1,#0x2000 ;282
000a54 e3a00c40 MOV r0,#0x4000 ;282
000a58 ebfffffe BL BlankCheck ;282
000a5c e3500000 CMP r0,#0 ;282
000a60 1a000062 BNE |L1.3056| ;282
000a64 e24f0f5c ADR r0,|L1.2300| ;284
000a68 ebfffffe BL _printf ;284
000a6c e3a00000 MOV r0,#0 ;285
000a70 eaffffef B |L1.2612| ;285
|L1.2676|
000a74 e51f0684 LDR r0,|L1.1016| ;288
000a78 e5900000 LDR r0,[r0,#0] ;288 ; downloadProgramSize
000a7c e3500c80 CMP r0,#0x8000 ;288
000a80 2a00000a BCS |L1.2736| ;288
000a84 e3a00c60 MOV r0,#0x6000 ;290
000a88 ebfffffe BL AM29F800_EraseSector ;290
000a8c e3a01d80 MOV r1,#0x2000 ;291
000a90 e3a00c60 MOV r0,#0x6000 ;291
000a94 ebfffffe BL BlankCheck ;291
000a98 e3500000 CMP r0,#0 ;291
000a9c 1a000053 BNE |L1.3056| ;291
000aa0 e24f0f6b ADR r0,|L1.2300| ;293
000aa4 ebfffffe BL _printf ;293
000aa8 e3a00000 MOV r0,#0 ;294
000aac eaffffe0 B |L1.2612| ;294
|L1.2736|
000ab0 e51f06c0 LDR r0,|L1.1016| ;297
000ab4 e5900000 LDR r0,[r0,#0] ;297 ; downloadProgramSize
000ab8 e3500b40 CMP r0,#0x10000 ;297
000abc 2a00004b BCS |L1.3056| ;297
000ac0 e3a00c80 MOV r0,#0x8000 ;299
000ac4 ebfffffe BL AM29F800_EraseSector ;299
000ac8 e3a01c80 MOV r1,#0x8000 ;300
000acc e3a00c80 MOV r0,#0x8000 ;300
000ad0 ebfffffe BL BlankCheck ;300
000ad4 e3500000 CMP r0,#0 ;300
000ad8 1a000044 BNE |L1.3056| ;300
000adc e24f0f7a ADR r0,|L1.2300| ;302
000ae0 ebfffffe BL _printf ;302
000ae4 e3a00000 MOV r0,#0 ;303
000ae8 eaffffd1 B |L1.2612| ;303
|L1.2796|
000aec e3a00000 MOV r0,#0 ;309
000af0 ebfffffe BL AM29F800_EraseSector ;309
000af4 e3a01c40 MOV r1,#0x4000 ;310
000af8 e3a00000 MOV r0,#0 ;310
000afc ebfffffe BL BlankCheck ;310
000b00 e3500000 CMP r0,#0 ;310
000b04 1a000003 BNE |L1.2840| ;310
000b08 e24f0f85 ADR r0,|L1.2300| ;312
000b0c ebfffffe BL _printf ;312
000b10 e3a00000 MOV r0,#0 ;313
000b14 eaffffc6 B |L1.2612| ;313
|L1.2840|
000b18 e3a00c40 MOV r0,#0x4000 ;315
000b1c ebfffffe BL AM29F800_EraseSector ;315
000b20 e3a01d80 MOV r1,#0x2000 ;316
000b24 e3a00c40 MOV r0,#0x4000 ;316
000b28 ebfffffe BL BlankCheck ;316
000b2c e3500000 CMP r0,#0 ;316
000b30 1a000003 BNE |L1.2884| ;316
000b34 e24f0f90 ADR r0,|L1.2300| ;318
000b38 ebfffffe BL _printf ;318
000b3c e3a00000 MOV r0,#0 ;319
000b40 eaffffbb B |L1.2612| ;319
|L1.2884|
000b44 e3a00c60 MOV r0,#0x6000 ;321
000b48 ebfffffe BL AM29F800_EraseSector ;321
000b4c e3a01d80 MOV r1,#0x2000 ;322
000b50 e3a00c60 MOV r0,#0x6000 ;322
000b54 ebfffffe BL BlankCheck ;322
000b58 e3500000 CMP r0,#0 ;322
000b5c 1a000003 BNE |L1.2928| ;322
000b60 e24f0f9b ADR r0,|L1.2300| ;324
000b64 ebfffffe BL _printf ;324
000b68 e3a00000 MOV r0,#0 ;325
000b6c eaffffb0 B |L1.2612| ;325
|L1.2928|
000b70 e3a00c80 MOV r0,#0x8000 ;327
000b74 ebfffffe BL AM29F800_EraseSector ;327
000b78 e3a01c80 MOV r1,#0x8000 ;328
000b7c e3a00c80 MOV r0,#0x8000 ;328
000b80 ebfffffe BL BlankCheck ;328
000b84 e3500000 CMP r0,#0 ;328
000b88 1a000003 BNE |L1.2972| ;328
000b8c e24f0fa6 ADR r0,|L1.2300| ;330
000b90 ebfffffe BL _printf ;330
000b94 e3a00000 MOV r0,#0 ;331
000b98 eaffffa5 B |L1.2612| ;331
|L1.2972|
000b9c e51f07ac LDR r0,|L1.1016| ;333
000ba0 e5900000 LDR r0,[r0,#0] ;333 ; downloadProgramSize
000ba4 e1a05820 MOV r5,r0,LSR #16 ;333
000ba8 e3a04001 MOV r4,#1 ;334
|L1.2988|
000bac e1540005 CMP r4,r5 ;334
000bb0 ca00000e BGT |L1.3056| ;334
000bb4 ea000001 B |L1.3008| ;334
|L1.3000|
000bb8 e2844001 ADD r4,r4,#1 ;334
000bbc eafffffa B |L1.2988| ;334
|L1.3008|
000bc0 e1a00804 MOV r0,r4,LSL #16 ;336
000bc4 ebfffffe BL AM29F800_EraseSector ;336
000bc8 e1a00804 MOV r0,r4,LSL #16 ;337
000bcc e3a01b40 MOV r1,#0x10000 ;337
000bd0 ebfffffe BL BlankCheck ;337
000bd4 e3500000 CMP r0,#0 ;337
000bd8 1a000003 BNE |L1.3052| ;337
000bdc e24f0fba ADR r0,|L1.2300| ;339
000be0 ebfffffe BL _printf ;339
000be4 e3a00000 MOV r0,#0 ;340
000be8 eaffff91 B |L1.2612| ;340
|L1.3052|
000bec eafffff1 B |L1.3000| ;342
|L1.3056|
000bf0 e3a00001 MOV r0,#1 ;345
000bf4 eaffff8e B |L1.2612| ;345
ENDP
AREA ||.constdata||, DATA, READONLY, ALIGN=2
||.constdata$1||
DCB 0x20,0x20,0x20,0x20
DCB 0x30,0x78,0x30,0x2c
DCB 0x20,0x30,0x78,0x34
DCB 0x30,0x30,0x30,0x2c
DCB 0x20,0x30,0x78,0x36
DCB 0x30,0x30,0x30,0x2c
DCB 0x20,0x30,0x78,0x38
DCB 0x30,0x30,0x30,0x2c
DCB 0x30,0x78,0x31,0x30
DCB 0x30,0x30,0x30,0x2c
DCB 0x30,0x78,0x32,0x30
DCB 0x30,0x30,0x30,0x2c
DCB 0x30,0x78,0x33,0x30
DCB 0x30,0x30,0x30,0x2c
DCB 0x30,0x78,0x34,0x30
DCB 0x30,0x30,0x30,0x2c
DCB 0x0a,0x00
DCB 0x00,0x00
DCB 0x30,0x78,0x35,0x30
DCB 0x30,0x30,0x30,0x2c
DCB 0x30,0x78,0x36,0x30
DCB 0x30,0x30,0x30,0x2c
DCB 0x30,0x78,0x37,0x30
DCB 0x30,0x30,0x30,0x2c
DCB 0x30,0x78,0x38,0x30
DCB 0x30,0x30,0x30,0x2c
DCB 0x30,0x78,0x39,0x30
DCB 0x30,0x30,0x30,0x2c
DCB 0x30,0x78,0x61,0x30
DCB 0x30,0x30,0x30,0x2c
DCB 0x30,0x78,0x62,0x30
DCB 0x30,0x30,0x30,0x2c
DCB 0x30,0x78,0x63,0x30
DCB 0x30,0x30,0x30,0x2c
DCB 0x0a,0x00
DCB 0x00,0x00
DCB 0x44,0x6f,0x20,0x79
DCB 0x6f,0x75,0x20,0x77
DCB 0x61,0x6e,0x74,0x20
DCB 0x61,0x6e,0x6f,0x74
DCB 0x68,0x65,0x72,0x20
DCB 0x70,0x72,0x6f,0x67
DCB 0x72,0x61,0x6d,0x6d
DCB 0x69,0x6e,0x67,0x20
DCB 0x77,0x69,0x74,0x68
DCB 0x6f,0x75,0x74,0x20
DCB 0x61,0x64,0x64,0x69
DCB 0x74,0x69,0x6f,0x6e
DCB 0x61,0x6c,0x20,0x64
DCB 0x6f,0x77,0x6e,0x6c
DCB 0x6f,0x61,0x64,0x3f
DCB 0x20,0x5b,0x79,0x2f
DCB 0x6e,0x5d,0x0a,0x00
AREA ||.bss||, NOINIT, ALIGN=2
||nextTargetAddr@InputTargetAddr_0||
||.bss$2||
% 4
||nextSrcOffset@InputTargetAddr_1||
% 4
srcAddress
% 4
srcOffset
% 4
targetAddress
% 4
targetSize
% 4
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -