SAM3SD8B Atmel Corporation, SAM3SD8B Datasheet - Page 100

no-image

SAM3SD8B

Manufacturer Part Number
SAM3SD8B
Description
Manufacturer
Atmel Corporation
Datasheets
10.11.8
10.11.8.1
10.11.8.2
10.11.8.3
100
100
SAM3S8/SD8
SAM3S8/SD8
LDREX and STREX
Syntax
Operation
Restrictions
Load and Store Register Exclusive.
where:
cond
Rd
Rt
Rn
offset
LDREX, LDREXB, and LDREXH load a word, byte, and halfword respectively from a memory
address.
STREX, STREXB, and STREXH attempt to store a word, byte, and halfword respectively to a
memory address. The address used in any Store-Exclusive instruction must be the same as the
address in the most recently executed Load-exclusive instruction. The value stored by the Store-
Exclusive instruction must also have the same data size as the value loaded by the preceding
Load-exclusive instruction. This means software must always use a Load-exclusive instruction
and a matching Store-Exclusive instruction to perform a synchronization operation, see
chronization primitives” on page 61
If an Store-Exclusive instruction performs the store, it writes 0 to its destination register. If it does
not perform the store, it writes 1 to its destination register. If the Store-Exclusive instruction
writes 0 to the destination register, it is guaranteed that no other process in the system has
accessed the memory location between the Load-exclusive and Store-Exclusive instructions.
For reasons of performance, keep the number of instructions between corresponding Load-
Exclusive and Store-Exclusive instruction to a minimum.
The result of executing a Store-Exclusive instruction to an address that is different from that
used in the preceding Load-Exclusive instruction is unpredictable.
In these instructions:
• do not use PC
• do not use SP for Rd and Rt
• for STREX, Rd must be different from both Rt and Rn
• the value of offset must be a multiple of four in the range 0-1020.
LDREX{cond} Rt, [Rn {, #offset}]
STREX{cond} Rd, Rt, [Rn {, #offset}]
LDREXB{cond} Rt, [Rn]
STREXB{cond} Rd, Rt, [Rn]
LDREXH{cond} Rt, [Rn]
STREXH{cond} Rd, Rt, [Rn]
is an optional condition code, see
is the destination register for the returned status.
is the register to load or store.
is the register on which the memory address is based.
is an optional offset applied to the value in Rn.
If offset is omitted, the address is the value in Rn.
“Conditional execution” on page
11090A–ATARM–10-Feb-12
11090A–ATARM–10-Feb-12
84.
“Syn-

Related parts for SAM3SD8B