📄 eeinfo.cod
字号:
000d0 e58d104c str r1, [sp, #0x4C]
000d4 e58d0048 str r0, [sp, #0x48]
000d8 e59d3048 ldr r3, [sp, #0x48]
000dc e58d3008 str r3, [sp, #8]
000e0 e59d304c ldr r3, [sp, #0x4C]
000e4 e58d300c str r3, [sp, #0xC]
; 405 : ullMax = ullStart + SPI_MINTIME;
000e8 e59d2008 ldr r2, [sp, #8]
000ec e59d300c ldr r3, [sp, #0xC]
000f0 e29220c8 adds r2, r2, #0xC8
000f4 e2a33000 adc r3, r3, #0
000f8 e58d2010 str r2, [sp, #0x10]
000fc e58d3014 str r3, [sp, #0x14]
00100 |$L38231|
; 406 : while( *SPI_SR & SPISR_BUSY)
00100 e59f317c ldr r3, [pc, #0x17C]
00104 e5933000 ldr r3, [r3]
00108 e3130010 tst r3, #0x10
0010c 0a00001f beq |$L38232|
; 407 : {
; 408 : //
; 409 : // Check to see if we timed out.
; 410 : //
; 411 : ullCurrent = GetSystemTimeInUSec();
00110 eb000000 bl GetSystemTimeInUSec
00114 e58d1054 str r1, [sp, #0x54]
00118 e58d0050 str r0, [sp, #0x50]
0011c e59d3050 ldr r3, [sp, #0x50]
00120 e58d3000 str r3, [sp]
00124 e59d3054 ldr r3, [sp, #0x54]
00128 e58d3004 str r3, [sp, #4]
; 412 : if(ullMax < ullCurrent)
0012c e59d3010 ldr r3, [sp, #0x10]
00130 e58d3058 str r3, [sp, #0x58]
00134 e59d3014 ldr r3, [sp, #0x14]
00138 e58d305c str r3, [sp, #0x5C]
0013c e59d3000 ldr r3, [sp]
00140 e58d3060 str r3, [sp, #0x60]
00144 e59d3004 ldr r3, [sp, #4]
00148 e58d3064 str r3, [sp, #0x64]
0014c e59d3058 ldr r3, [sp, #0x58]
00150 e58d3068 str r3, [sp, #0x68]
00154 e59d3060 ldr r3, [sp, #0x60]
00158 e58d306c str r3, [sp, #0x6C]
0015c e59d205c ldr r2, [sp, #0x5C]
00160 e59d3064 ldr r3, [sp, #0x64]
00164 e1520003 cmp r2, r3
00168 8a000007 bhi |$L38233|
0016c 3a000003 bcc |$L38326|
00170 e59d2068 ldr r2, [sp, #0x68]
00174 e59d306c ldr r3, [sp, #0x6C]
00178 e1520003 cmp r2, r3
0017c 2a000002 bcs |$L38233|
00180 |$L38326|
; 413 : {
; 414 : return(0);
00180 e3a03000 mov r3, #0
00184 e58d301c str r3, [sp, #0x1C]
00188 ea000038 b |$L38219|
0018c |$L38233|
; 415 : }
; 416 : }
0018c eaffffdb b |$L38231|
00190 |$L38232|
; 417 :
; 418 : //
; 419 : // Delay 200 uS. Just to make sure that the data is cleared
; 420 : // out the fifo.
; 421 : //
; 422 : DelayInuSec(200);
00190 e3a000c8 mov r0, #0xC8
00194 eb000000 bl DelayInuSec
; 423 :
; 424 : //
; 425 : // Read in all of the data that is in the fifo.
; 426 : //
; 427 : ullStart = GetSystemTimeInUSec();
00198 eb000000 bl GetSystemTimeInUSec
0019c e58d1074 str r1, [sp, #0x74]
001a0 e58d0070 str r0, [sp, #0x70]
001a4 e59d3070 ldr r3, [sp, #0x70]
001a8 e58d3008 str r3, [sp, #8]
001ac e59d3074 ldr r3, [sp, #0x74]
001b0 e58d300c str r3, [sp, #0xC]
; 428 : ullMax = ullStart + SPI_MINTIME;
001b4 e59d2008 ldr r2, [sp, #8]
001b8 e59d300c ldr r3, [sp, #0xC]
001bc e29220c8 adds r2, r2, #0xC8
001c0 e2a33000 adc r3, r3, #0
001c4 e58d2010 str r2, [sp, #0x10]
001c8 e58d3014 str r3, [sp, #0x14]
001cc |$L38236|
; 429 : while( *SPI_SR & SPISR_RNE)
001cc e59f30b0 ldr r3, [pc, #0xB0]
001d0 e5933000 ldr r3, [r3]
001d4 e3130004 tst r3, #4
001d8 0a000022 beq |$L38237|
; 430 : {
; 431 : ulTemp = *SPI_DR;
001dc e59f309c ldr r3, [pc, #0x9C]
001e0 e5933000 ldr r3, [r3]
001e4 e58d3018 str r3, [sp, #0x18]
; 432 : //
; 433 : // Check to see if we timed out.
; 434 : //
; 435 : ullCurrent = GetSystemTimeInUSec();
001e8 eb000000 bl GetSystemTimeInUSec
001ec e58d107c str r1, [sp, #0x7C]
001f0 e58d0078 str r0, [sp, #0x78]
001f4 e59d3078 ldr r3, [sp, #0x78]
001f8 e58d3000 str r3, [sp]
001fc e59d307c ldr r3, [sp, #0x7C]
00200 e58d3004 str r3, [sp, #4]
; 436 : if(ullMax < ullCurrent)
00204 e59d3010 ldr r3, [sp, #0x10]
00208 e58d3080 str r3, [sp, #0x80]
0020c e59d3014 ldr r3, [sp, #0x14]
00210 e58d3084 str r3, [sp, #0x84]
00214 e59d3000 ldr r3, [sp]
00218 e58d3088 str r3, [sp, #0x88]
0021c e59d3004 ldr r3, [sp, #4]
00220 e58d308c str r3, [sp, #0x8C]
00224 e59d3080 ldr r3, [sp, #0x80]
00228 e58d3090 str r3, [sp, #0x90]
0022c e59d3088 ldr r3, [sp, #0x88]
00230 e58d3094 str r3, [sp, #0x94]
00234 e59d2084 ldr r2, [sp, #0x84]
00238 e59d308c ldr r3, [sp, #0x8C]
0023c e1520003 cmp r2, r3
00240 8a000007 bhi |$L38239|
00244 3a000003 bcc |$L38327|
00248 e59d2090 ldr r2, [sp, #0x90]
0024c e59d3094 ldr r3, [sp, #0x94]
00250 e1520003 cmp r2, r3
00254 2a000002 bcs |$L38239|
00258 |$L38327|
; 437 : {
; 438 : return(0);
00258 e3a03000 mov r3, #0
0025c e58d301c str r3, [sp, #0x1C]
00260 ea000002 b |$L38219|
00264 |$L38239|
; 439 : }
; 440 : }
00264 eaffffd8 b |$L38236|
00268 |$L38237|
; 441 : return(1);
00268 e3a03001 mov r3, #1
0026c e58d301c str r3, [sp, #0x1C]
00270 |$L38219|
; 396 : {
; 397 : return(0);
00270 e59d001c ldr r0, [sp, #0x1C]
; 442 : }
00274 e28dd098 add sp, sp, #0x98
00278 e49de004 ldr lr, [sp], #4
0027c e12fff1e bx lr
00280 |$L38334|
00280 808a0008 DCD 0x808a0008
00284 808a000c DCD 0x808a000c
00288 |$M38330|
ENDP ; |ClearReceiveFifo|
00000 AREA |.text| { |WaitTillTransmitFifoEmpty| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$WaitTillTransmitFifoEmpty|, PDATA, SELECTION=5, ASSOC=|.text| { |WaitTillTransmitFifoEmpty| } ; comdat associative
|$T38343| DCD |$L38342|
DCD 0x40006d02
; Function compile flags: /Ods
00000 AREA |.text| { |WaitTillTransmitFifoEmpty| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |WaitTillTransmitFifoEmpty| PROC
; 455 : {
00000 |$L38342|
00000 e52de004 str lr, [sp, #-4]!
00004 e24dd070 sub sp, sp, #0x70
00008 |$M38340|
; 456 : ULONGLONG ullStart, ullCurrent, ullMax;
; 457 :
; 458 : //
; 459 : // Clear the transmit fifo.
; 460 : //
; 461 : ullStart = GetSystemTimeInUSec();
00008 eb000000 bl GetSystemTimeInUSec
0000c e58d1024 str r1, [sp, #0x24]
00010 e58d0020 str r0, [sp, #0x20]
00014 e59d3020 ldr r3, [sp, #0x20]
00018 e58d3008 str r3, [sp, #8]
0001c e59d3024 ldr r3, [sp, #0x24]
00020 e58d300c str r3, [sp, #0xC]
; 462 : ullMax = ullStart + SPI_MINTIME;
00024 e59d2008 ldr r2, [sp, #8]
00028 e59d300c ldr r3, [sp, #0xC]
0002c e29220c8 adds r2, r2, #0xC8
00030 e2a33000 adc r3, r3, #0
00034 e58d2010 str r2, [sp, #0x10]
00038 e58d3014 str r3, [sp, #0x14]
0003c |$L38247|
; 463 : while( !(*SPI_SR & SPISR_TFE))
0003c e59f316c ldr r3, [pc, #0x16C]
00040 e5933000 ldr r3, [r3]
00044 e3130001 tst r3, #1
00048 1a00001f bne |$L38248|
; 464 : {
; 465 : //
; 466 : // Check to see if we timed out.
; 467 : //
; 468 : ullCurrent = GetSystemTimeInUSec();
0004c eb000000 bl GetSystemTimeInUSec
00050 e58d102c str r1, [sp, #0x2C]
00054 e58d0028 str r0, [sp, #0x28]
00058 e59d3028 ldr r3, [sp, #0x28]
0005c e58d3000 str r3, [sp]
00060 e59d302c ldr r3, [sp, #0x2C]
00064 e58d3004 str r3, [sp, #4]
; 469 : if(ullMax < ullCurrent)
00068 e59d3010 ldr r3, [sp, #0x10]
0006c e58d3030 str r3, [sp, #0x30]
00070 e59d3014 ldr r3, [sp, #0x14]
00074 e58d3034 str r3, [sp, #0x34]
00078 e59d3000 ldr r3, [sp]
0007c e58d3038 str r3, [sp, #0x38]
00080 e59d3004 ldr r3, [sp, #4]
00084 e58d303c str r3, [sp, #0x3C]
00088 e59d3030 ldr r3, [sp, #0x30]
0008c e58d3040 str r3, [sp, #0x40]
00090 e59d3038 ldr r3, [sp, #0x38]
00094 e58d3044 str r3, [sp, #0x44]
00098 e59d2034 ldr r2, [sp, #0x34]
0009c e59d303c ldr r3, [sp, #0x3C]
000a0 e1520003 cmp r2, r3
000a4 8a000007 bhi |$L38249|
000a8 3a000003 bcc |$L38337|
000ac e59d2040 ldr r2, [sp, #0x40]
000b0 e59d3044 ldr r3, [sp, #0x44]
000b4 e1520003 cmp r2, r3
000b8 2a000002 bcs |$L38249|
000bc |$L38337|
; 470 : {
; 471 : return(0);
000bc e3a03000 mov r3, #0
000c0 e58d3018 str r3, [sp, #0x18]
000c4 ea000035 b |$L38241|
000c8 |$L38249|
; 472 : }
; 473 : }
000c8 eaffffdb b |$L38247|
000cc |$L38248|
; 474 :
; 475 : //
; 476 : // Make sure that data is not actively going out.
; 477 : //
; 478 : ullStart = GetSystemTimeInUSec();
000cc eb000000 bl GetSystemTimeInUSec
000d0 e58d104c str r1, [sp, #0x4C]
000d4 e58d0048 str r0, [sp, #0x48]
000d8 e59d3048 ldr r3, [sp, #0x48]
000dc e58d3008 str r3, [sp, #8]
000e0 e59d304c ldr r3, [sp, #0x4C]
000e4 e58d300c str r3, [sp, #0xC]
; 479 : ullMax = ullStart + SPI_MINTIME;
000e8 e59d2008 ldr r2, [sp, #8]
000ec e59d300c ldr r3, [sp, #0xC]
000f0 e29220c8 adds r2, r2, #0xC8
000f4 e2a33000 adc r3, r3, #0
000f8 e58d2010 str r2, [sp, #0x10]
000fc e58d3014 str r3, [sp, #0x14]
00100 |$L38252|
; 480 : while( *SPI_SR & SPISR_BUSY)
00100 e59f30a8 ldr r3, [pc, #0xA8]
00104 e5933000 ldr r3, [r3]
00108 e3130010 tst r3, #0x10
0010c 0a00001f beq |$L38253|
; 481 : {
; 482 : //
; 483 : // Check to see if we timed out.
; 484 : //
; 485 : ullCurrent = GetSystemTimeInUSec();
00110 eb000000 bl GetSystemTimeInUSec
00114 e58d1054 str r1, [sp, #0x54]
00118 e58d0050 str r0, [sp, #0x50]
0011c e59d3050 ldr r3, [sp, #0x50]
00120 e58d3000 str r3, [sp]
00124 e59d3054 ldr r3, [sp, #0x54]
00128 e58d3004 str r3, [sp, #4]
; 486 : if(ullMax < ullCurrent)
0012c e59d3010 ldr r3, [sp, #0x10]
00130 e58d3058 str r3, [sp, #0x58]
00134 e59d3014 ldr r3, [sp, #0x14]
00138 e58d305c str r3, [sp, #0x5C]
0013c e59d3000 ldr r3, [sp]
00140 e58d3060 str r3, [sp, #0x60]
00144 e59d3004 ldr r3, [sp, #4]
00148 e58d3064 str r3, [sp, #0x64]
0014c e59d3058 ldr r3, [sp, #0x58]
00150 e58d3068 str r3, [sp, #0x68]
00154 e59d3060 ldr r3, [sp, #0x60]
00158 e58d306c str r3, [sp, #0x6C]
0015c e59d205c ldr r2, [sp, #0x5C]
00160 e59d3064 ldr r3, [sp, #0x64]
00164 e1520003 cmp r2, r3
00168 8a000007 bhi |$L38254|
0016c 3a000003 bcc |$L38338|
00170 e59d2068 ldr r2, [sp, #0x68]
00174 e59d306c ldr r3, [sp, #0x6C]
00178 e1520003 cmp r2, r3
0017c 2a000002 bcs |$L38254|
00180 |$L38338|
; 487 : {
; 488 : return(0);
00180 e3a03000 mov r3, #0
00184 e58d3018 str r3, [sp, #0x18]
00188 ea000004 b |$L38241|
0018c |$L38254|
; 489 : }
; 490 : }
0018c eaffffdb b |$L38252|
00190 |$L38253|
; 491 :
; 492 : //
; 493 : // Delay 200 uS. Just to make sure that the data is cleared
; 494 : // out the fifo.
; 495 : //
; 496 : DelayInuSec(200);
00190 e3a000c8 mov r0, #0xC8
00194 eb000000 bl DelayInuSec
; 497 :
; 498 : return(1);
00198 e3a03001 mov r3, #1
0019c e58d3018 str r3, [sp, #0x18]
001a0 |$L38241|
; 470 : {
; 471 : return(0);
001a0 e59d0018 ldr r0, [sp, #0x18]
; 499 : }
001a4 e28dd070 add sp, sp, #0x70
001a8 e49de004 ldr lr, [sp], #4
001ac e12fff1e bx lr
001b0 |$L38345|
001b0 808a000c DCD 0x808a000c
001b4 |$M38341|
ENDP ; |WaitTillTransmitFifoEmpty|
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -