📄 flash.txt
字号:
000504 2a000024 BCS |L1.1436|
;;;178 {
;;;179 while(!(rUTRSTAT0&0x1));
000508 e1a00000 NOP
|L1.1292|
00050c e51f02ac LDR r0,|L1.616|
000510 e5900010 LDR r0,[r0,#0x10]
000514 e3100001 TST r0,#1
000518 0afffffb BEQ |L1.1292|
;;;180 *(downPt+j)=RdURXH0();
00051c e51f02bc LDR r0,|L1.616|
000520 e5d00024 LDRB r0,[r0,#0x24]
000524 e7c90006 STRB r0,[r9,r6]
;;;181 j++;
000528 e2866001 ADD r6,r6,#1
;;;182 if(i==3)
00052c e3540003 CMP r4,#3
000530 1a00000f BNE |L1.1396|
;;;183 {
;;;184 fileSize=*((U8 *)(downloadAddress+0))+
000534 e51f03b4 LDR r0,|L1.392|
000538 e5900000 LDR r0,[r0,#0] ; downloadAddress
00053c e5d00000 LDRB r0,[r0,#0]
000540 e51f13c0 LDR r1,|L1.392|
000544 e5911000 LDR r1,[r1,#0] ; downloadAddress
000548 e5d11001 LDRB r1,[r1,#1]
00054c e0800401 ADD r0,r0,r1,LSL #8
000550 e51f13d0 LDR r1,|L1.392|
000554 e5911000 LDR r1,[r1,#0] ; downloadAddress
000558 e5d11002 LDRB r1,[r1,#2]
00055c e0800801 ADD r0,r0,r1,LSL #16
000560 e51f13e0 LDR r1,|L1.392|
000564 e5911000 LDR r1,[r1,#0] ; downloadAddress
000568 e5d11003 LDRB r1,[r1,#3]
00056c e0805c01 ADD r5,r0,r1,LSL #24
;;;185 (*((U8 *)(downloadAddress+1))<<8)+
;;;186 (*((U8 *)(downloadAddress+2))<<16)+
;;;187 (*((U8 *)(downloadAddress+3))<<24);
;;;188 j = 0;
000570 e3a06000 MOV r6,#0
;;;189 }
;;;190
;;;191 if((i%1000)==0)
|L1.1396|
000574 e1a01004 MOV r1,r4
000578 e3a00ffa MOV r0,#0x3e8
00057c ebfffffe BL __rt_sdiv
000580 e3510000 CMP r1,#0
000584 1a000002 BNE |L1.1428|
;;;192 WrUTXH0('#');
000588 e3a00023 MOV r0,#0x23
00058c e51f132c LDR r1,|L1.616|
000590 e5c10020 STRB r0,[r1,#0x20]
;;;193 i++;
|L1.1428|
000594 e2844001 ADD r4,r4,#1
;;;194 }
000598 eaffffd8 B |L1.1280|
;;;195
;;;196 downloadProgramSize=fileSize-6;
|L1.1436|
00059c e2450006 SUB r0,r5,#6
0005a0 e51f133c LDR r1,|L1.620|
0005a4 e5810000 STR r0,[r1,#0] ; downloadProgramSize
;;;197
;;;198 for(i=0;i<(fileSize-2-4);i++)
0005a8 e3a04000 MOV r4,#0
|L1.1452|
0005ac e2450006 SUB r0,r5,#6
0005b0 e1540000 CMP r4,r0
0005b4 2a000008 BCS |L1.1500|
0005b8 ea000001 B |L1.1476|
|L1.1468|
0005bc e2844001 ADD r4,r4,#1
0005c0 eafffff9 B |L1.1452|
;;;199 {
;;;200 checkSum+=*((U8 *)(i+downloadAddress));
|L1.1476|
0005c4 e51f0444 LDR r0,|L1.392|
0005c8 e5900000 LDR r0,[r0,#0] ; downloadAddress
0005cc e7d40000 LDRB r0,[r4,r0]
0005d0 e0800007 ADD r0,r0,r7
0005d4 e3c07b40 BIC r7,r0,#0x10000
;;;201 }
0005d8 eafffff7 B |L1.1468|
;;;202
;;;203 dnCS=*((U8 *)(downloadAddress+fileSize-2-4))+
|L1.1500|
0005dc e51f045c LDR r0,|L1.392|
0005e0 e5900000 LDR r0,[r0,#0] ; downloadAddress
0005e4 e0800005 ADD r0,r0,r5
0005e8 e5500006 LDRB r0,[r0,#-6]
0005ec e51f146c LDR r1,|L1.392|
0005f0 e5911000 LDR r1,[r1,#0] ; downloadAddress
0005f4 e0811005 ADD r1,r1,r5
0005f8 e5511005 LDRB r1,[r1,#-5]
0005fc e0800401 ADD r0,r0,r1,LSL #8
000600 e3c08b40 BIC r8,r0,#0x10000
;;;204 (*( (U8 *)(downloadAddress+fileSize-1-4) )<<8);
;;;205
;;;206 if(checkSum!=dnCS)
000604 e1570008 CMP r7,r8
000608 0a000005 BEQ |L1.1572|
;;;207 {
;;;208 Uart_Printf("Checksum Error!!! MEM : %x DN : %x\n",checkSum,dnCS);
00060c e1a02008 MOV r2,r8
000610 e1a01007 MOV r1,r7
000614 e24f0feb ADR r0,|L1.624|
000618 ebfffffe BL _printf
;;;209 return 0;
00061c e3a00000 MOV r0,#0
;;;210 }
;;;211
;;;212 Uart_Printf("\nDownload O.K.\n");
;;;213 return 1;
;;;214 }
|L1.1568|
000620 e8bd87f0 LDMFD sp!,{r4-r10,pc}
|L1.1572|
000624 e24f0fe1 ADR r0,|L1.680| ;212
000628 ebfffffe BL _printf ;212
00062c e3a00001 MOV r0,#1 ;213
000630 eafffffa B |L1.1568| ;213
ENDP
DownloadBinary PROC
;;;216 void DownloadBinary(void)
;;;217 {
000634 e92d40f8 STMFD sp!,{r3-r7,lr}
;;;218 int i=0, tmp;
000638 e3a04000 MOV r4,#0
;;;219 char key;
;;;220 U16 checkSum=0,dnCS;
00063c e3a06000 MOV r6,#0
;;;221 U32 fileSize=10;
000640 e3a0700a MOV r7,#0xa
;;;222 U8 *downPt;
;;;223
;;;224 Uart_Printf("\n[ Writing Binary Data to Memory]\n\n");
000644 e28f0068 ADR r0,|L1.1716|
000648 ebfffffe BL _printf
;;;225 Uart_Printf("Set Download Address : ");
00064c e28f0084 ADR r0,|L1.1752|
000650 ebfffffe BL _printf
;;;226 i = Uart_GetIntNum();
000654 ebfffffe BL Uart_GetIntNum
000658 e1a04000 MOV r4,r0
;;;227 Uart_Printf("\n");
00065c e24f0f94 ADR r0,|L1.1044|
000660 ebfffffe BL _printf
;;;228
;;;229 downloadAddress=i;
000664 e51f04e4 LDR r0,|L1.392|
000668 e5804000 STR r4,[r0,#0] ; downloadAddress
;;;230 downloadProgramSize=0x0;
00066c e3a00000 MOV r0,#0
000670 e51f140c LDR r1,|L1.620|
000674 e5810000 STR r0,[r1,#0] ; downloadProgramSize
;;;231
;;;232 //MMU_Init();
;;;233 ChangeRomCacheStatus(RW_NCNB);
000678 e51f0268 LDR r0,|L1.1048|
00067c ebfffffe BL ChangeRomCacheStatus
;;;234
;;;235 Uart_Printf("Do you want to download through UART0 from 0x%x? [y/n] : ",downloadAddress);
000680 e51f0500 LDR r0,|L1.392|
000684 e5901000 LDR r1,[r0,#0] ; downloadAddress
000688 e24f0f8f ADR r0,|L1.1108|
00068c ebfffffe BL _printf
;;;236 key=Uart_Getch();
000690 ebfffffe BL Uart_Getch
000694 e1a05000 MOV r5,r0
;;;237 Uart_Printf("%c\n",key);
000698 e1a01005 MOV r1,r5
00069c e24f0f95 ADR r0,|L1.1104|
0006a0 ebfffffe BL _printf
;;;238 if(key=='y')
0006a4 e3550079 CMP r5,#0x79
0006a8 1a000000 BNE |L1.1712|
;;;239 {
;;;240 DownloadImage();
0006ac ebfffffe BL DownloadImage
;;;241 }
;;;242
;;;243 }
|L1.1712|
0006b0 e8bd80f8 LDMFD sp!,{r3-r7,pc}
|L1.1716|
0006b4 57205b0a DCB "\n[ W"
0006b8 69746972 DCB "riti"
0006bc 4220676e DCB "ng B"
0006c0 72616e69 DCB "inar"
0006c4 61442079 DCB "y Da"
0006c8 74206174 DCB "ta t"
0006cc 654d206f DCB "o Me"
0006d0 79726f6d DCB "mory"
0006d4 000a0a5d DCB "]\n\n\0"
|L1.1752|
0006d8 20746553 DCB "Set "
0006dc 6e776f44 DCB "Down"
0006e0 64616f6c DCB "load"
0006e4 64644120 DCB " Add"
0006e8 73736572 DCB "ress"
0006ec 00203a20 DCB " : \0"
ENDP
AREA ||.data||, DATA, ALIGN=2
||.data$0||
flashType
DCD ProgramAM29F800
DCD ||.constdata$1||
DCD Program28F256K3_16Bit
DCD ||.constdata$1||+0x1b
DCD 0x00000000
DCD 0x00000000
AREA ||.constdata||, DATA, READONLY, ALIGN=0
||.constdata$1||
DCB 0x57,0x72,0x69,0x74
DCB 0x65,0x20,0x41,0x4d
DCB 0x32,0x39,0x4c,0x56
DCB 0x38,0x30,0x30,0x42
DCB 0x42,0x20,0x78,0x31
DCB 0x20,0x20,0x20,0x20
DCB 0x20,0x20,0x00
DCB 0x57,0x72,0x69,0x74
DCB 0x65,0x20,0x32,0x38
DCB 0x46,0x32,0x35,0x36
DCB 0x4b,0x33,0x28,0x33
DCB 0x32,0x4d,0x42,0x29
DCB 0x20,0x20,0x20,0x20
DCB 0x20,0x00
AREA ||.bss||, NOINIT, ALIGN=2
downloadAddress
||.bss$2||
% 4
downloadProgramSize
% 4
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -