📄 am29f800.txt
字号:
;;;107 {
0002c0 e92d4008 STMFD sp!,{r3,lr}
;;;108 static U32 nextTargetAddr=0,nextSrcOffset=0;
;;;109 Uart_Printf("[AM29F800 Writing Program]\n");
0002c4 e28f00d0 ADR r0,|L1.924|
0002c8 ebfffffe BL _printf
;;;110
;;;111 Uart_Printf("\nCAUTION: Check AM29LV800 BYTE#(47) pin is connected to VDD.\n");
0002cc e28f00e4 ADR r0,|L1.952|
0002d0 ebfffffe BL _printf
;;;112
;;;113 Uart_Printf("\nSource size:0h~%xh\n",downloadProgramSize);
0002d4 e59f011c LDR r0,|L1.1016|
0002d8 e5901000 LDR r1,[r0,#0] ; downloadProgramSize
0002dc e28f0f46 ADR r0,|L1.1020|
0002e0 ebfffffe BL _printf
;;;114 Uart_Printf("\nAvailable Target/Source Address:\n");
0002e4 e28f0f4a ADR r0,|L1.1044|
0002e8 ebfffffe BL _printf
;;;115 Uart_Printf(" 0x0, 0x4000, 0x6000, 0x8000,0x10000,0x20000,0x30000,0x40000,\n");
0002ec e59f0144 LDR r0,|L1.1080|
0002f0 ebfffffe BL _printf
;;;116 Uart_Printf("0x50000,0x60000,0x70000,0x80000,0x90000,0xa0000,0xb0000,0xc0000,\n");
0002f4 e59f0140 LDR r0,|L1.1084|
0002f8 ebfffffe BL _printf
;;;117 Uart_Printf("0xd0000,0xe0000,0xf0000\n");
0002fc e28f0f4f ADR r0,|L1.1088|
000300 ebfffffe BL _printf
;;;118
;;;119 Uart_Printf("Input source offset[0x%x]:",nextSrcOffset);
000304 e59f0150 LDR r0,|L1.1116|
000308 e5901000 LDR r1,[r0,#0] ; nextSrcOffset@InputTargetAddr_1
00030c e28f0f53 ADR r0,|L1.1120|
000310 ebfffffe BL _printf
;;;120 srcOffset=Uart_GetIntNum();
000314 ebfffffe BL Uart_GetIntNum
000318 e59f115c LDR r1,|L1.1148|
00031c e5810000 STR r0,[r1,#0] ; srcOffset
;;;121 if(srcOffset==(U32)(-1))srcOffset=nextSrcOffset;
000320 e59f0154 LDR r0,|L1.1148|
000324 e5900000 LDR r0,[r0,#0] ; srcOffset
000328 e3700001 CMN r0,#1
00032c 1a000003 BNE |L1.832|
000330 e59f0124 LDR r0,|L1.1116|
000334 e5900000 LDR r0,[r0,#0] ; nextSrcOffset@InputTargetAddr_1
000338 e59f113c LDR r1,|L1.1148|
00033c e5810000 STR r0,[r1,#0] ; srcOffset
;;;122
;;;123 Uart_Printf("Input target address among above addresses[0x%x]:",nextTargetAddr);
|L1.832|
000340 e59f0138 LDR r0,|L1.1152|
000344 e5901000 LDR r1,[r0,#0] ; nextTargetAddr@InputTargetAddr_0
000348 e28f0f4d ADR r0,|L1.1156|
00034c ebfffffe BL _printf
;;;124 targetAddress=Uart_GetIntNum();
000350 ebfffffe BL Uart_GetIntNum
000354 e59f115c LDR r1,|L1.1208|
000358 e5810000 STR r0,[r1,#0] ; targetAddress
;;;125 if(targetAddress==(U32)(-1))targetAddress=nextTargetAddr;
00035c e59f0154 LDR r0,|L1.1208|
000360 e5900000 LDR r0,[r0,#0] ; targetAddress
000364 e3700001 CMN r0,#1
000368 1a000003 BNE |L1.892|
00036c e59f010c LDR r0,|L1.1152|
000370 e5900000 LDR r0,[r0,#0] ; nextTargetAddr@InputTargetAddr_0
000374 e59f113c LDR r1,|L1.1208|
000378 e5810000 STR r0,[r1,#0] ; targetAddress
;;;126
;;;127 if(targetAddress<0x4000)targetSize=0x4000;
|L1.892|
00037c e59f0134 LDR r0,|L1.1208|
000380 e5900000 LDR r0,[r0,#0] ; targetAddress
000384 e3500c40 CMP r0,#0x4000
000388 2a00004c BCS |L1.1216|
00038c e3a00c40 MOV r0,#0x4000
000390 e59f1124 LDR r1,|L1.1212|
000394 e5810000 STR r0,[r1,#0] ; targetSize
000398 ea000063 B |L1.1324|
|L1.924|
00039c 324d415b DCB "[AM2"
0003a0 30384639 DCB "9F80"
0003a4 72572030 DCB "0 Wr"
0003a8 6e697469 DCB "itin"
0003ac 72502067 DCB "g Pr"
0003b0 6172676f DCB "ogra"
0003b4 000a5d6d DCB "m]\n\0"
|L1.952|
0003b8 5541430a DCB "\nCAU"
0003bc 4e4f4954 DCB "TION"
0003c0 6843203a DCB ": Ch"
0003c4 206b6365 DCB "eck "
0003c8 39324d41 DCB "AM29"
0003cc 3038564c DCB "LV80"
0003d0 59422030 DCB "0 BY"
0003d4 28234554 DCB "TE#("
0003d8 20293734 DCB "47) "
0003dc 206e6970 DCB "pin "
0003e0 63207369 DCB "is c"
0003e4 656e6e6f DCB "onne"
0003e8 64657463 DCB "cted"
0003ec 206f7420 DCB " to "
0003f0 2e444456 DCB "VDD."
0003f4 0000000a DCB "\n\0\0\0"
|L1.1016|
0003f8 00000000 DCD downloadProgramSize
|L1.1020|
0003fc 756f530a DCB "\nSou"
000400 20656372 DCB "rce "
000404 657a6973 DCB "size"
000408 7e68303a DCB ":0h~"
00040c 0a687825 DCB "%xh\n"
000410 00000000 DCB "\0\0\0\0"
|L1.1044|
000414 6176410a DCB "\nAva"
000418 62616c69 DCB "ilab"
00041c 5420656c DCB "le T"
000420 65677261 DCB "arge"
000424 6f532f74 DCB "t/So"
000428 65637275 DCB "urce"
00042c 64644120 DCB " Add"
000430 73736572 DCB "ress"
000434 00000a3a DCB ":\n\0\0"
|L1.1080|
000438 00000000 DCD ||.constdata$1||
|L1.1084|
00043c 00000044 DCD ||.constdata$1|| + 68
|L1.1088|
000440 30647830 DCB "0xd0"
000444 2c303030 DCB "000,"
000448 30657830 DCB "0xe0"
00044c 2c303030 DCB "000,"
000450 30667830 DCB "0xf0"
000454 0a303030 DCB "000\n"
000458 00000000 DCB "\0\0\0\0"
|L1.1116|
00045c 00000004 DCD ||.bss$2|| + 4
|L1.1120|
000460 75706e49 DCB "Inpu"
000464 6f732074 DCB "t so"
000468 65637275 DCB "urce"
00046c 66666f20 DCB " off"
000470 5b746573 DCB "set["
000474 78257830 DCB "0x%x"
000478 00003a5d DCB "]:\0\0"
|L1.1148|
00047c 0000000c DCD ||.bss$2|| + 12
|L1.1152|
000480 00000000 DCD ||.bss$2||
|L1.1156|
000484 75706e49 DCB "Inpu"
000488 61742074 DCB "t ta"
00048c 74656772 DCB "rget"
000490 64646120 DCB " add"
000494 73736572 DCB "ress"
000498 6f6d6120 DCB " amo"
00049c 6120676e DCB "ng a"
0004a0 65766f62 DCB "bove"
0004a4 64646120 DCB " add"
0004a8 73736572 DCB "ress"
0004ac 305b7365 DCB "es[0"
0004b0 5d782578 DCB "x%x]"
0004b4 0000003a DCB ":\0\0\0"
|L1.1208|
0004b8 00000010 DCD ||.bss$2|| + 16
|L1.1212|
0004bc 00000014 DCD ||.bss$2|| + 20
;;;128 else if(targetAddress<0x6000)targetSize=0x2000;
|L1.1216|
0004c0 e51f0010 LDR r0,|L1.1208|
0004c4 e5900000 LDR r0,[r0,#0] ; targetAddress
0004c8 e3500c60 CMP r0,#0x6000
0004cc 2a000003 BCS |L1.1248|
0004d0 e3a00d80 MOV r0,#0x2000
0004d4 e51f1020 LDR r1,|L1.1212|
0004d8 e5810000 STR r0,[r1,#0] ; targetSize
0004dc ea000012 B |L1.1324|
;;;129 else if(targetAddress<0x8000)targetSize=0x2000;
|L1.1248|
0004e0 e51f0030 LDR r0,|L1.1208|
0004e4 e5900000 LDR r0,[r0,#0] ; targetAddress
0004e8 e3500c80 CMP r0,#0x8000
0004ec 2a000003 BCS |L1.1280|
0004f0 e3a00d80 MOV r0,#0x2000
0004f4 e51f1040 LDR r1,|L1.1212|
0004f8 e5810000 STR r0,[r1,#0] ; targetSize
0004fc ea00000a B |L1.1324|
;;;130 else if(targetAddress<0x10000)targetSize=0x8000;
|L1.1280|
000500 e51f0050 LDR r0,|L1.1208|
000504 e5900000 LDR r0,[r0,#0] ; targetAddress
000508 e3500b40 CMP r0,#0x10000
00050c 2a000003 BCS |L1.1312|
000510 e3a00c80 MOV r0,#0x8000
000514 e51f1060 LDR r1,|L1.1212|
000518 e5810000 STR r0,[r1,#0] ; targetSize
00051c ea000002 B |L1.1324|
;;;131 else targetSize=0x10000;
|L1.1312|
000520 e3a00b40 MOV r0,#0x10000
000524 e51f1070 LDR r1,|L1.1212|
000528 e5810000 STR r0,[r1,#0] ; targetSize
;;;132
;;;133 Uart_Printf("source offset=0x%x\n",srcOffset);
|L1.1324|
00052c e51f00b8 LDR r0,|L1.1148|
000530 e5901000 LDR r1,[r0,#0] ; srcOffset
000534 e28f0f53 ADR r0,|L1.1672|
000538 ebfffffe BL _printf
;;;134 Uart_Printf("target address=0x%x\n",targetAddress);
00053c e51f008c LDR r0,|L1.1208|
000540 e5901000 LDR r1,[r0,#0] ; targetAddress
000544 e28f0f54 ADR r0,|L1.1692|
000548 ebfffffe BL _printf
;;;135 Uart_Printf("target block size=0x%x\n",targetSize);
00054c e51f0098 LDR r0,|L1.1212|
000550 e5901000 LDR r1,[r0,#0] ; targetSize
000554 e28f0f56 ADR r0,|L1.1716|
000558 ebfffffe BL _printf
;;;136
;;;137 if(srcOffset<0x4000)nextSrcOffset=0x4000;
00055c e51f00e8 LDR r0,|L1.1148|
000560 e5900000 LDR r0,[r0,#0] ; srcOffset
000564 e3500c40 CMP r0,#0x4000
000568 2a000003 BCS |L1.1404|
00056c e3a00c40 MOV r0,#0x4000
000570 e51f111c LDR r1,|L1.1116|
000574 e5810000 STR r0,[r1,#0] ; nextSrcOffset@InputTargetAddr_1
000578 ea00001c B |L1.1520|
;;;138 else if(srcOffset<0x6000)nextSrcOffset=0x6000;
|L1.1404|
00057c e51f0108 LDR r0,|L1.1148|
000580 e5900000 LDR r0,[r0,#0] ; srcOffset
000584 e3500c60 CMP r0,#0x6000
000588 2a000003 BCS |L1.1436|
00058c e3a00c60 MOV r0,#0x6000
000590 e51f113c LDR r1,|L1.1116|
000594 e5810000 STR r0,[r1,#0] ; nextSrcOffset@InputTargetAddr_1
000598 ea000014 B |L1.1520|
;;;139 else if(srcOffset<0x8000)nextSrcOffset=0x8000;
|L1.1436|
00059c e51f0128 LDR r0,|L1.1148|
0005a0 e5900000 LDR r0,[r0,#0] ; srcOffset
0005a4 e3500c80 CMP r0,#0x8000
0005a8 2a000003 BCS |L1.1468|
0005ac e3a00c80 MOV r0,#0x8000
0005b0 e51f115c LDR r1,|L1.1116|
0005b4 e5810000 STR r0,[r1,#0] ; nextSrcOffset@InputTargetAddr_1
0005b8 ea00000c B |L1.1520|
;;;140 else if(srcOffset<0x10000)nextSrcOffset=0x10000;
|L1.1468|
0005bc e51f0148 LDR r0,|L1.1148|
0005c0 e5900000 LDR r0,[r0,#0] ; srcOffset
0005c4 e3500b40 CMP r0,#0x10000
0005c8 2a000003 BCS |L1.1500|
0005cc e3a00b40 MOV r0,#0x10000
0005d0 e51f117c LDR r1,|L1.1116|
0005d4 e5810000 STR r0,[r1,#0] ; nextSrcOffset@InputTargetAddr_1
0005d8 ea000004 B |L1.1520|
;;;141 else nextSrcOffset=srcOffset+0x10000;
|L1.1500|
0005dc e51f0168 LDR r0,|L1.1148|
0005e0 e5900000 LDR r0,[r0,#0] ; srcOffset
0005e4 e2800b40 ADD r0,r0,#0x10000
0005e8 e51f1194 LDR r1,|L1.1116|
0005ec e5810000 STR r0,[r1,#0] ; nextSrcOffset@InputTargetAddr_1
;;;142
;;;143 if(targetAddress<0x4000)nextTargetAddr=0x4000;
|L1.1520|
0005f0 e51f0140 LDR r0,|L1.1208|
0005f4 e5900000 LDR r0,[r0,#0] ; targetAddress
0005f8 e3500c40 CMP r0,#0x4000
0005fc 2a000003 BCS |L1.1552|
000600 e3a00c40 MOV r0,#0x4000
000604 e51f118c LDR r1,|L1.1152|
000608 e5810000 STR r0,[r1,#0] ; nextTargetAddr@InputTargetAddr_0
00060c ea00001c B |L1.1668|
;;;144 else if(targetAddress<0x6000)nextTargetAddr=0x6000;
|L1.1552|
000610 e51f0160 LDR r0,|L1.1208|
000614 e5900000 LDR r0,[r0,#0] ; targetAddress
000618 e3500c60 CMP r0,#0x6000
00061c 2a000003 BCS |L1.1584|
000620 e3a00c60 MOV r0,#0x6000
000624 e51f11ac LDR r1,|L1.1152|
000628 e5810000 STR r0,[r1,#0] ; nextTargetAddr@InputTargetAddr_0
00062c ea000014 B |L1.1668|
;;;145 else if(targetAddress<0x8000)nextTargetAddr=0x8000;
|L1.1584|
000630 e51f0180 LDR r0,|L1.1208|
000634 e5900000 LDR r0,[r0,#0] ; targetAddress
000638 e3500c80 CMP r0,#0x8000
00063c 2a000003 BCS |L1.1616|
000640 e3a00c80 MOV r0,#0x8000
000644 e51f11cc LDR r1,|L1.1152|
000648 e5810000 STR r0,[r1,#0] ; nextTargetAddr@InputTargetAddr_0
00064c ea00000c B |L1.1668|
;;;146 else if(targetAddress<0x10000)nextTargetAddr=0x10000;
|L1.1616|
000650 e51f01a0 LDR r0,|L1.1208|
000654 e5900000 LDR r0,[r0,#0] ; targetAddress
000658 e3500b40 CMP r0,#0x10000
00065c 2a000003 BCS |L1.1648|
000660 e3a00b40 MOV r0,#0x10000
000664 e51f11ec LDR r1,|L1.1152|
000668 e5810000 STR r0,[r1,#0] ; nextTargetAddr@InputTargetAddr_0
00066c ea000004 B |L1.1668|
;;;147 else nextTargetAddr=targetAddress+0x10000;
|L1.1648|
000670 e51f01c0 LDR r0,|L1.1208|
000674 e5900000 LDR r0,[r0,#0] ; targetAddress
000678 e2800b40 ADD r0,r0,#0x10000
00067c e51f1204 LDR r1,|L1.1152|
000680 e5810000 STR r0,[r1,#0] ; nextTargetAddr@InputTargetAddr_0
;;;148
;;;149
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -