📄 strata32.txt
字号:
00070c e5922000 LDR r2,[r2,#0] ;273 ; targetOffset
000710 e0811002 ADD r1,r1,r2 ;273
000714 e0810004 ADD r0,r1,r4 ;273
000718 ebfffffe BL Strata_EraseSector ;273
00071c eafffff5 B |L1.1784| ;274
|L1.1824|
000720 e51f15a0 LDR r1,|L1.392| ;276
000724 e5911000 LDR r1,[r1,#0] ;276 ; targetAddress
000728 e51f232c LDR r2,|L1.1028| ;276
00072c e5922000 LDR r2,[r2,#0] ;276 ; targetOffset
000730 e0810002 ADD r0,r1,r2 ;276
000734 e51f1334 LDR r1,|L1.1032| ;276
000738 e5911000 LDR r1,[r1,#0] ;276 ; targetSize
00073c ebfffffe BL Strata_BlankCheck ;276
000740 e3500000 CMP r0,#0 ;276
000744 1a000002 BNE |L1.1876| ;276
000748 e28f0f62 ADR r0,|L1.2264| ;278
00074c ebfffffe BL Uart_Printf ;278
000750 eaffff78 B |L1.1336| ;279
|L1.1876|
000754 e28f0f65 ADR r0,|L1.2288| ;282
000758 ebfffffe BL Uart_Printf ;282
00075c e3a04000 MOV r4,#0 ;284
|L1.1888|
000760 e51f0360 LDR r0,|L1.1032| ;284
000764 e5900000 LDR r0,[r0,#0] ;284 ; targetSize
000768 e1540000 CMP r4,r0 ;284
00076c 2a000019 BCS |L1.2008| ;284
000770 ea000001 B |L1.1916| ;284
|L1.1908|
000774 e2844004 ADD r4,r4,#4 ;284
000778 eafffff8 B |L1.1888| ;284
|L1.1916|
00077c e51f21b0 LDR r2,|L1.1492| ;286
000780 e5922000 LDR r2,[r2,#0] ;286 ; srcAddress
000784 e7921004 LDR r1,[r2,r4] ;286
000788 e51f2608 LDR r2,|L1.392| ;286
00078c e5922000 LDR r2,[r2,#0] ;286 ; targetAddress
000790 e0842002 ADD r2,r4,r2 ;286
000794 e51f3398 LDR r3,|L1.1028| ;286
000798 e5933000 LDR r3,[r3,#0] ;286 ; targetOffset
00079c e0820003 ADD r0,r2,r3 ;286
0007a0 ebfffffe BL Strata_ProgFlash ;286
0007a4 e3c4047f BIC r0,r4,#0x7f000000 ;287
0007a8 e3c008ff BIC r0,r0,#0xff0000 ;287
0007ac e240ccfc SUB r12,r0,#0xfc00 ;287
0007b0 e25ccfff SUBS r12,r12,#0x3fc ;287
0007b4 1a000006 BNE |L1.2004| ;287
0007b8 e2840004 ADD r0,r4,#4 ;288
0007bc e1a01fc0 MOV r1,r0,ASR #31 ;288
0007c0 e0801821 ADD r1,r0,r1,LSR #16 ;288
0007c4 e1a05841 MOV r5,r1,ASR #16 ;288
0007c8 e1a01005 MOV r1,r5 ;288
0007cc e28f0f4f ADR r0,|L1.2320| ;288
0007d0 ebfffffe BL Uart_Printf ;288
|L1.2004|
0007d4 eaffffe6 B |L1.1908| ;289
|L1.2008|
0007d8 e28f0f4e ADR r0,|L1.2328| ;290
0007dc ebfffffe BL Uart_Printf ;290
0007e0 e51f0664 LDR r0,|L1.388| ;292
0007e4 e51f1664 LDR r1,|L1.392| ;292
0007e8 e5911000 LDR r1,[r1,#0] ;292 ; targetAddress
0007ec e5810000 STR r0,[r1,#0] ;292
0007f0 e28f0f4f ADR r0,|L1.2356| ;294
0007f4 ebfffffe BL Uart_Printf ;294
0007f8 e3a04000 MOV r4,#0 ;295
|L1.2044|
0007fc e51f03fc LDR r0,|L1.1032| ;295
000800 e5900000 LDR r0,[r0,#0] ;295 ; targetSize
000804 e1540000 CMP r4,r0 ;295
000808 2a000022 BCS |L1.2200| ;295
00080c ea000001 B |L1.2072| ;295
|L1.2064|
000810 e2844004 ADD r4,r4,#4 ;295
000814 eafffff8 B |L1.2044| ;295
|L1.2072|
000818 e51f0698 LDR r0,|L1.392| ;297
00081c e5900000 LDR r0,[r0,#0] ;297 ; targetAddress
000820 e0840000 ADD r0,r4,r0 ;297
000824 e51f1428 LDR r1,|L1.1028| ;297
000828 e5911000 LDR r1,[r1,#0] ;297 ; targetOffset
00082c e7900001 LDR r0,[r0,r1] ;297
000830 e51f1264 LDR r1,|L1.1492| ;297
000834 e5911000 LDR r1,[r1,#0] ;297 ; srcAddress
000838 e7911004 LDR r1,[r1,r4] ;297
00083c e1500001 CMP r0,r1 ;297
000840 0a000013 BEQ |L1.2196| ;297
000844 e51f0278 LDR r0,|L1.1492| ;299
000848 e5900000 LDR r0,[r0,#0] ;299 ; srcAddress
00084c e7902004 LDR r2,[r0,r4] ;299
000850 e51f0284 LDR r0,|L1.1492| ;299
000854 e5900000 LDR r0,[r0,#0] ;299 ; srcAddress
000858 e0801004 ADD r1,r0,r4 ;299
00085c e28f00e4 ADR r0,|L1.2376| ;299
000860 ebfffffe BL Uart_Printf ;299
000864 e51f06e4 LDR r0,|L1.392| ;300
000868 e5900000 LDR r0,[r0,#0] ;300 ; targetAddress
00086c e7942000 LDR r2,[r4,r0] ;300
000870 e51f06f0 LDR r0,|L1.392| ;300
000874 e5900000 LDR r0,[r0,#0] ;300 ; targetAddress
000878 e0840000 ADD r0,r4,r0 ;300
00087c e51f3480 LDR r3,|L1.1028| ;300
000880 e5933000 LDR r3,[r3,#0] ;300 ; targetOffset
000884 e0801003 ADD r1,r0,r3 ;300
000888 e28f00d8 ADR r0,|L1.2408| ;300
00088c ebfffffe BL Uart_Printf ;300
000890 eaffff28 B |L1.1336| ;301
|L1.2196|
000894 eaffffdd B |L1.2064| ;303
|L1.2200|
000898 e28f00e8 ADR r0,|L1.2442| ;304
00089c ebfffffe BL Uart_Printf ;304
0008a0 eaffff24 B |L1.1336|
|L1.2212|
0008a4 69766544 DCB "Devi"
0008a8 63206563 DCB "ce c"
0008ac 6b636568 DCB "heck"
0008b0 72726520 DCB " err"
0008b4 2120726f DCB "or !"
0008b8 00000a21 DCB "!\n\0\0"
|L1.2236|
0008bc 6172450a DCB "\nEra"
0008c0 74206573 DCB "se t"
0008c4 73206568 DCB "he s"
0008c8 6f746365 DCB "ecto"
0008cc 203a2072 DCB "r : "
0008d0 78257830 DCB "0x%x"
0008d4 00000a2e DCB ".\n\0\0"
|L1.2264|
0008d8 6e616c42 DCB "Blan"
0008dc 6843206b DCB "k Ch"
0008e0 206b6365 DCB "eck "
0008e4 6f727245 DCB "Erro"
0008e8 21212172 DCB "r!!!"
0008ec 0000000a DCB "\n\0\0\0"
|L1.2288|
0008f0 6174530a DCB "\nSta"
0008f4 6f207472 DCB "rt o"
0008f8 68742066 DCB "f th"
0008fc 61642065 DCB "e da"
000900 77206174 DCB "ta w"
000904 69746972 DCB "riti"
000908 2e2e676e DCB "ng.."
00090c 00000a2e DCB ".\n\0\0"
|L1.2320|
000910 5d78255b DCB "[%x]"
000914 00000000 DCB "\0\0\0\0"
|L1.2328|
000918 646e450a DCB "\nEnd"
00091c 20666f20 DCB " of "
000920 20656874 DCB "the "
000924 61746164 DCB "data"
000928 69727720 DCB " wri"
00092c 676e6974 DCB "ting"
000930 00000a20 DCB " \n\0\0"
|L1.2356|
000934 69726556 DCB "Veri"
000938 6e697966 DCB "fyin"
00093c 74532067 DCB "g St"
000940 2e747261 DCB "art."
000944 000a2e2e DCB "..\n\0"
|L1.2376|
000948 69726576 DCB "veri"
00094c 65207966 DCB "fy e"
000950 726f7272 DCB "rror"
000954 72732020 DCB " sr"
000958 30252063 DCB "c %0"
00095c 3d207838 DCB "8x ="
000960 38302520 DCB " %08"
000964 00000a78 DCB "x\n\0\0"
|L1.2408|
000968 69726576 DCB "veri"
00096c 65207966 DCB "fy e"
000970 726f7272 DCB "rror"
000974 65642020 DCB " de"
000978 30252073 DCB "s %0"
00097c 3d207838 DCB "8x ="
000980 38302520 DCB " %08"
000984 00000a78 DCB "x\n\0\0"
|L1.2442|
000988 69726556 DCB "Veri"
00098c 6e697966 DCB "fyin"
000990 6e452067 DCB "g En"
000994 21212164 DCB "d!!!"
000998 00000000 DCB "\0\0\0\0"
ENDP
Erase28F128J3A PROC
;;;308 void Erase28F128J3A(void) // added by junon 10/29
;;;309 {
00099c e92d4038 STMFD sp!,{r3-r5,lr}
;;;310 // FlashROM write program must reside at RAM region NOT ROM region
;;;311 // In reading and writing all interrupts are disabled because the flash ROM
;;;312 // strongly dislike to be disturbed by other stuff.
;;;313 // And the region of flash ROM must be I/O region which means NO cacheable
;;;314 // and NO bufferable in MMU. Check it out !!!
;;;315 // 2001.6.18. Mon. It's local rain. I'll hope it eliminates the drought in Korea. by chc
;;;316
;;;317 unsigned long interrupt_reservoir;
;;;318 int i;
;;;319
;;;320 Uart_Printf("\n[ 28F128J3A Flash Writing Program ]\n\n");
0009a0 e59f0244 LDR r0,|L1.3052|
0009a4 ebfffffe BL Uart_Printf
;;;321 Uart_Printf(" *** Very Important Notes ***\n");
0009a8 e59f0240 LDR r0,|L1.3056|
0009ac ebfffffe BL Uart_Printf
;;;322 Uart_Printf("1. 28F128J3A must be located at 0x08000000.\n"
0009b0 e51f0430 LDR r0,|L1.1416|
0009b4 ebfffffe BL Uart_Printf
;;;323 " J1:1-2, J2:2-3, J3:2-3, J4:1-2 \n");
;;;324 Uart_Printf("2. After programming, 28F128J3A may be located at 0x0.\n"
0009b8 e51f0434 LDR r0,|L1.1420|
0009bc ebfffffe BL Uart_Printf
;;;325 " J1:2-3, J2:1-2, J3:1-2, J4:2-3 \n");
;;;326
;;;327 rINTMSK = BIT_ALLMSK;
0009c0 e3e00000 MVN r0,#0
0009c4 e3a0144a MOV r1,#0x4a000000
0009c8 e5810008 STR r0,[r1,#8]
;;;328 targetAddress=TARGET_ADDR_28F128;
0009cc e3a00680 MOV r0,#0x8000000
0009d0 e51f1850 LDR r1,|L1.392|
0009d4 e5810000 STR r0,[r1,#0] ; targetAddress
;;;329 targetSize=downloadProgramSize;
0009d8 e51f0678 LDR r0,|L1.872|
0009dc e5900000 LDR r0,[r0,#0] ; downloadProgramSize
0009e0 e51f15e0 LDR r1,|L1.1032|
0009e4 e5810000 STR r0,[r1,#0] ; targetSize
;;;330 //downloadAddress=0x31000000;
;;;331
;;;332 if(targetSize==0)
0009e8 e51f05e8 LDR r0,|L1.1032|
0009ec e5900000 LDR r0,[r0,#0] ; targetSize
0009f0 e3500000 CMP r0,#0
0009f4 1a000006 BNE |L1.2580|
;;;333 {
;;;334 Uart_Printf("\nThe data must be downloaded using ICE or USB from 0x31000000\n");
0009f8 e59f01f4 LDR r0,|L1.3060|
0009fc ebfffffe BL Uart_Printf
;;;335 srcAddress=downloadAddress;
000a00 e51f0438 LDR r0,|L1.1488|
000a04 e5900000 LDR r0,[r0,#0] ; downloadAddress
000a08 e51f143c LDR r1,|L1.1492|
000a0c e5810000 STR r0,[r1,#0] ; srcAddress
000a10 ea000004 B |L1.2600|
;;;336 }
;;;337 else
;;;338 {
;;;339 srcAddress=downloadAddress+4; //to discard the data head for the size
|L1.2580|
000a14 e51f044c LDR r0,|L1.1488|
000a18 e5900000 LDR r0,[r0,#0] ; downloadAddress
000a1c e2800004 ADD r0,r0,#4
000a20 e51f1454 LDR r1,|L1.1492|
000a24 e5810000 STR r0,[r1,#0] ; srcAddress
;;;340 }
;;;341
;;;342 InputAddresses(); //srcAddress,targetSize,targetOffset will be determined.
|L1.2600|
000a28 ebfffffe BL InputAddresses
;;;343 Uart_Printf("Source base address(0x31000000) = 0x%x\n",srcAddress);
000a2c e51f0460 LDR r0,|L1.1492|
000a30 e5901000 LDR r1,[r0,#0] ; srcAddress
000a34 e59f01bc LDR r0,|L1.3064|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -