meta data for this page
Differences
This shows you the differences between two versions of the page.
| arm:exclusive_monitor [2024/06/05 09:40] – created niziak | arm:exclusive_monitor [2024/06/05 15:43] (current) – niziak | ||
|---|---|---|---|
| Line 12: | Line 12: | ||
| Exclusive instructions must be used in **pairs**: | Exclusive instructions must be used in **pairs**: | ||
| - | * LDREX - tags memory for exclusive access. Always successfully reads a value from memory address x. | + | * LDREX: |
| - | * STREX - clears | + | * Tags memory for exclusive access. |
| + | * Always successfully reads a value from memory address x. | ||
| + | * STREX: | ||
| + | * Clears | ||
| + | * Success only memory was tagger == if no other processor or process performed a more recent store of address x. | ||
| + | * returns status bit that indicates whether the memory write succeeded. | ||
| + | |||
| + | So LDEX/STREX must be placed in loop, to repeat LDREX/ | ||