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

📄 eeinfo.cod

📁 Ep93XX TionProV2 BSP
💻 COD
📖 第 1 页 / 共 4 页
字号:
; 138  :     *GPIO_PADR = ulTemp | 0x80;

  001f8	e59d300c	 ldr         r3, [sp, #0xC]
  001fc	e3832080	 orr         r2, r3, #0x80
  00200	e3a03102	 mov         r3, #2, 2
  00204	e3833721	 orr         r3, r3, #0x21, 14
  00208	e5832000	 str         r2, [r3]

; 139  : }

  0020c	e28dd020	 add         sp, sp, #0x20
  00210	e49de004	 ldr         lr, [sp], #4
  00214	e12fff1e	 bx          lr
  00218		 |$L38294|
  00218	00000000	 DCD         |gBoardInformationValid|
  0021c	00000000	 DCD         |??_C@_0CD@OFKMODLF@EEINFO?3?5SPI?5Device?5Not?5detected?4@|
  00220	00000000	 DCD         |gBoardInformation|
  00224	00000000	 DCD         |??_C@_04GKLMKEAK@EMAC?$AA@|
  00228	00000000	 DCD         |??_C@_0BC@ECDBGCHG@Board?5Name?5?$DN?5?$CFs?$AN?6?$AA@|
  0022c	00000000	 DCD         |??_C@_0CB@HOJDAEME@MAC?5Address?5?$DN?50x?$CFx?0?50x?$CFx?0?50x?$CFx?$AN?6@|
  00230	00000000	 DCD         |??_C@_0BP@DOCAFDDJ@EEINFO?3?50x?$CFx?50x?$CFx?50x?$CFx?50x?$CFx?4?$AN?6?$AA@|
  00234	00000000	 DCD         |??_C@_0BJ@JMNHHKIF@EEINFO?3?5EEInformation?4?$AN?6?$AA@|
  00238		 |$M38290|

			 ENDP  ; |GetBoardInformation|


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

  00000			 AREA	 |.pdata$$InitializeSPI|, PDATA, SELECTION=5, ASSOC=|.text| { |InitializeSPI| } ; comdat associative
|$T38300| DCD	|$L38299|
	DCD	0x40003501
; Function compile flags: /Ods

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

  00000		 |InitializeSPI| PROC

; 148  : {

  00000		 |$L38299|
  00000	e24dd004	 sub         sp, sp, #4
  00004		 |$M38297|

; 149  :     ULONG ulTemp;
; 150  : 
; 151  :     //
; 152  :     // Set GPIO Pins 12 and 14 as outputs.
; 153  :     //
; 154  :     ulTemp = *GPIO_PBDDR;

  00004	e59f30c4	 ldr         r3, [pc, #0xC4]
  00008	e5933000	 ldr         r3, [r3]
  0000c	e58d3000	 str         r3, [sp]

; 155  :     *GPIO_PBDDR = ulTemp | 0x50;

  00010	e59d3000	 ldr         r3, [sp]
  00014	e3832050	 orr         r2, r3, #0x50
  00018	e59f30b0	 ldr         r3, [pc, #0xB0]
  0001c	e5832000	 str         r2, [r3]

; 156  : 
; 157  :     //
; 158  :     // Set GPIO pins 12 and 14 to high to disable the keyboard.
; 159  :     //
; 160  :     ulTemp = *GPIO_PBDR;

  00020	e59f30a4	 ldr         r3, [pc, #0xA4]
  00024	e5933000	 ldr         r3, [r3]
  00028	e58d3000	 str         r3, [sp]

; 161  :     *GPIO_PBDR = ulTemp | 0x50;

  0002c	e59d3000	 ldr         r3, [sp]
  00030	e3832050	 orr         r2, r3, #0x50
  00034	e59f3090	 ldr         r3, [pc, #0x90]
  00038	e5832000	 str         r2, [r3]

; 162  : 
; 163  :     //
; 164  :     // Set GPIO pins 7 as an output.
; 165  :     //
; 166  :     ulTemp = *GPIO_PADDR;

  0003c	e59f3084	 ldr         r3, [pc, #0x84]
  00040	e5933000	 ldr         r3, [r3]
  00044	e58d3000	 str         r3, [sp]

; 167  :     *GPIO_PADDR = ulTemp | 0x80;

  00048	e59d3000	 ldr         r3, [sp]
  0004c	e3832080	 orr         r2, r3, #0x80
  00050	e59f3070	 ldr         r3, [pc, #0x70]
  00054	e5832000	 str         r2, [r3]

; 168  : 
; 169  :     //
; 170  :     // Clear GPIO pins 7 to enable the frame line.
; 171  :     //
; 172  :     ulTemp = *GPIO_PADR;

  00058	e3a03102	 mov         r3, #2, 2
  0005c	e3833721	 orr         r3, r3, #0x21, 14
  00060	e5933000	 ldr         r3, [r3]
  00064	e58d3000	 str         r3, [sp]

; 173  :     *GPIO_PADR = ulTemp & ~0x80;

  00068	e59d2000	 ldr         r2, [sp]
  0006c	e3e03080	 mvn         r3, #0x80
  00070	e0022003	 and         r2, r2, r3
  00074	e3a03102	 mov         r3, #2, 2
  00078	e3833721	 orr         r3, r3, #0x21, 14
  0007c	e5832000	 str         r2, [r3]

; 174  : 
; 175  : 
; 176  :     //
; 177  :     // Program the CR0 register.
; 178  :     //        
; 179  :     *SPI_CR0 =  SPICR0_FRF_MOTOROLA | SPICR0_SPO |
; 180  :                 SPICR0_SPH | (8-1) | (SPICR0_SCR_MASK & 0x600);

  00080	e3a03102	 mov         r3, #2, 2
  00084	e383288a	 orr         r2, r3, #0x8A, 16
  00088	e3a03d1b	 mov         r3, #0x1B, 26
  0008c	e3833007	 orr         r3, r3, #7
  00090	e5823000	 str         r3, [r2]

; 181  : 
; 182  :     //
; 183  :     // Program the predivisor register.  This will give us an 
; 184  :     // 14.7Mhz / ((6 +1) * 2) = Approx 1Mhz.
; 185  :     //
; 186  :     // The Max is 20Mhz for the AT25F1024. 
; 187  :     //
; 188  :     *SPI_CPSR = 2;

  00094	e59f2028	 ldr         r2, [pc, #0x28]
  00098	e3a03002	 mov         r3, #2
  0009c	e5823000	 str         r3, [r2]

; 189  : 
; 190  :     //
; 191  :     // Program the CR1 register.  
; 192  :     //        
; 193  :     *SPI_CR1 =  0;

  000a0	e59f2018	 ldr         r2, [pc, #0x18]
  000a4	e3a03000	 mov         r3, #0
  000a8	e5823000	 str         r3, [r2]

; 194  : 
; 195  :     //
; 196  :     // Hit the enable bit
; 197  :     // 
; 198  :     *SPI_CR1 = SPICR1_SSE;

  000ac	e59f200c	 ldr         r2, [pc, #0xC]
  000b0	e3a03010	 mov         r3, #0x10
  000b4	e5823000	 str         r3, [r2]

; 199  : }

  000b8	e28dd004	 add         sp, sp, #4
  000bc	e12fff1e	 bx          lr
  000c0		 |$L38302|
  000c0	808a0004	 DCD         0x808a0004
  000c4	808a0010	 DCD         0x808a0010
  000c8	80840010	 DCD         0x80840010
  000cc	80840004	 DCD         0x80840004
  000d0	80840014	 DCD         0x80840014
  000d4		 |$M38298|

			 ENDP  ; |InitializeSPI|


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

  00000			 AREA	 |.pdata$$TestSPI|, PDATA, SELECTION=5, ASSOC=|.text| { |TestSPI| } ; comdat associative
|$T38309| DCD	|$L38308|
	DCD	0x40001c02
; Function compile flags: /Ods

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

  00000		 |TestSPI| PROC

; 213  : {

  00000		 |$L38308|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004	e24dd010	 sub         sp, sp, #0x10
  00008		 |$M38306|

; 214  :     ULONG ulManufacturer, ulDevice, ulTemp;
; 215  :     // ULONGLONG   ullStart, ullMax, ullCurrent;
; 216  : 
; 217  :     //
; 218  :     // Issue the command for reading the SPI Product ID register.
; 219  :     //
; 220  :     *SPI_DR = SPIEE_RDID;

  00008	e59f205c	 ldr         r2, [pc, #0x5C]
  0000c	e3a03015	 mov         r3, #0x15
  00010	e5823000	 str         r3, [r2]

; 221  :     *SPI_DR =  0;

  00014	e59f2050	 ldr         r2, [pc, #0x50]
  00018	e3a03000	 mov         r3, #0
  0001c	e5823000	 str         r3, [r2]

; 222  :     *SPI_DR =  0;

  00020	e59f2044	 ldr         r2, [pc, #0x44]
  00024	e3a03000	 mov         r3, #0
  00028	e5823000	 str         r3, [r2]

; 223  : 
; 224  :     //
; 225  :     // Wait until the transmit fifo is flushed.
; 226  :     //
; 227  :     WaitTillTransmitFifoEmpty();

  0002c	eb000000	 bl          WaitTillTransmitFifoEmpty

; 228  : 
; 229  :     //
; 230  :     // Read one byte and throw it away.
; 231  :     //
; 232  :     ulTemp = *SPI_DR;

  00030	e59f3034	 ldr         r3, [pc, #0x34]
  00034	e5933000	 ldr         r3, [r3]
  00038	e58d3008	 str         r3, [sp, #8]

; 233  : 
; 234  :     //
; 235  :     // Read the Manufacturers code.
; 236  :     //
; 237  :     ulManufacturer = *SPI_DR;

  0003c	e59f3028	 ldr         r3, [pc, #0x28]
  00040	e5933000	 ldr         r3, [r3]
  00044	e58d3000	 str         r3, [sp]

; 238  : 
; 239  :     //
; 240  :     // Read the device code.
; 241  :     //
; 242  :     ulDevice = *SPI_DR;

  00048	e59f301c	 ldr         r3, [pc, #0x1C]
  0004c	e5933000	 ldr         r3, [r3]
  00050	e58d3004	 str         r3, [sp, #4]

; 243  : 
; 244  :     //
; 245  :     // Check to see if the Manufacturer is atmel if so return 1.
; 246  :     //
; 247  :     //return (ulManufacturer ==0x1F);
; 248  : 	return TRUE;

  00054	e3a03001	 mov         r3, #1
  00058	e58d300c	 str         r3, [sp, #0xC]
  0005c	e59d000c	 ldr         r0, [sp, #0xC]

; 249  : }    

  00060	e28dd010	 add         sp, sp, #0x10
  00064	e49de004	 ldr         lr, [sp], #4
  00068	e12fff1e	 bx          lr
  0006c		 |$L38311|
  0006c	808a0008	 DCD         0x808a0008
  00070		 |$M38307|

			 ENDP  ; |TestSPI|

	EXPORT	|??_C@_0CE@EMPABGLD@EEINFO?3?5ClearReceiveFifo?5Timeout@| [ DATA ] ; `string'
	EXPORT	|??_C@_0CD@DCGJPODM@EEINFO?3?5ReadEEWord?51rst?5Timeout?4@| [ DATA ] ; `string'
	EXPORT	|??_C@_0CC@ENCMIEAA@EEINFO?3?5ReadEEWord?52nd?5Timeout?4?$AN@| [ DATA ] ; `string'
	EXPORT	|??_C@_0CL@KFPMGBGB@EEINFO?3?5Receive?5?$DN?50x?$CFx?0?5Transmit@| [ DATA ] ; `string'
	IMPORT	|GetSystemTimeInUSec|

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

  00000			 AREA	 |.pdata$$ReadEEWord|, PDATA, SELECTION=5, ASSOC=|.text| { |ReadEEWord| } ; comdat associative
|$T38320| DCD	|$L38319|
	DCD	0x4000d604

  00000			 AREA	 |.rdata| { |??_C@_0CL@KFPMGBGB@EEINFO?3?5Receive?5?$DN?50x?$CFx?0?5Transmit@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CL@KFPMGBGB@EEINFO?3?5Receive?5?$DN?50x?$CFx?0?5Transmit@| DCB "E"
	DCB	"EINFO: Receive = 0x%x, Transmit = 0x%x.", 0xd, 0xa, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_0CC@ENCMIEAA@EEINFO?3?5ReadEEWord?52nd?5Timeout?4?$AN@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CC@ENCMIEAA@EEINFO?3?5ReadEEWord?52nd?5Timeout?4?$AN@| DCB "EEINF"
	DCB	"O: ReadEEWord 2nd Timeout.", 0xd, 0xa, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_0CD@DCGJPODM@EEINFO?3?5ReadEEWord?51rst?5Timeout?4@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CD@DCGJPODM@EEINFO?3?5ReadEEWord?51rst?5Timeout?4@| DCB "EEINFO: "
	DCB	"ReadEEWord 1rst Timeout.", 0xd, 0xa, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_0CE@EMPABGLD@EEINFO?3?5ClearReceiveFifo?5Timeout@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CE@EMPABGLD@EEINFO?3?5ClearReceiveFifo?5Timeout@| DCB "EEINFO: Cl"
	DCB	"earReceiveFifo Timeout.", 0xd, 0xa, 0x0 ; `string'
; Function compile flags: /Ods

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

  00000		 |ReadEEWord| PROC

; 261  : {

  00000		 |$L38319|
  00000	e1a0c00d	 mov         r12, sp
  00004	e92d0007	 stmdb       sp!, {r0 - r2}
  00008	e92d5000	 stmdb       sp!, {r12, lr}
  0000c	e24dd088	 sub         sp, sp, #0x88
  00010		 |$M38317|

; 262  :     ULONG       ulCount, ulTransmitCount = 0;

  00010	e3a03000	 mov         r3, #0
  00014	e58d3018	 str         r3, [sp, #0x18]

; 263  :     ULONG       ulReceiveCount = 0;

  00018	e3a03000	 mov         r3, #0
  0001c	e58d3028	 str         r3, [sp, #0x28]

; 264  :     volatile    ULONG       ulTemp;
; 265  :     ULONGLONG   ullStart, ullMax, ullCurrent;
; 266  :     BOOL        bRet;
; 267  : 
; 268  : 
; 269  :     //
; 270  :     // Make sure that the receive fifo is clear.
; 271  :     //
; 272  :     bRet = ClearReceiveFifo();

  00020	eb000000	 bl          ClearReceiveFifo
  00024	e58d0030	 str         r0, [sp, #0x30]
  00028	e59d3030	 ldr         r3, [sp, #0x30]
  0002c	e58d301c	 str         r3, [sp, #0x1C]

; 273  :     if(!bRet)

  00030	e59d301c	 ldr         r3, [sp, #0x1C]
  00034	e3530000	 cmp         r3, #0
  00038	1a000004	 bne         |$L38188|

; 274  :     {
; 275  :         EdbgOutputDebugString("EEINFO: ClearReceiveFifo Timeout.\r\n");

  0003c	e59f0310	 ldr         r0, [pc, #0x310]
  00040	eb000000	 bl          EdbgOutputDebugString

; 276  :         return bRet;   

  00044	e59d301c	 ldr         r3, [sp, #0x1C]
  00048	e58d302c	 str         r3, [sp, #0x2C]
  0004c	ea0000b7	 b           |$L38179|
  00050		 |$L38188|

; 277  :     }
; 278  : 
; 279  :     //
; 280  :     // Send the Chip Read command.
; 281  :     //        
; 282  :     *SPI_DR = SPIEE_READ_LOW;

  00050	e59f22f0	 ldr         r2, [pc, #0x2F0]
  00054	e3a03003	 mov         r3, #3
  00058	e5823000	 str         r3, [r2]

; 283  : 
; 284  :     //
; 285  :     // Send the three byte address.
; 286  :     //
; 287  :     *SPI_DR = (ulAddress >> 16) & 0xFF;

  0005c	e59d3090	 ldr         r3, [sp, #0x90]
  00060	e1a03403	 mov         r3, r3, lsl #8
  00064	e1a02c23	 mov         r2, r3, lsr #24
  00068	e59f32d8	 ldr         r3, [pc, #0x2D8]
  0006c	e5832000	 str         r2, [r3]

; 288  :     *SPI_DR = (ulAddress >> 8) & 0xFF;

  00070	e59d3090	 ldr         r3, [sp, #0x90]
  00074	e1a03803	 mov         r3, r3, lsl #16
  00078	e1a02c23	 mov         r2, r3, lsr #24
  0007c	e59f32c4	 ldr         r3, [pc, #0x2C4]
  00080	e5832000	 str         r2, [r3]

; 289  :     *SPI_DR = ulAddress  & 0xFF;

  00084	e59d3090	 ldr         r3, [sp, #0x90]
  00088	e20320ff	 and         r2, r3, #0xFF
  0008c	e59f32b4	 ldr         r3, [pc, #0x2B4]
  00090	e5832000	 str         r2, [r3]

; 290  : 
; 291  :     //
; 292  :     // Wait until we send 3 bytes.
; 293  :     //
; 294  :     ulCount = 0;

  00094	e3a03000	 mov         r3, #0
  00098	e58d3020	 str         r3, [sp, #0x20]

; 295  :     ullStart = GetSystemTimeInUSec();

  0009c	eb000000	 bl          GetSystemTimeInUSec
  000a0	e58d103c	 str         r1, [sp, #0x3C]
  000a4	e58d0038	 str         r0, [sp, #0x38]
  000a8	e59d3038	 ldr         r3, [sp, #0x38]
  000ac	e58d3008	 str         r3, [sp, #8]
  000b0	e59d303c	 ldr         r3, [sp, #0x3C]
  000b4	e58d300c	 str         r3, [sp, #0xC]

; 296  :     ullMax   = ullStart + SPI_MINTIME + 3 * SPI_BYTETIME;

⌨️ 快捷键说明

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