📄 flash.txt
字号:
; generated by ARM C Compiler, ADS1.2 [Build 842]
; commandline [-errors .\err\flash.err -O0 -asm -g+ -cpu 5TEJ -fs -Wd -Ec -I.\include "-IC:\Program Files\ARM\ADSv1_2\INCLUDE"]
CODE32
AREA ||.text||, CODE, READONLY
DownloadData PROC
;;;94 static int DownloadData(void)
;;;95 {
|L1.0|
000000 e92d43f8 STMFD sp!,{r3-r9,lr}
;;;96 int i,tmp;
;;;97 U16 checkSum=0,dnCS;
000004 e3a06000 MOV r6,#0
;;;98 U32 fileSize=10;
000008 e3a0500a MOV r5,#0xa
;;;99 U8 *downPt;
;;;100
;;;101 downPt=(U8 *)downloadAddress;
00000c e59f0174 LDR r0,|L1.392|
000010 e5908000 LDR r8,[r0,#0] ; downloadAddress
;;;102
;;;103 Uart_Printf("\ndownloadAddress = %x\n",downloadAddress);
000014 e59f016c LDR r0,|L1.392|
000018 e5901000 LDR r1,[r0,#0] ; downloadAddress
00001c e28f0f5a ADR r0,|L1.396|
000020 ebfffffe BL _printf
;;;104
;;;105 Uart_Printf("Download the plain binary file(.BHC) to be written\n");
000024 e28f0f5e ADR r0,|L1.420|
000028 ebfffffe BL _printf
;;;106 Uart_Printf("The file format : <n+6>(4)+(n)+CS(2)\n");
00002c e28f0f69 ADR r0,|L1.472|
000030 ebfffffe BL _printf
;;;107 Uart_Printf("To transmit .BIN file : wkocm2 xxx.BIN /1 /d:1\n");
000034 e28f0f71 ADR r0,|L1.512|
000038 ebfffffe BL _printf
;;;108 Uart_Printf("Download methods : COM:8Bit,NP,1STOP\n");
00003c e28f0f7b ADR r0,|L1.560|
000040 ebfffffe BL _printf
;;;109
;;;110 Uart_Printf("\nSTATUS : ");
000044 e28f0f83 ADR r0,|L1.600|
000048 ebfffffe BL _printf
;;;111 rINTMSK=BIT_ALLMSK;
00004c e3e00000 MVN r0,#0
000050 e59f120c LDR r1,|L1.612|
000054 e5810008 STR r0,[r1,#8]
;;;112
;;;113 tmp=RdURXH0(); //To remove overrun error state.
000058 e2810642 ADD r0,r1,#0x4200000
00005c e5d00024 LDRB r0,[r0,#0x24]
000060 e1a09000 MOV r9,r0
;;;114
;;;115 i=0;
000064 e3a04000 MOV r4,#0
;;;116 while(i<fileSize)
000068 e1a00000 NOP
|L1.108|
00006c e1540005 CMP r4,r5
000070 2a000022 BCS |L1.256|
;;;117 {
;;;118 while(!(rUTRSTAT0&0x1));
000074 e1a00000 NOP
|L1.120|
000078 e59f01e8 LDR r0,|L1.616|
00007c e5900010 LDR r0,[r0,#0x10]
000080 e3100001 TST r0,#1
000084 0afffffb BEQ |L1.120|
;;;119 *(downPt+i)=RdURXH0();
000088 e59f01d8 LDR r0,|L1.616|
00008c e5d00024 LDRB r0,[r0,#0x24]
000090 e7c80004 STRB r0,[r8,r4]
;;;120 if(i==3)
000094 e3540003 CMP r4,#3
000098 1a00000e BNE |L1.216|
;;;121 {
;;;122 fileSize=*((U8 *)(downloadAddress+0))+
00009c e59f00e4 LDR r0,|L1.392|
0000a0 e5900000 LDR r0,[r0,#0] ; downloadAddress
0000a4 e5d00000 LDRB r0,[r0,#0]
0000a8 e59f10d8 LDR r1,|L1.392|
0000ac e5911000 LDR r1,[r1,#0] ; downloadAddress
0000b0 e5d11001 LDRB r1,[r1,#1]
0000b4 e0800401 ADD r0,r0,r1,LSL #8
0000b8 e59f10c8 LDR r1,|L1.392|
0000bc e5911000 LDR r1,[r1,#0] ; downloadAddress
0000c0 e5d11002 LDRB r1,[r1,#2]
0000c4 e0800801 ADD r0,r0,r1,LSL #16
0000c8 e59f10b8 LDR r1,|L1.392|
0000cc e5911000 LDR r1,[r1,#0] ; downloadAddress
0000d0 e5d11003 LDRB r1,[r1,#3]
0000d4 e0805c01 ADD r5,r0,r1,LSL #24
;;;123 (*((U8 *)(downloadAddress+1))<<8)+
;;;124 (*((U8 *)(downloadAddress+2))<<16)+
;;;125 (*((U8 *)(downloadAddress+3))<<24);
;;;126 }
;;;127
;;;128 if((i%1000)==0)
|L1.216|
0000d8 e1a01004 MOV r1,r4
0000dc e3a00ffa MOV r0,#0x3e8
0000e0 ebfffffe BL __rt_sdiv
0000e4 e3510000 CMP r1,#0
0000e8 1a000002 BNE |L1.248|
;;;129 WrUTXH0('#');
0000ec e3a00023 MOV r0,#0x23
0000f0 e59f1170 LDR r1,|L1.616|
0000f4 e5c10020 STRB r0,[r1,#0x20]
;;;130 i++;
|L1.248|
0000f8 e2844001 ADD r4,r4,#1
;;;131 }
0000fc eaffffda B |L1.108|
;;;132
;;;133 downloadProgramSize=fileSize-6;
|L1.256|
000100 e2450006 SUB r0,r5,#6
000104 e59f1160 LDR r1,|L1.620|
000108 e5810000 STR r0,[r1,#0] ; downloadProgramSize
;;;134
;;;135 for(i=4;i<(fileSize-2);i++)
00010c e3a04004 MOV r4,#4
|L1.272|
000110 e2450002 SUB r0,r5,#2
000114 e1540000 CMP r4,r0
000118 2a000008 BCS |L1.320|
00011c ea000001 B |L1.296|
|L1.288|
000120 e2844001 ADD r4,r4,#1
000124 eafffff9 B |L1.272|
;;;136 {
;;;137 checkSum+=*((U8 *)(i+downloadAddress));
|L1.296|
000128 e59f0058 LDR r0,|L1.392|
00012c e5900000 LDR r0,[r0,#0] ; downloadAddress
000130 e7d40000 LDRB r0,[r4,r0]
000134 e0800006 ADD r0,r0,r6
000138 e3c06b40 BIC r6,r0,#0x10000
;;;138 }
00013c eafffff7 B |L1.288|
;;;139
;;;140 dnCS=*((U8 *)(downloadAddress+fileSize-2))+
|L1.320|
000140 e59f0040 LDR r0,|L1.392|
000144 e5900000 LDR r0,[r0,#0] ; downloadAddress
000148 e0800005 ADD r0,r0,r5
00014c e5500002 LDRB r0,[r0,#-2]
000150 e59f1030 LDR r1,|L1.392|
000154 e5911000 LDR r1,[r1,#0] ; downloadAddress
000158 e0811005 ADD r1,r1,r5
00015c e5511001 LDRB r1,[r1,#-1]
000160 e0800401 ADD r0,r0,r1,LSL #8
000164 e3c07b40 BIC r7,r0,#0x10000
;;;141 (*( (U8 *)(downloadAddress+fileSize-1) )<<8);
;;;142
;;;143 if(checkSum!=dnCS)
000168 e1560007 CMP r6,r7
00016c 0a000049 BEQ |L1.664|
;;;144 {
;;;145 Uart_Printf("Checksum Error!!! MEM : %x DN : %x\n",checkSum,dnCS);
000170 e1a02007 MOV r2,r7
000174 e1a01006 MOV r1,r6
000178 e28f00f0 ADR r0,|L1.624|
00017c ebfffffe BL _printf
;;;146 return 0;
000180 e3a00000 MOV r0,#0
;;;147 }
;;;148
;;;149 Uart_Printf("\nDownload O.K.\n");
;;;150 return 1;
;;;151 }
|L1.388|
000184 e8bd83f8 LDMFD sp!,{r3-r9,pc}
|L1.392|
000188 00000000 DCD ||.bss$2||
|L1.396|
00018c 776f640a DCB "\ndow"
000190 616f6c6e DCB "nloa"
000194 64644164 DCB "dAdd"
000198 73736572 DCB "ress"
00019c 25203d20 DCB " = %"
0001a0 00000a78 DCB "x\n\0\0"
|L1.420|
0001a4 6e776f44 DCB "Down"
0001a8 64616f6c DCB "load"
0001ac 65687420 DCB " the"
0001b0 616c7020 DCB " pla"
0001b4 62206e69 DCB "in b"
0001b8 72616e69 DCB "inar"
0001bc 69662079 DCB "y fi"
0001c0 2e28656c DCB "le(."
0001c4 29434842 DCB "BHC)"
0001c8 206f7420 DCB " to "
0001cc 77206562 DCB "be w"
0001d0 74746972 DCB "ritt"
0001d4 000a6e65 DCB "en\n\0"
|L1.472|
0001d8 20656854 DCB "The "
0001dc 656c6966 DCB "file"
0001e0 726f6620 DCB " for"
0001e4 2074616d DCB "mat "
0001e8 6e3c203a DCB ": <n"
0001ec 283e362b DCB "+6>("
0001f0 282b2934 DCB "4)+("
0001f4 432b296e DCB "n)+C"
0001f8 29322853 DCB "S(2)"
0001fc 0000000a DCB "\n\0\0\0"
|L1.512|
000200 74206f54 DCB "To t"
000204 736e6172 DCB "rans"
000208 2074696d DCB "mit "
00020c 4e49422e DCB ".BIN"
000210 6c696620 DCB " fil"
000214 203a2065 DCB "e : "
000218 636f6b77 DCB "wkoc"
00021c 7820326d DCB "m2 x"
000220 422e7878 DCB "xx.B"
000224 2f204e49 DCB "IN /"
000228 642f2031 DCB "1 /d"
00022c 000a313a DCB ":1\n\0"
|L1.560|
000230 6e776f44 DCB "Down"
000234 64616f6c DCB "load"
000238 74656d20 DCB " met"
00023c 73646f68 DCB "hods"
000240 43203a20 DCB " : C"
000244 383a4d4f DCB "OM:8"
000248 2c746942 DCB "Bit,"
00024c 312c504e DCB "NP,1"
000250 504f5453 DCB "STOP"
000254 0000000a DCB "\n\0\0\0"
|L1.600|
000258 4154530a DCB "\nSTA"
00025c 20535554 DCB "TUS "
000260 0000203a DCB ": \0\0"
|L1.612|
000264 40200000 DCD 0x40200000
|L1.616|
000268 44400000 DCD 0x44400000
|L1.620|
00026c 00000004 DCD ||.bss$2|| + 4
|L1.624|
000270 63656843 DCB "Chec"
000274 6d75736b DCB "ksum"
000278 72724520 DCB " Err"
00027c 2121726f DCB "or!!"
000280 454d2021 DCB "! ME"
000284 203a204d DCB "M : "
000288 20207825 DCB "%x "
00028c 3a204e44 DCB "DN :"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -