⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 eeinfo.cod

📁 Ep93XX TionProV2 BSP
💻 COD
📖 第 1 页 / 共 4 页
字号:
  000b8	e59d2008	 ldr         r2, [sp, #8]
  000bc	e59d300c	 ldr         r3, [sp, #0xC]
  000c0	e29220e6	 adds        r2, r2, #0xE6
  000c4	e2a33000	 adc         r3, r3, #0
  000c8	e58d2010	 str         r2, [sp, #0x10]
  000cc	e58d3014	 str         r3, [sp, #0x14]
  000d0		 |$L38194|

; 297  : 
; 298  :     do
; 299  :     {
; 300  :         //
; 301  :         // Check to see if there are bytes to receive.
; 302  :         //
; 303  :         if(*SPI_SR & SPISR_RNE)

  000d0	e59f3274	 ldr         r3, [pc, #0x274]
  000d4	e5933000	 ldr         r3, [r3]
  000d8	e3130004	 tst         r3, #4
  000dc	0a000005	 beq         |$L38198|

; 304  :         {
; 305  :             ulTemp = *SPI_DR;

  000e0	e59f3260	 ldr         r3, [pc, #0x260]
  000e4	e5933000	 ldr         r3, [r3]
  000e8	e58d3024	 str         r3, [sp, #0x24]

; 306  :             ulCount++;

  000ec	e59d3020	 ldr         r3, [sp, #0x20]
  000f0	e2833001	 add         r3, r3, #1
  000f4	e58d3020	 str         r3, [sp, #0x20]
  000f8		 |$L38198|

; 307  :         }
; 308  : 
; 309  :         //
; 310  :         // Check to see if we can transmit data so that we can receive.
; 311  :         //
; 312  :         if(ulTransmitCount <ulLength && (*SPI_SR & SPISR_TNF))

  000f8	e59d2018	 ldr         r2, [sp, #0x18]
  000fc	e59d3094	 ldr         r3, [sp, #0x94]
  00100	e1520003	 cmp         r2, r3
  00104	2a000009	 bcs         |$L38201|
  00108	e59f323c	 ldr         r3, [pc, #0x23C]
  0010c	e5933000	 ldr         r3, [r3]
  00110	e3130002	 tst         r3, #2
  00114	0a000005	 beq         |$L38201|

; 313  :         {
; 314  :             *SPI_DR = 0;

  00118	e59f2228	 ldr         r2, [pc, #0x228]
  0011c	e3a03000	 mov         r3, #0
  00120	e5823000	 str         r3, [r2]

; 315  :             ulTransmitCount++;

  00124	e59d3018	 ldr         r3, [sp, #0x18]
  00128	e2833001	 add         r3, r3, #1
  0012c	e58d3018	 str         r3, [sp, #0x18]
  00130		 |$L38201|

; 316  :         }                
; 317  : 
; 318  :         //
; 319  :         // Have a timeout so the system does not get stuck.
; 320  :         //
; 321  :         ullCurrent = GetSystemTimeInUSec();

  00130	eb000000	 bl          GetSystemTimeInUSec
  00134	e58d1044	 str         r1, [sp, #0x44]
  00138	e58d0040	 str         r0, [sp, #0x40]
  0013c	e59d3040	 ldr         r3, [sp, #0x40]
  00140	e58d3000	 str         r3, [sp]
  00144	e59d3044	 ldr         r3, [sp, #0x44]
  00148	e58d3004	 str         r3, [sp, #4]

; 322  :         if(ullMax < ullCurrent)

  0014c	e59d3010	 ldr         r3, [sp, #0x10]
  00150	e58d3048	 str         r3, [sp, #0x48]
  00154	e59d3014	 ldr         r3, [sp, #0x14]
  00158	e58d304c	 str         r3, [sp, #0x4C]
  0015c	e59d3000	 ldr         r3, [sp]
  00160	e58d3050	 str         r3, [sp, #0x50]
  00164	e59d3004	 ldr         r3, [sp, #4]
  00168	e58d3054	 str         r3, [sp, #0x54]
  0016c	e59d3048	 ldr         r3, [sp, #0x48]
  00170	e58d3058	 str         r3, [sp, #0x58]
  00174	e59d3050	 ldr         r3, [sp, #0x50]
  00178	e58d305c	 str         r3, [sp, #0x5C]
  0017c	e59d204c	 ldr         r2, [sp, #0x4C]
  00180	e59d3054	 ldr         r3, [sp, #0x54]
  00184	e1520003	 cmp         r2, r3
  00188	8a000009	 bhi         |$L38203|
  0018c	3a000003	 bcc         |$L38314|
  00190	e59d2058	 ldr         r2, [sp, #0x58]
  00194	e59d305c	 ldr         r3, [sp, #0x5C]
  00198	e1520003	 cmp         r2, r3
  0019c	2a000004	 bcs         |$L38203|
  001a0		 |$L38314|

; 323  :         {
; 324  :             EdbgOutputDebugString("EEINFO: ReadEEWord 1rst Timeout.\r\n");

  001a0	e59f01a8	 ldr         r0, [pc, #0x1A8]
  001a4	eb000000	 bl          EdbgOutputDebugString

; 325  :             return(0);

  001a8	e3a03000	 mov         r3, #0
  001ac	e58d302c	 str         r3, [sp, #0x2C]
  001b0	ea00005e	 b           |$L38179|
  001b4		 |$L38203|

; 326  :         }
; 327  : 
; 328  :     } while(ulCount < 4);

  001b4	e59d3020	 ldr         r3, [sp, #0x20]
  001b8	e3530004	 cmp         r3, #4
  001bc	3affffc3	 bcc         |$L38194|

; 329  : 
; 330  :     //
; 331  :     // Read in the rest of the data.
; 332  :     //
; 333  :     ullStart    = GetSystemTimeInUSec();

  001c0	eb000000	 bl          GetSystemTimeInUSec
  001c4	e58d1064	 str         r1, [sp, #0x64]
  001c8	e58d0060	 str         r0, [sp, #0x60]
  001cc	e59d3060	 ldr         r3, [sp, #0x60]
  001d0	e58d3008	 str         r3, [sp, #8]
  001d4	e59d3064	 ldr         r3, [sp, #0x64]
  001d8	e58d300c	 str         r3, [sp, #0xC]

; 334  :     ullMax      = ullStart + SPI_MINTIME + ulLength * SPI_BYTETIME;

  001dc	e59d2008	 ldr         r2, [sp, #8]
  001e0	e59d300c	 ldr         r3, [sp, #0xC]
  001e4	e29200c8	 adds        r0, r2, #0xC8
  001e8	e2a31000	 adc         r1, r3, #0
  001ec	e59d2094	 ldr         r2, [sp, #0x94]
  001f0	e3a0300a	 mov         r3, #0xA
  001f4	e0030392	 mul         r3, r2, r3
  001f8	e0902003	 adds        r2, r0, r3
  001fc	e2a13000	 adc         r3, r1, #0
  00200	e58d2010	 str         r2, [sp, #0x10]
  00204	e58d3014	 str         r3, [sp, #0x14]

; 335  :     ulCount     = 0;

  00208	e3a03000	 mov         r3, #0
  0020c	e58d3020	 str         r3, [sp, #0x20]
  00210		 |$L38205|

; 336  :     do
; 337  :     {
; 338  :         //
; 339  :         // Check to see if there are bytes to receive.
; 340  :         //
; 341  :         if(*SPI_SR & SPISR_RNE)

  00210	e59f3134	 ldr         r3, [pc, #0x134]
  00214	e5933000	 ldr         r3, [r3]
  00218	e3130004	 tst         r3, #4
  0021c	0a00000a	 beq         |$L38209|

; 342  :         {
; 343  :             pucData[ulCount++] = (UCHAR)(*SPI_DR & 0xFF);

  00220	e59f3120	 ldr         r3, [pc, #0x120]
  00224	e5933000	 ldr         r3, [r3]
  00228	e20330ff	 and         r3, r3, #0xFF
  0022c	e20310ff	 and         r1, r3, #0xFF
  00230	e59d2098	 ldr         r2, [sp, #0x98]
  00234	e59d3020	 ldr         r3, [sp, #0x20]
  00238	e0823003	 add         r3, r2, r3
  0023c	e5c31000	 strb        r1, [r3]
  00240	e59d3020	 ldr         r3, [sp, #0x20]
  00244	e2833001	 add         r3, r3, #1
  00248	e58d3020	 str         r3, [sp, #0x20]
  0024c		 |$L38209|

; 344  :         }
; 345  : 
; 346  :         //
; 347  :         // Check to see if we can transmit data so that we can receive.
; 348  :         //
; 349  :         if(ulTransmitCount <ulLength && (*SPI_SR & SPISR_TNF))

  0024c	e59d2018	 ldr         r2, [sp, #0x18]
  00250	e59d3094	 ldr         r3, [sp, #0x94]
  00254	e1520003	 cmp         r2, r3
  00258	2a000009	 bcs         |$L38213|
  0025c	e59f30e8	 ldr         r3, [pc, #0xE8]
  00260	e5933000	 ldr         r3, [r3]
  00264	e3130002	 tst         r3, #2
  00268	0a000005	 beq         |$L38213|

; 350  :         {
; 351  :             *SPI_DR = 0;

  0026c	e59f20d4	 ldr         r2, [pc, #0xD4]
  00270	e3a03000	 mov         r3, #0
  00274	e5823000	 str         r3, [r2]

; 352  :             ulTransmitCount++;

  00278	e59d3018	 ldr         r3, [sp, #0x18]
  0027c	e2833001	 add         r3, r3, #1
  00280	e58d3018	 str         r3, [sp, #0x18]
  00284		 |$L38213|

; 353  :         }                
; 354  : 
; 355  :         //
; 356  :         // Have a timeout so the system does not get stuck.
; 357  :         //
; 358  :         ullCurrent = GetSystemTimeInUSec();

  00284	eb000000	 bl          GetSystemTimeInUSec
  00288	e58d106c	 str         r1, [sp, #0x6C]
  0028c	e58d0068	 str         r0, [sp, #0x68]
  00290	e59d3068	 ldr         r3, [sp, #0x68]
  00294	e58d3000	 str         r3, [sp]
  00298	e59d306c	 ldr         r3, [sp, #0x6C]
  0029c	e58d3004	 str         r3, [sp, #4]

; 359  :         if(ullMax < ullCurrent)

  002a0	e59d3010	 ldr         r3, [sp, #0x10]
  002a4	e58d3070	 str         r3, [sp, #0x70]
  002a8	e59d3014	 ldr         r3, [sp, #0x14]
  002ac	e58d3074	 str         r3, [sp, #0x74]
  002b0	e59d3000	 ldr         r3, [sp]
  002b4	e58d3078	 str         r3, [sp, #0x78]
  002b8	e59d3004	 ldr         r3, [sp, #4]
  002bc	e58d307c	 str         r3, [sp, #0x7C]
  002c0	e59d3070	 ldr         r3, [sp, #0x70]
  002c4	e58d3080	 str         r3, [sp, #0x80]
  002c8	e59d3078	 ldr         r3, [sp, #0x78]
  002cc	e58d3084	 str         r3, [sp, #0x84]
  002d0	e59d2074	 ldr         r2, [sp, #0x74]
  002d4	e59d307c	 ldr         r3, [sp, #0x7C]
  002d8	e1520003	 cmp         r2, r3
  002dc	8a00000d	 bhi         |$L38215|
  002e0	3a000003	 bcc         |$L38315|
  002e4	e59d2080	 ldr         r2, [sp, #0x80]
  002e8	e59d3084	 ldr         r3, [sp, #0x84]
  002ec	e1520003	 cmp         r2, r3
  002f0	2a000008	 bcs         |$L38215|
  002f4		 |$L38315|

; 360  :         {
; 361  :             EdbgOutputDebugString("EEINFO: ReadEEWord 2nd Timeout.\r\n");

  002f4	e59f0048	 ldr         r0, [pc, #0x48]
  002f8	eb000000	 bl          EdbgOutputDebugString

; 362  :             EdbgOutputDebugString("EEINFO: Receive = 0x%x, Transmit = 0x%x.\r\n", ulCount, ulTransmitCount);

  002fc	e59d2018	 ldr         r2, [sp, #0x18]
  00300	e59d1020	 ldr         r1, [sp, #0x20]
  00304	e59f0034	 ldr         r0, [pc, #0x34]
  00308	eb000000	 bl          EdbgOutputDebugString

; 363  :             return(0);

  0030c	e3a03000	 mov         r3, #0
  00310	e58d302c	 str         r3, [sp, #0x2C]
  00314	ea000005	 b           |$L38179|
  00318		 |$L38215|

; 364  :         }
; 365  :     } while(ulCount < ulLength);

  00318	e59d2020	 ldr         r2, [sp, #0x20]
  0031c	e59d3094	 ldr         r3, [sp, #0x94]
  00320	e1520003	 cmp         r2, r3
  00324	3affffb9	 bcc         |$L38205|

; 366  :     return (1);

  00328	e3a03001	 mov         r3, #1
  0032c	e58d302c	 str         r3, [sp, #0x2C]
  00330		 |$L38179|

; 276  :         return bRet;   

  00330	e59d002c	 ldr         r0, [sp, #0x2C]

; 367  : }

  00334	e28dd088	 add         sp, sp, #0x88
  00338	e89d6000	 ldmia       sp, {sp, lr}
  0033c	e12fff1e	 bx          lr
  00340		 |$L38322|
  00340	00000000	 DCD         |??_C@_0CL@KFPMGBGB@EEINFO?3?5Receive?5?$DN?50x?$CFx?0?5Transmit@|
  00344	00000000	 DCD         |??_C@_0CC@ENCMIEAA@EEINFO?3?5ReadEEWord?52nd?5Timeout?4?$AN@|
  00348	808a0008	 DCD         0x808a0008
  0034c	808a000c	 DCD         0x808a000c
  00350	00000000	 DCD         |??_C@_0CD@DCGJPODM@EEINFO?3?5ReadEEWord?51rst?5Timeout?4@|
  00354	00000000	 DCD         |??_C@_0CE@EMPABGLD@EEINFO?3?5ClearReceiveFifo?5Timeout@|
  00358		 |$M38318|

			 ENDP  ; |ReadEEWord|

	IMPORT	|DelayInuSec|

  00000			 AREA	 |.text| { |ClearReceiveFifo| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$ClearReceiveFifo|, PDATA, SELECTION=5, ASSOC=|.text| { |ClearReceiveFifo| } ; comdat associative
|$T38332| DCD	|$L38331|
	DCD	0x4000a202
; Function compile flags: /Ods

  00000			 AREA	 |.text| { |ClearReceiveFifo| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |ClearReceiveFifo| PROC

; 380  : {

  00000		 |$L38331|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004	e24dd098	 sub         sp, sp, #0x98
  00008		 |$M38329|

; 381  :     ULONG ulTemp;
; 382  :     ULONGLONG ullStart, ullCurrent, ullMax;
; 383  :     
; 384  :     //
; 385  :     // Clear the transmit fifo.
; 386  :     //
; 387  :     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]

; 388  :     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		 |$L38226|

; 389  :     while( !(*SPI_SR & SPISR_TFE))

  0003c	e59f3240	 ldr         r3, [pc, #0x240]
  00040	e5933000	 ldr         r3, [r3]
  00044	e3130001	 tst         r3, #1
  00048	1a00001f	 bne         |$L38227|

; 390  :     {
; 391  :         //
; 392  :         // Check to see if we timed out.
; 393  :         //
; 394  :         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]

; 395  :         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         |$L38228|
  000a8	3a000003	 bcc         |$L38325|
  000ac	e59d2040	 ldr         r2, [sp, #0x40]
  000b0	e59d3044	 ldr         r3, [sp, #0x44]
  000b4	e1520003	 cmp         r2, r3
  000b8	2a000002	 bcs         |$L38228|
  000bc		 |$L38325|

; 396  :         {
; 397  :             return(0);

  000bc	e3a03000	 mov         r3, #0
  000c0	e58d301c	 str         r3, [sp, #0x1C]
  000c4	ea000069	 b           |$L38219|
  000c8		 |$L38228|

; 398  :         }
; 399  :     }

  000c8	eaffffdb	 b           |$L38226|
  000cc		 |$L38227|

; 400  : 
; 401  :     //
; 402  :     // Make sure that data is not actively going out.
; 403  :     //
; 404  :     ullStart = GetSystemTimeInUSec();

  000cc	eb000000	 bl          GetSystemTimeInUSec

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -