EP9315-IB Cirrus Logic Inc, EP9315-IB Datasheet - Page 8
![IC ARM920T MCU 200MHZ 352-PBGA](/photos/12/23/122388/ep9315-ib_sml.jpg)
EP9315-IB
Manufacturer Part Number
EP9315-IB
Description
IC ARM920T MCU 200MHZ 352-PBGA
Manufacturer
Cirrus Logic Inc
Series
EP9r
Specifications of EP9315-IB
Core Processor
ARM9
Core Size
16/32-Bit
Speed
200MHz
Connectivity
EBI/EMI, EIDE, Ethernet, I²C, IrDA, Keypad/Touchscreen, PCMCIA, SPI, UART/USART, USB
Peripherals
AC'97, DMA, I²:S, LCD, LED, MaverickKey, POR, PWM, WDT
Number Of I /o
16
Program Memory Type
ROMless
Ram Size
32K x 8
Voltage - Supply (vcc/vdd)
1.65 V ~ 3.6 V
Data Converters
A/D 8x12b
Oscillator Type
External
Operating Temperature
-40°C ~ 85°C
Package / Case
352-BGA
Processor Series
EP93xx
Core
ARM920T
Data Bus Width
32 bit
3rd Party Development Tools
MDK-ARM, RL-ARM, ULINK2
Development Tools By Supplier
EDB9315A-Z
For Use With
598-1144 - KIT DEVELOPMENT EP9315 ARM9
Lead Free Status / RoHS Status
Contains lead / RoHS non-compliant
Eeprom Size
-
Program Memory Size
-
Lead Free Status / Rohs Status
No
Other names
598-1262
Available stocks
Company
Part Number
Manufacturer
Quantity
Price
Company:
Part Number:
EP9315-IBZ
Manufacturer:
CIRRUS
Quantity:
13
Company:
Part Number:
EP9315-IBZ
Manufacturer:
CIRRUS
Quantity:
347
8
Workaround
The simplest workaround is to insure that no two such instructions ever appear in the instruction stream
consecutively. Specifically, a conditional coprocessor instruction should not precede a load/store 64/double.
Simply inserting another ARM or coprocessor instruction accomplishes this:
Cases where branches may be taken also needs to be handled. In this particular case, the first instruction
is moved earlier in the instruction stream by exchanging it with the previous one:
To avoid this error when entering exception and interrupt handlers, the first instruction in an interrupt or
exception handler should not be a coprocessor instruction. Since the first instruction is normally a branch,
this error should not appear.
Description 2
Under certain circumstances, incorrect values may be used for arithmetic calculations or stored in memory.
The error appears as follows.
1) Execute a coprocessor instruction whose target is one of the coprocessor general purpose register c0
2) Let the second instruction be an instruction with the same target, but not be executed
3) Execute a third instruction at least one of whose operands is the target of the previous two instructions.
For example, assume no pipeline interlocks other than the dependencies involving register c0 in the
following instruction sequence:
In this particular case, the incorrect value stored at the address in r2 is the previous value in c0, not the
expected one resulting from the cfadd32.
cfaddne
nop
cfldrd
target
cfadd32
cfsub32ne
cfstr32
through c15.
cfldrd
b
cfadd
nop
c0, c1, c2
c3, [r2, #0x0]
c3, [r2, #0x0]
target
c0, c1, c2
c0, c1, c2
c0, c3, c4
c0, [r2, #0x0]
(Continued)
; assume this does not execute
; inserted extra instruction here
; though in pipeline, this does not execute
; assume this does not execute
1
.
ER638E2B