1

codewarriorリンカ スクリプトを処理する必要があるため、マイクロ コントローラ 32 ビットとコンパイラのスタートアップ コードに取り組んでいます。初期化のためにスタートアップ コードで使用され、リンカー スクリプトから取得される特定のRAM変数stack

リンカー スクリプトは、これらの変数を異なるアドレスで初期化します。問題は、1 つの変数のアドレスが間違っていることです。リンカ スクリプトでは、次のコマンドで初期化します _f_data_rom

  • stack 、RAM 初期化のアドレスを提供するリンカ変数をどのように初期化したか教えてもらえますか?
  • このコマンドの意味は_f_data_rom?

のように見える

RC_SDATA_SRC       = _f_sdata_rom;
RC_SDATA_DEST      = _f_sdata;
RC_SDATA_SIZE      = (SIZEOF(.sdata)+3) / 4;
RC_DATA_SRC        = _f_data_rom;
RC_DATA_DEST       = _f_data;
RC_DATA_SIZE       = (SIZEOF(.data)+3) / 4;
4

1 に答える 1

0

この文書の 69 ページを見ると、__ppc_eabi_linker.hこれらの変数がどのようにエクスポートされているかを確認する必要があります。たとえば、次のファイルへのリンクです。

同じドキュメントの 65 ページに、リンカーのアドレスを構成するフォームがあります。それを見て、それらの設定を確認してください。

于 2016-06-17T09:39:42.250 に答える