2016-09-22 21 views
1

私のコンパイラは無視されます。gccの#pragma同値は何ですか?

#pragma DATA_SECTION(..., "iram_init"); 

#pragma CODE_SECTION(..., ".icode"); 

...機能です。

これは、プログラムを実行するとセグメント化エラーが発生しています。 これはgccコンパイラの構文が正しくないためです。同等のものは何ですか?

おかげ

(コンテキスト:これはraspianでラズベリーパイの上にある)

+1

これらのプラグマをサポートするコンパイラはどれですか?あなたは何を達成しようとしていますか? – fuz

+0

私が与えたコードには、これらのコードが入っていました。私は実際に理解していないことをテストするために、このプログラムを実行しようとしています。 –

+0

これはあなたに役立つかもしれないかどうかを確認してくださいhttp://stackoverflow.com/questions/9716637/what-is-the-use-of-pragma-code-section-and-data-section –

答えて

3

同等は以下のとおりです。

__attribute__((section(".icode"))) void fct1(int toto) { ... } 
__attribute__((section("iram_init"))) int fct2(void) { ... } 

__attribute__((section(".var"))) int myvar; 

しかしあなたのリンカスクリプト(一般的に」.ldについての世話をします"gnuツールを使って):セクションを定義し、正しいメモリにマップする必要があります

+0

変数についても同じですか? –

+0

はい変数と同じです(私の編集を参照してください)。 – Garf365

+0

'__attribute __((section(..)))'は、プロトタイプ宣言や 'extern'宣言ではなく、変数と関数の定義でなければなりません。 (私はあなたがすでに正しく行ったと思うが、明示的にこれを好む) – Garf365

関連する問題