6

gcc ベースのツールチェーンを使用して、組み込みプロセッサで AC アプリケーションを開発しています。私のアプリケーションでは、特定のメモリ位置にフラグを配置する必要があります。これを行うには、リンカー コマンド ファイルの構文についてサポートが必要です。

4

2 に答える 2

9

C ファイルに次のように記述します。

static int flag __attribute__ ((section (".flag"))) __attribute__ ((__used__)) = 6;

カスタム リンカー スクリプトで、目的のセクションに .flag を追加します。

_flag_start = 0x00001234;

.flag _flag_start :
{
  KEEP(*(.flag)) ;
}

ロケーション ポインタは_flag_start + [size of your flag]このブロックの後に設定されるため、これを正しい場所に追加してください。これは、後続のすべてのセクションがそのアドレス以上に配置されることを意味します。

もちろん、 David Graysonが提供するマニュアルを読んで使用してください。

于 2013-11-07T08:32:30.673 に答える
1

Cortex-M3で一度これを行う必要がありました。私のリンカ スクリプトは長く、複雑で、私的なものですが、このページは私がそれを書くのに役立ちました。

http://www.linuxselfhelp.com/gnu/ld/html_chapter/ld_3.html

コンパイラがデフォルトで使用している既存のリンカ スクリプトを見つけ、特定のアドレスに特別なセクションを追加して修正し、ソース コードのそのセクションにフラグを配置することをお勧めします。

于 2013-11-05T03:52:04.197 に答える