__strt コンパイラ組み込み関数

このコンパイラ組み込み関数を使用して、コンパイラによって生成される命令ストリームに STR{size}T 形式のアセンブリ言語命令を挿入します。C または C++ コードで STRT 命令を使用して、メモリにデータをストアできます。

Show/hide構文

void __strt(unsigned int val, volatile void *ptr)

各項目には以下の意味があります。

val

メモリに書き込む値を指定します。

ptr

メモリに書き込まれるデータのアドレスを指します。書き込まれるデータのサイズを指定するには、パラメータを適切な整数型にキャストします

Table 20. __strt コンパイラ組み込み関数によってサポートされるアクセス幅

命令ロードされたデータのサイズC のキャスト
STRBT符号なしバイト(char *)
STRHT符号なしハーフワード(short int *)
STRTワード(int *)

Show/hideエラー

STRT 命令をサポートしないターゲット向けにコンパイルされる場合、コンパイラは __strt コンパイラ組み込み関数を認識しません。この場合、コンパイラによって警告またはエラーが生成されます。

__strt コンパイラ組み込み関数は、符号付きデータおよびダブルワードデータへのアクセスをサポートしません。サポートされないアクセス幅を指定すると、コンパイラによってエラーが生成されます。

Show/hide

void foo(void)
{
    int loc=0xff;
    __strt(0x20, (volatile char *)loc);
}

このコードをコンパイルすると、以下が生成されます。

||foo|| PROC
    MOV      r0,#0xff
    MOV      r1,#0x20
    STRBT    r1,[r0],#0
    BX       lr
    ENDP

Show/hide関連項目

Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0491EJ
Non-ConfidentialID081711