📄 at45db161.txt
字号:
0002e4 d100 BNE |L1.744| ;334
0002e6 e7ea B |L1.702| ;336
|L1.744|
0002e8 04a8 LSLS r0,r5,#18 ;338
0002ea 0c05 LSRS r5,r0,#16 ;338
0002ec 4846 LDR r0,|L1.1032| ;339
0002ee 8980 LDRH r0,[r0,#0xc] ;339
0002f0 2101 MOVS r1,#1 ;339
0002f2 03c9 LSLS r1,r1,#15 ;339
0002f4 4388 BICS r0,r0,r1 ;339
0002f6 4944 LDR r1,|L1.1032| ;339
0002f8 8188 STRH r0,[r1,#0xc] ;339
0002fa 20e8 MOVS r0,#0xe8 ;340
0002fc f7ff fffe BL BPSI_DataSendReceive ;340
000300 002e MOVS r6,r5 ;341
000302 17e9 ASRS r1,r5,#31 ;341
000304 0e09 LSRS r1,r1,#24 ;341
000306 1949 ADDS r1,r1,r5 ;341
000308 0409 LSLS r1,r1,#16 ;341
00030a 0e08 LSRS r0,r1,#24 ;341
00030c f7ff fffe BL BPSI_DataSendReceive ;341
000310 002f MOVS r7,r5 ;342
000312 17e9 ASRS r1,r5,#31 ;342
000314 0e09 LSRS r1,r1,#24 ;342
000316 1949 ADDS r1,r1,r5 ;342
000318 1209 ASRS r1,r1,#8 ;342
00031a 0209 LSLS r1,r1,#8 ;342
00031c 1a69 SUBS r1,r5,r1 ;342
00031e 22fc MOVS r2,#0xfc ;342
000320 4011 ANDS r1,r1,r2 ;342
000322 0026 MOVS r6,r4 ;342
000324 17e2 ASRS r2,r4,#31 ;342
000326 0e12 LSRS r2,r2,#24 ;342
000328 1912 ADDS r2,r2,r4 ;342
00032a 1212 ASRS r2,r2,#8 ;342
00032c 23fc MOVS r3,#0xfc ;342
00032e 439a BICS r2,r2,r3 ;342
000330 4311 ORRS r1,r1,r2 ;342
000332 0608 LSLS r0,r1,#24 ;342
000334 0e00 LSRS r0,r0,#24 ;342
000336 f7ff fffe BL BPSI_DataSendReceive ;342
00033a 17e1 ASRS r1,r4,#31 ;344
00033c 0e09 LSRS r1,r1,#24 ;344
00033e 1909 ADDS r1,r1,r4 ;344
000340 1209 ASRS r1,r1,#8 ;344
000342 0209 LSLS r1,r1,#8 ;344
000344 1a61 SUBS r1,r4,r1 ;344
000346 0608 LSLS r0,r1,#24 ;344
000348 0e00 LSRS r0,r0,#24 ;344
00034a f7ff fffe BL BPSI_DataSendReceive ;344
00034e 2000 MOVS r0,#0 ;345
000350 f7ff fffe BL BPSI_DataSendReceive ;345
000354 2000 MOVS r0,#0 ;346
000356 f7ff fffe BL BPSI_DataSendReceive ;346
00035a 2000 MOVS r0,#0 ;347
00035c f7ff fffe BL BPSI_DataSendReceive ;347
000360 2000 MOVS r0,#0 ;348
000362 f7ff fffe BL BPSI_DataSendReceive ;348
000366 2000 MOVS r0,#0 ;349
000368 9000 STR r0,[sp,#0] ;349
00036a e00c B |L1.902| ;349
|L1.876|
00036c 20ff MOVS r0,#0xff ;351
00036e f7ff fffe BL BPSI_DataSendReceive ;351
000372 9903 LDR r1,[sp,#0xc] ;351
000374 7008 STRB r0,[r1,#0] ;351
000376 9803 LDR r0,[sp,#0xc] ;352
000378 1c40 ADDS r0,r0,#1 ;352
00037a 9003 STR r0,[sp,#0xc] ;352
00037c 9800 LDR r0,[sp,#0] ;349
00037e 1c40 ADDS r0,r0,#1 ;349
000380 0600 LSLS r0,r0,#24 ;349
000382 0e00 LSRS r0,r0,#24 ;349
000384 9000 STR r0,[sp,#0] ;349
|L1.902|
000386 9904 LDR r1,[sp,#0x10] ;349
000388 9800 LDR r0,[sp,#0] ;349
00038a 4288 CMP r0,r1 ;349
00038c dbee BLT |L1.876| ;349
00038e 481e LDR r0,|L1.1032| ;354
000390 8980 LDRH r0,[r0,#0xc] ;354
000392 2101 MOVS r1,#1 ;354
000394 03c9 LSLS r1,r1,#15 ;354
000396 4308 ORRS r0,r0,r1 ;354
000398 491b LDR r1,|L1.1032| ;354
00039a 8188 STRH r0,[r1,#0xc] ;354
00039c 2001 MOVS r0,#1 ;355
00039e e78e B |L1.702| ;355
ENDP
MainMemoryPageToBuffer1 PROC
;;;368 void MainMemoryPageToBuffer1( u16 PageNum )
;;;369 {
0003a0 b570 PUSH {r4-r6,lr}
0003a2 0004 MOVS r4,r0
;;;370 u8 i;
;;;371 AT45_Chip_Select_ENABLE;
0003a4 4818 LDR r0,|L1.1032|
0003a6 8980 LDRH r0,[r0,#0xc]
0003a8 2101 MOVS r1,#1
0003aa 03c9 LSLS r1,r1,#15
0003ac 4388 BICS r0,r0,r1
0003ae 4916 LDR r1,|L1.1032|
0003b0 8188 STRH r0,[r1,#0xc]
;;;372 PageNum <<= PAGE_RL;
0003b2 04a0 LSLS r0,r4,#18
0003b4 0c04 LSRS r4,r0,#16
;;;373 BPSI_DataSendReceive( MAIN_MEMORY_PAGE_TO_BUFFER1_COPY ); // 命令
0003b6 2053 MOVS r0,#0x53
0003b8 f7ff fffe BL BPSI_DataSendReceive
;;;374 BPSI_DataSendReceive( PageNum / 256 ); // 高7位地址
0003bc 0025 MOVS r5,r4
0003be 17e1 ASRS r1,r4,#31
0003c0 0e09 LSRS r1,r1,#24
0003c2 1909 ADDS r1,r1,r4
0003c4 0409 LSLS r1,r1,#16
0003c6 0e08 LSRS r0,r1,#24
0003c8 f7ff fffe BL BPSI_DataSendReceive
;;;375 BPSI_DataSendReceive( PageNum % 256 ); // 低6位地址
0003cc 17e1 ASRS r1,r4,#31
0003ce 0e09 LSRS r1,r1,#24
0003d0 1909 ADDS r1,r1,r4
0003d2 1209 ASRS r1,r1,#8
0003d4 0209 LSLS r1,r1,#8
0003d6 1a61 SUBS r1,r4,r1
0003d8 0608 LSLS r0,r1,#24
0003da 0e00 LSRS r0,r0,#24
0003dc f7ff fffe BL BPSI_DataSendReceive
;;;376 BPSI_DataSendReceive( 0 );
0003e0 2000 MOVS r0,#0
0003e2 f7ff fffe BL BPSI_DataSendReceive
;;;377 AT45_Chip_Select_DISABLE;
0003e6 4808 LDR r0,|L1.1032|
0003e8 8980 LDRH r0,[r0,#0xc]
0003ea 2101 MOVS r1,#1
0003ec 03c9 LSLS r1,r1,#15
0003ee 4308 ORRS r0,r0,r1
0003f0 4905 LDR r1,|L1.1032|
0003f2 8188 STRH r0,[r1,#0xc]
;;;378 i = 255;
0003f4 26ff MOVS r6,#0xff
;;;379 while ( IS_DATA_FLASH_BUSY() && ( --i ) );
0003f6 46c0 MOV r8,r8
|L1.1016|
0003f8 f7ff fffe BL AT45_Read_REG
0003fc 2180 MOVS r1,#0x80
0003fe 4208 TST r0,r1
000400 d10d BNE |L1.1054|
000402 e007 B |L1.1044|
|L1.1028|
000404 e0003000 DCD 0xe0003000
|L1.1032|
000408 e0004000 DCD 0xe0004000
|L1.1036|
00040c c000b000 DCD 0xc000b000
|L1.1040|
000410 000f4240 DCD 0x000f4240
|L1.1044|
000414 1e70 SUBS r0,r6,#1
000416 0600 LSLS r0,r0,#24
000418 0e00 LSRS r0,r0,#24
00041a 0006 MOVS r6,r0
00041c d1ec BNE |L1.1016|
;;;380 }
|L1.1054|
00041e bc70 POP {r4-r6}
000420 bc08 POP {r3}
000422 4718 BX r3
ENDP
ProgramBuffer1ToMainMemory PROC
;;;392 void ProgramBuffer1ToMainMemory( u16 PageNum )
;;;393 {
000424 b530 PUSH {r4,r5,lr}
000426 0004 MOVS r4,r0
;;;394 PageNum <<= PAGE_RL;
000428 04a0 LSLS r0,r4,#18
00042a 0c04 LSRS r4,r0,#16
;;;395 AT45_Chip_Select_ENABLE;
00042c 48f5 LDR r0,|L1.2052|
00042e 8980 LDRH r0,[r0,#0xc]
000430 2101 MOVS r1,#1
000432 03c9 LSLS r1,r1,#15
000434 4388 BICS r0,r0,r1
000436 49f3 LDR r1,|L1.2052|
000438 8188 STRH r0,[r1,#0xc]
;;;396 BPSI_DataSendReceive( BUFFER1_PROGRAM_WITH_ERASE ); // 命令
00043a 2083 MOVS r0,#0x83
00043c f7ff fffe BL BPSI_DataSendReceive
;;;397 BPSI_DataSendReceive( PageNum / 256 ); // 高7位地址
000440 0025 MOVS r5,r4
000442 17e1 ASRS r1,r4,#31
000444 0e09 LSRS r1,r1,#24
000446 1909 ADDS r1,r1,r4
000448 0409 LSLS r1,r1,#16
00044a 0e08 LSRS r0,r1,#24
00044c f7ff fffe BL BPSI_DataSendReceive
;;;398 BPSI_DataSendReceive( PageNum % 256 ); // 低6位地址
000450 17e1 ASRS r1,r4,#31
000452 0e09 LSRS r1,r1,#24
000454 1909 ADDS r1,r1,r4
000456 1209 ASRS r1,r1,#8
000458 0209 LSLS r1,r1,#8
00045a 1a61 SUBS r1,r4,r1
00045c 0608 LSLS r0,r1,#24
00045e 0e00 LSRS r0,r0,#24
000460 f7ff fffe BL BPSI_DataSendReceive
;;;399 BPSI_DataSendReceive( 0 );
000464 2000 MOVS r0,#0
000466 f7ff fffe BL BPSI_DataSendReceive
;;;400 AT45_Chip_Select_DISABLE;
00046a 48e6 LDR r0,|L1.2052|
00046c 8980 LDRH r0,[r0,#0xc]
00046e 2101 MOVS r1,#1
000470 03c9 LSLS r1,r1,#15
000472 4308 ORRS r0,r0,r1
000474 49e3 LDR r1,|L1.2052|
000476 8188 STRH r0,[r1,#0xc]
;;;401 }
000478 bc30 POP {r4,r5}
00047a bc08 POP {r3}
00047c 4718 BX r3
ENDP
WriteMultiByteToMainMemory PROC
;;;413 u8 WriteMultiByteToMainMemory( u16 PageNum, u16 SubAddress, u8 *MultiByte, u8 len )
;;;414 {
00047e b5ff PUSH {r0-r7,lr}
000480 0004 MOVS r4,r0
000482 000d MOVS r5,r1
000484 001e MOVS r6,r3
;;;415 u8 i;
;;;416
;;;417 if ( !len )
000486 2e00 CMP r6,#0
000488 d104 BNE |L1.1172|
;;;418 {
;;;419 return FALSE;
00048a 2000 MOVS r0,#0
;;;420 }
;;;421 //if (IS_DATA_FLASH_BUSY()) return FALSE;
;;;422 i = 255;
;;;423 while ( IS_DATA_FLASH_BUSY() && ( --i ) ); // 等待芯片空闲
;;;424 if ( i == 0)
;;;425 {
;;;426 //phase.Dsp_Pages = 1;return FALSE;
;;;427 return FALSE;
;;;428 } //test
;;;429
;;;430
;;;431 MainMemoryPageToBuffer1( PageNum ); // 把指定页读取到buffer1
;;;432 i = 255;
;;;433 while ( IS_DATA_FLASH_BUSY() && ( --i ) ); // 等待芯片空闲
;;;434 if ( !i )
;;;435 {
;;;436 //phase.Dsp_Pages = 1;return FALSE;
;;;437 return FALSE;
;;;438 } //test
;;;439 WriteMultiByteToBuffer1( SubAddress, MultiByte, len ); // 向buffer1写入数据
;;;440 ProgramBuffer1ToMainMemory( PageNum ); // 将buffer1的内容写入flash
;;;441 // phase.Dsp_Pages = 0;
;;;442 return TRUE;
;;;443 }
|L1.1164|
00048c b004 ADD sp,sp,#0x10
00048e bcf0 POP {r4-r7}
000490 bc08 POP {r3}
000492 4718 BX r3
|L1.1172|
000494 27ff MOVS r7,#0xff ;422
000496 46c0 MOV r8,r8 ;423
|L1.1176|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -