RealView Compilation Tools ã¢ã»ã³ãã©ã¬ã¤ã - ARM Information Center
RealView Compilation Tools ã¢ã»ã³ãã©ã¬ã¤ã - ARM Information Center
RealView Compilation Tools ã¢ã»ã³ãã©ã¬ã¤ã - ARM Information Center
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>ARM</strong> 命 令 と Thumb 命 令<br />
Thumb 命 令 の 場 合 :<br />
• Rd、 Rt、 および Rt2 のいずれのパラ メータにも r13 は 指 定 でき ません。<br />
• LDREXD では、 Rt と Rt2 に 同 じ レジス タは 指 定 でき ません。<br />
• offset には、 0 ~ 1020 の 範 囲 内 にあ る 4 の 倍 数 を 指 定 でき ます。<br />
使 用 法<br />
LDREX 命 令 と STREX 命 令 を 使 用 し て、 マルチプ ロ セ ッ サの 共 有 メ モ リ シ ス テム<br />
でプロセス 間 通 信 を 実 装 できます。<br />
パフ ォーマン ス 上 の 理 由 か ら、 対 応 する LDREX 命 令 と STREX 命 令 の 間 に 記 述 す<br />
る 命 令 の 数 は 最 小 限 に 抑 えて 下 さい。<br />
注<br />
STREX 命 令 で 使 用 されるアドレスは、 直 前 に 実 行 された LDREX 命 令 で 使 用 さ れ<br />
たア ド レ ス と 同 一 であ る 必 要 があ り ます。 異 なるア ド レ スに 対 して STREX 命 令<br />
を 実 行 する と 、 その 結 果 は 予 測 不 可 能 にな り ます。<br />
アーキテクチャ<br />
<strong>ARM</strong> LDREX と STREX は <strong>ARM</strong>v6 以 降 で 使 用 で き ます。<br />
<strong>ARM</strong> LDREXB、 LDREXH、 LDREXD、 STREXB、 STREXD、 および STREXH は <strong>ARM</strong>v6K 以 降 で<br />
使 用 で き ます。<br />
これらの 32 ビッ ト Thumb 命 令 はどれも <strong>ARM</strong>v6T2 以 降 で 使 用 で き ます。 ただ<br />
し、LDREXD と STREXD は <strong>ARM</strong>v7-M プロファイルでは 使 用 できません。<br />
これらの 命 令 の 16 ビッ トバージョンはありません。<br />
サンプル<br />
MOV r1, #0x1<br />
; load the ‘lock taken’ value<br />
try<br />
LDREX r0, [LockAddr] ; load the lock value<br />
CMP r0, #0<br />
; is the lock free?<br />
STREXEQ r0, r1, [LockAddr] ; try and claim the lock<br />
CMPEQ r0, #0<br />
; did this succeed?<br />
BNE try<br />
; no – try again<br />
.... ; yes – we have the lock<br />
4-42 Copyright © 2002-2008 <strong>ARM</strong> Limited. All rights reserved. <strong>ARM</strong> DUI 0204IJ<br />
Non-Confidential