P60ARM-B Zarlink Semiconductor, Inc., P60ARM-B Datasheet - Page 42

no-image

P60ARM-B

Manufacturer Part Number
P60ARM-B
Description
32-bit RISC microprocessor
Manufacturer
Zarlink Semiconductor, Inc.
Datasheet
P60ARM-B
Big Endian Configuration
A byte load (LDRB) expects the data on data bus inputs 31 through 24 if the supplied address is on a word
boundary, on data bus inputs 23 through 16 if it is a word address plus one byte, and so on. The selected
byte is placed in the bottom 8 bits of the destination register and the remaining bits of the register are filled
with zeros.
A byte store (STRB) repeats the bottom 8 bits of the source register four times across data bus outputs 31
through 0. The external memory system should activate the appropriate byte subsystem to store the data.
A word load (LDR) should generate a word aligned address. An address offset of 0 or 2 from a word
boundary will cause the data to be rotated into the register so that the addressed byte occupies bits 31
through 24. This means that half-words accessed at these offsets will be correctly loaded into bits 16 through
31 of the register. A shift operation is then required to move (and optionally sign extend) the data into the
bottom 16 bits. An address offset of 1 or 3 from a word boundary will cause the data to be rotated into the
register so that the addressed byte occupies bits 15 through 8.
A word store (STR) should generate a word aligned address. The word presented to the data bus is not
affected if the address is not word aligned. That is, bit 31 of the register being stored always appears on data
bus output 31.
4.7.4 Use of R15
Write-back shall not be specified if R15 is specified as the base register (Rn). When using R15 as the base
register you must remember it contains an address 8 bytes on from the address of the current instruction.
R15 shall not be specified as the register offset (Rm).
When R15 is the source register (Rd) of a register store (STR) instruction, the stored value will be address
of the instruction plus 12.
4.7.5 Restriction on the use of base register
When configured for late aborts, the following example code is difficult to unwind as the base register, Rn,
gets updated before the abort handler starts. Sometimes it may be impossible to calculate the initial value.
For example:
LDR
R0,[R1],R1
<LDR|STR> Rd, [Rn],{+/-}Rn{,<shift>}
Therefore a post-indexed LDR|STR where Rm is the same register as Rn shall not be used.
38

Related parts for P60ARM-B